aboutsummaryrefslogtreecommitdiff
path: root/stdio/linewrap.h
diff options
context:
space:
mode:
Diffstat (limited to 'stdio/linewrap.h')
-rw-r--r--stdio/linewrap.h200
1 files changed, 0 insertions, 200 deletions
diff --git a/stdio/linewrap.h b/stdio/linewrap.h
deleted file mode 100644
index 5aad9f6..0000000
--- a/stdio/linewrap.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Word-wrapping and line-truncating streams.
- Copyright (C) 1996, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef __LINEWRAP_H__
-#define __LINEWRAP_H__
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <features.h>
-
-#include <string.h> /* Need size_t. */
-
-__BEGIN_DECLS
-
-/* We keep this data for each line-wrapping stream. */
-struct line_wrap_data
- {
- size_t lmargin, rmargin; /* Left and right margins. */
- ssize_t wmargin; /* Margin to wrap to, or -1 to truncate. */
-
- /* Point in stdio buffer to which we've processed for wrapping, but
- not output. */
- size_t point_offs;
- /* Output column at POINT_OFFS, or -1 meaning 0 but don't add lmargin. */
- ssize_t point_col;
-
- /* Original cookie and hooks from the stream. */
- void *cookie;
- void (*output) (FILE *, int);
- __io_close_fn *close;
- __io_fileno_fn *fileno;
- __io_seek_fn *seek;
- };
-
-/* Modify STREAM so that it prefixes lines written on it with LMARGIN spaces
- and limits them to RMARGIN columns total. If WMARGIN >= 0, words that
- extend past RMARGIN are wrapped by replacing the whitespace before them
- with a newline and WMARGIN spaces. Otherwise, chars beyond RMARGIN are
- simply dropped until a newline. Returns STREAM after modifying it, or
- NULL if there was an error. */
-FILE *line_wrap_stream (FILE *stream,
- size_t lmargin, size_t rmargin, ssize_t wmargin);
-
-/* Remove the hooks placed in STREAM by `line_wrap_stream'. */
-void line_unwrap_stream (FILE *stream);
-
-/* Returns true if STREAM is line wrapped. */
-extern inline int line_wrapped (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else return its left margin. */
-extern size_t line_wrap_lmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
- LMARGIN and return the old value. */
-extern size_t line_wrap_set_lmargin (FILE *stream, size_t lmargin);
-
-/* If STREAM is not line-wrapped return -1, else return its left margin. */
-extern size_t line_wrap_rmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its right margin to
- RMARGIN and return the old value. */
-extern size_t line_wrap_set_rmargin (FILE *stream, size_t rmargin);
-
-/* If STREAM is not line-wrapped return -1, else return its wrap margin. */
-extern size_t line_wrap_wmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
- WMARGIN and return the old value. */
-extern size_t line_wrap_set_wmargin (FILE *stream, size_t wmargin);
-
-/* If STREAM is not line-wrapped return -1, else return the column number of
- the current output point. */
-extern size_t line_wrap_point (FILE *stream);
-
-#ifdef __OPTIMIZE__
-
-extern void __line_wrap_output (FILE *, int); /* private */
-
-/* If STREAM is not line-wrapped, return 0. Otherwise all pending text
- buffered text in STREAM so that the POINT_OFFS field refers to the last
- position in the stdio buffer, and return the line wrap state object for
- STREAM. Since all text has been processed, this means that (1) the
- POINT_COL field refers to the column at which any new text would be added,
- and (2) any changes to the margin parameters will only affect new text. */
-extern struct line_wrap_data *__line_wrap_update (FILE *stream); /* private */
-
-/* Returns true if STREAM is line wrapped. */
-extern inline int
-line_wrapped (FILE *stream)
-{
- return (stream->__room_funcs.__output == &__line_wrap_output);
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin. */
-extern inline size_t
-line_wrap_lmargin (FILE *stream)
-{
- if (! line_wrapped (stream))
- return -1;
- return ((struct line_wrap_data *)stream->__cookie)->lmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
- LMARGIN and return the old value. */
-extern inline size_t
-line_wrap_set_lmargin (FILE *stream, size_t lmargin)
-{
- struct line_wrap_data *d = __line_wrap_update (stream);
- if (d)
- {
- size_t old = d->lmargin;
- d->lmargin = lmargin;
- return old;
- }
- else
- return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin. */
-extern inline size_t
-line_wrap_rmargin (FILE *stream)
-{
- if (! line_wrapped (stream))
- return -1;
- return ((struct line_wrap_data *)stream->__cookie)->rmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its right margin to
- RMARGIN and return the old value. */
-extern inline size_t
-line_wrap_set_rmargin (FILE *stream, size_t rmargin)
-{
- struct line_wrap_data *d = __line_wrap_update (stream);
- if (d)
- {
- size_t old = d->rmargin;
- d->rmargin = rmargin;
- return old;
- }
- else
- return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its wrap margin. */
-extern inline size_t
-line_wrap_wmargin (FILE *stream)
-{
- if (! line_wrapped (stream))
- return -1;
- return ((struct line_wrap_data *)stream->__cookie)->wmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
- WMARGIN and return the old value. */
-extern inline size_t
-line_wrap_set_wmargin (FILE *stream, size_t wmargin)
-{
- struct line_wrap_data *d = __line_wrap_update (stream);
- if (d)
- {
- size_t old = d->wmargin;
- d->wmargin = wmargin;
- return old;
- }
- else
- return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return the column number of
- the current output point. */
-extern inline size_t
-line_wrap_point (FILE *stream)
-{
- struct line_wrap_data *d = __line_wrap_update (stream);
- return d ? (d->point_col >= 0 ? d->point_col : 0) : -1;
-}
-
-#endif /* Optimizing. */
-
-__END_DECLS
-
-#endif /* __LINEWRAP_H__ */