4 /* Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
5 Written by James Clark (jjc@jclark.com)
7 This file is part of groff.
9 groff is free software; you can redistribute it and/or modify it under
10 the terms of the GNU General Public License as published by the Free
11 Software Foundation; either version 2, or (at your option) any later
14 groff is distributed in the hope that it will be useful, but WITHOUT ANY
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 You should have received a copy of the GNU General Public License along
20 with groff; see the file COPYING. If not, write to the Free Software
21 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
27 * class and structure needed to buffer words
34 word (const char *w
, int n
);
42 void add_word (const char *s
, int n
);
43 int get_length (void);
53 simple_output(FILE *, int max_line_length
);
54 simple_output
&put_string(const char *, int);
55 simple_output
&put_string(const char *s
);
56 simple_output
&put_string(const string
&s
);
57 simple_output
&put_troffps_char (const char *s
);
58 simple_output
&put_translated_string(const char *s
);
59 simple_output
&put_number(int);
60 simple_output
&put_float(double);
61 simple_output
&put_symbol(const char *);
62 simple_output
&put_literal_symbol(const char *);
63 simple_output
&set_fixed_point(int);
64 simple_output
&simple_comment(const char *);
65 simple_output
&begin_comment(const char *);
66 simple_output
&comment_arg(const char *);
67 simple_output
&end_comment();
68 simple_output
&set_file(FILE *);
69 simple_output
&include_file(FILE *);
70 simple_output
©_file(FILE *);
71 simple_output
&end_line();
72 simple_output
&put_raw_char(char);
73 simple_output
&special(const char *);
74 simple_output
&enable_newlines(int);
75 simple_output
&check_newline(int n
);
76 simple_output
&nl(void);
77 simple_output
&force_nl(void);
78 simple_output
&space_or_newline (void);
79 simple_output
&begin_tag (void);
83 int max_line_length
; // not including newline
86 int newlines
; // can we issue newlines automatically?
89 void flush_last_word (void);
90 int check_space (const char *s
, int n
);
93 inline FILE *simple_output::get_file()