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