1/* cmds.c -- Texinfo commands.
2 $Id: cmds.c,v 1.79 2002/03/28 16:35:29 karl Exp $
3
4 Copyright (C) 1998, 99, 2000, 01, 02 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
--- 29 unchanged lines hidden (view full) ---
42
43void
44 cm_TeX (), cm_acronym (), cm_asterisk (), cm_b (), cm_bullet (), cm_cite (),
45 cm_code (), cm_copyright (), cm_ctrl (), cm_dfn (), cm_dircategory (),
46 cm_direntry (), cm_dmn (), cm_dots (), cm_emph (), cm_enddots (), cm_i (),
47 cm_image (), cm_kbd (), cm_key (), cm_no_op (),
48 cm_novalidate (), cm_not_fixed_width (), cm_r (),
49 cm_strong (), cm_var (), cm_sc (), cm_w (), cm_email (), cm_url (),
50 cm_verb (), cm_copying (), cm_insert_copying (),
51 cm_documentdescription ();
52
53void
54 cm_anchor (), cm_node (), cm_menu (), cm_xref (), cm_ftable (),
55 cm_vtable (), cm_pxref (), cm_inforef (), cm_uref (), cm_email (),
56 cm_quotation (), cm_display (), cm_smalldisplay (), cm_itemize (),
57 cm_enumerate (), cm_tab (), cm_table (), cm_itemx (), cm_noindent (),
58 cm_setfilename (), cm_br (), cm_sp (), cm_page (), cm_group (),
59 cm_center (), cm_ref (), cm_include (), cm_bye (), cm_item (), cm_end (),
60 cm_kindex (), cm_cindex (), cm_findex (), cm_pindex (), cm_vindex (),
61 cm_tindex (), cm_synindex (), cm_printindex (), cm_minus (),
62 cm_example (), cm_smallexample (), cm_smalllisp (), cm_lisp (),
63 cm_format (), cm_smallformat (), cm_exdent (), cm_defindex (),
64 cm_defcodeindex (), cm_result (), cm_expansion (), cm_equiv (),
65 cm_print (), cm_error (), cm_point (), cm_today (), cm_flushleft (),
66 cm_flushright (), cm_finalout (), cm_cartouche (), cm_detailmenu (),
67 cm_multitable (), cm_settitle (), cm_titlefont (), cm_tt (),
68 cm_verbatim (), cm_verbatiminclude ();
69
70/* Conditionals. */
71void cm_set (), cm_clear (), cm_ifset (), cm_ifclear ();
72void cm_value (), cm_ifeq ();
73
74/* Options. */
75static void cm_paragraphindent (), cm_exampleindent ();
76
--- 14 unchanged lines hidden (view full) ---
91 { "*", cm_asterisk, NO_BRACE_ARGS },
92 { ",", cm_accent_cedilla, MAYBE_BRACE_ARGS },
93 { "-", cm_no_op, NO_BRACE_ARGS },
94 { ".", insert_self, NO_BRACE_ARGS },
95 { ":", cm_no_op, NO_BRACE_ARGS },
96 { "=", cm_accent, MAYBE_BRACE_ARGS },
97 { "?", insert_self, NO_BRACE_ARGS },
98 { "@", insert_self, NO_BRACE_ARGS },
99 { "\\", insert_self, NO_BRACE_ARGS },
100 { "^", cm_accent_hat, MAYBE_BRACE_ARGS },
101 { "`", cm_accent_grave, MAYBE_BRACE_ARGS },
102 { "{", insert_self, NO_BRACE_ARGS },
103 { "|", cm_no_op, NO_BRACE_ARGS },
104 { "}", insert_self, NO_BRACE_ARGS },
105 { "~", cm_accent_tilde, MAYBE_BRACE_ARGS },
106 { "AA", cm_special_char, BRACE_ARGS },
107 { "AE", cm_special_char, BRACE_ARGS },
--- 28 unchanged lines hidden (view full) ---
136 { "chapter", cm_chapter, NO_BRACE_ARGS },
137 { "cindex", cm_cindex, NO_BRACE_ARGS },
138 { "cite", cm_cite, BRACE_ARGS },
139 { "clear", cm_clear, NO_BRACE_ARGS },
140 { "code", cm_code, BRACE_ARGS },
141 { "command", cm_code, BRACE_ARGS },
142 { "comment", cm_ignore_line, NO_BRACE_ARGS },
143 { "contents", cm_contents, NO_BRACE_ARGS },
144 { "copying", cm_copying, NO_BRACE_ARGS },
145 { "copyright", cm_copyright, BRACE_ARGS },
146 { "ctrl", cm_obsolete, BRACE_ARGS },
147 { "defcodeindex", cm_defcodeindex, NO_BRACE_ARGS },
148 { "defcv", cm_defun, NO_BRACE_ARGS },
149 { "defcvx", cm_defun, NO_BRACE_ARGS },
150 { "deffn", cm_defun, NO_BRACE_ARGS },
151 { "deffnx", cm_defun, NO_BRACE_ARGS },
152 { "defindex", cm_defindex, NO_BRACE_ARGS },
--- 47 unchanged lines hidden (view full) ---
200 { "email", cm_email, BRACE_ARGS },
201 { "emph", cm_emph, BRACE_ARGS },
202 { "end", cm_end, NO_BRACE_ARGS },
203 { "enddots", cm_enddots, BRACE_ARGS },
204 { "enumerate", cm_enumerate, NO_BRACE_ARGS },
205 { "env", cm_code, BRACE_ARGS },
206 { "equiv", cm_equiv, BRACE_ARGS },
207 { "error", cm_error, BRACE_ARGS },
208 { "evenfooting", cm_ignore_line, NO_BRACE_ARGS },
209 { "evenheading", cm_ignore_line, NO_BRACE_ARGS },
210 { "everyfooting", cm_ignore_line, NO_BRACE_ARGS },
211 { "everyheading", cm_ignore_line, NO_BRACE_ARGS },
212 { "example", cm_example, NO_BRACE_ARGS },
213 { "exampleindent", cm_exampleindent, NO_BRACE_ARGS },
214 { "exclamdown", cm_special_char, BRACE_ARGS },
215 { "exdent", cm_exdent, NO_BRACE_ARGS },
216 { "expansion", cm_expansion, BRACE_ARGS },
217 { "file", cm_code, BRACE_ARGS },
218 { "finalout", cm_no_op, NO_BRACE_ARGS },
219 { "findex", cm_findex, NO_BRACE_ARGS },
--- 10 unchanged lines hidden (view full) ---
230 { "hyphenation", cm_ignore_arg, BRACE_ARGS },
231 { "i", cm_i, BRACE_ARGS },
232 { "ifclear", cm_ifclear, NO_BRACE_ARGS },
233 { "ifeq", cm_ifeq, NO_BRACE_ARGS },
234 { "ifhtml", cm_ifhtml, NO_BRACE_ARGS },
235 { "ifinfo", cm_ifinfo, NO_BRACE_ARGS },
236 { "ifnothtml", cm_ifnothtml, NO_BRACE_ARGS },
237 { "ifnotinfo", cm_ifnotinfo, NO_BRACE_ARGS },
238 { "ifnotplaintext", cm_ifnotplaintext, NO_BRACE_ARGS },
239 { "ifnottex", cm_ifnottex, NO_BRACE_ARGS },
240 { "ifplaintext", cm_ifplaintext, NO_BRACE_ARGS },
241 { "ifset", cm_ifset, NO_BRACE_ARGS },
242 { "iftex", cm_iftex, NO_BRACE_ARGS },
243 { "ignore", command_name_condition, NO_BRACE_ARGS },
244 { "image", cm_image, BRACE_ARGS },
245 { "include", cm_include, NO_BRACE_ARGS },
246 { "inforef", cm_inforef, BRACE_ARGS },
247 { "insertcopying", cm_insert_copying, NO_BRACE_ARGS },
248 { "item", cm_item, NO_BRACE_ARGS },
249 { "itemize", cm_itemize, NO_BRACE_ARGS },
250 { "itemx", cm_itemx, NO_BRACE_ARGS },
251 { "kbd", cm_kbd, BRACE_ARGS },
252 { "kbdinputstyle", cm_ignore_line, NO_BRACE_ARGS },
253 { "key", cm_key, BRACE_ARGS },
254 { "kindex", cm_kindex, NO_BRACE_ARGS },
255 { "l", cm_special_char, BRACE_ARGS },
--- 6 unchanged lines hidden (view full) ---
262 { "minus", cm_minus, BRACE_ARGS },
263 { "multitable", cm_multitable, NO_BRACE_ARGS },
264 { "need", cm_ignore_line, NO_BRACE_ARGS },
265 { "node", cm_node, NO_BRACE_ARGS },
266 { "noindent", cm_noindent, NO_BRACE_ARGS },
267 { "noindent", cm_novalidate, NO_BRACE_ARGS },
268 { "nwnode", cm_node, NO_BRACE_ARGS },
269 { "o", cm_special_char, BRACE_ARGS },
270 { "oddfooting", cm_ignore_line, NO_BRACE_ARGS },
271 { "oddheading", cm_ignore_line, NO_BRACE_ARGS },
272 { "oe", cm_special_char, BRACE_ARGS },
273 { "option", cm_code, BRACE_ARGS },
274 { "page", cm_no_op, NO_BRACE_ARGS },
275 { "pagesizes", cm_ignore_line, NO_BRACE_ARGS },
276 { "paragraphindent", cm_paragraphindent, NO_BRACE_ARGS },
277 { "pindex", cm_pindex, NO_BRACE_ARGS },
278 { "point", cm_point, BRACE_ARGS },
279 { "pounds", cm_special_char, BRACE_ARGS },
--- 689 unchanged lines hidden (view full) ---
969 free (filename);
970}
971
972void
973cm_settitle ()
974{
975 if (xml)
976 {
977 xml_begin_document (current_output_filename);
978 xml_insert_element (SETTITLE, START);
979 get_rest_of_line (0, &title);
980 execute_string ("%s", title);
981 xml_insert_element (SETTITLE, END);
982 }
983 else
984 get_rest_of_line (0, &title);
985}
--- 37 unchanged lines hidden (view full) ---
1023 else
1024 {
1025 /* Must disable filling since otherwise multiple newlines is like
1026 multiple spaces. Must close paragraph since that's what the
1027 manual says and that's what TeX does. */
1028 int save_filling_enabled = filling_enabled;
1029 filling_enabled = 0;
1030
1031 /* close_paragraph generates an extra blank line. */
1032 close_single_paragraph ();
1033
1034 if (lines && html && !executing_string)
1035 html_output_head ();
1036
1037 while (lines--)
1038 {
1039 if (html)
1040 insert_string ("<br><p>\n");
--- 337 unchanged lines hidden ---
2 $Id: cmds.c,v 1.79 2002/03/28 16:35:29 karl Exp $
3
4 Copyright (C) 1998, 99, 2000, 01, 02 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
--- 29 unchanged lines hidden (view full) ---
42
43void
44 cm_TeX (), cm_acronym (), cm_asterisk (), cm_b (), cm_bullet (), cm_cite (),
45 cm_code (), cm_copyright (), cm_ctrl (), cm_dfn (), cm_dircategory (),
46 cm_direntry (), cm_dmn (), cm_dots (), cm_emph (), cm_enddots (), cm_i (),
47 cm_image (), cm_kbd (), cm_key (), cm_no_op (),
48 cm_novalidate (), cm_not_fixed_width (), cm_r (),
49 cm_strong (), cm_var (), cm_sc (), cm_w (), cm_email (), cm_url (),
50 cm_verb (), cm_copying (), cm_insert_copying (),
51 cm_documentdescription ();
52
53void
54 cm_anchor (), cm_node (), cm_menu (), cm_xref (), cm_ftable (),
55 cm_vtable (), cm_pxref (), cm_inforef (), cm_uref (), cm_email (),
56 cm_quotation (), cm_display (), cm_smalldisplay (), cm_itemize (),
57 cm_enumerate (), cm_tab (), cm_table (), cm_itemx (), cm_noindent (),
58 cm_setfilename (), cm_br (), cm_sp (), cm_page (), cm_group (),
59 cm_center (), cm_ref (), cm_include (), cm_bye (), cm_item (), cm_end (),
60 cm_kindex (), cm_cindex (), cm_findex (), cm_pindex (), cm_vindex (),
61 cm_tindex (), cm_synindex (), cm_printindex (), cm_minus (),
62 cm_example (), cm_smallexample (), cm_smalllisp (), cm_lisp (),
63 cm_format (), cm_smallformat (), cm_exdent (), cm_defindex (),
64 cm_defcodeindex (), cm_result (), cm_expansion (), cm_equiv (),
65 cm_print (), cm_error (), cm_point (), cm_today (), cm_flushleft (),
66 cm_flushright (), cm_finalout (), cm_cartouche (), cm_detailmenu (),
67 cm_multitable (), cm_settitle (), cm_titlefont (), cm_tt (),
68 cm_verbatim (), cm_verbatiminclude ();
69
70/* Conditionals. */
71void cm_set (), cm_clear (), cm_ifset (), cm_ifclear ();
72void cm_value (), cm_ifeq ();
73
74/* Options. */
75static void cm_paragraphindent (), cm_exampleindent ();
76
--- 14 unchanged lines hidden (view full) ---
91 { "*", cm_asterisk, NO_BRACE_ARGS },
92 { ",", cm_accent_cedilla, MAYBE_BRACE_ARGS },
93 { "-", cm_no_op, NO_BRACE_ARGS },
94 { ".", insert_self, NO_BRACE_ARGS },
95 { ":", cm_no_op, NO_BRACE_ARGS },
96 { "=", cm_accent, MAYBE_BRACE_ARGS },
97 { "?", insert_self, NO_BRACE_ARGS },
98 { "@", insert_self, NO_BRACE_ARGS },
99 { "\\", insert_self, NO_BRACE_ARGS },
100 { "^", cm_accent_hat, MAYBE_BRACE_ARGS },
101 { "`", cm_accent_grave, MAYBE_BRACE_ARGS },
102 { "{", insert_self, NO_BRACE_ARGS },
103 { "|", cm_no_op, NO_BRACE_ARGS },
104 { "}", insert_self, NO_BRACE_ARGS },
105 { "~", cm_accent_tilde, MAYBE_BRACE_ARGS },
106 { "AA", cm_special_char, BRACE_ARGS },
107 { "AE", cm_special_char, BRACE_ARGS },
--- 28 unchanged lines hidden (view full) ---
136 { "chapter", cm_chapter, NO_BRACE_ARGS },
137 { "cindex", cm_cindex, NO_BRACE_ARGS },
138 { "cite", cm_cite, BRACE_ARGS },
139 { "clear", cm_clear, NO_BRACE_ARGS },
140 { "code", cm_code, BRACE_ARGS },
141 { "command", cm_code, BRACE_ARGS },
142 { "comment", cm_ignore_line, NO_BRACE_ARGS },
143 { "contents", cm_contents, NO_BRACE_ARGS },
144 { "copying", cm_copying, NO_BRACE_ARGS },
145 { "copyright", cm_copyright, BRACE_ARGS },
146 { "ctrl", cm_obsolete, BRACE_ARGS },
147 { "defcodeindex", cm_defcodeindex, NO_BRACE_ARGS },
148 { "defcv", cm_defun, NO_BRACE_ARGS },
149 { "defcvx", cm_defun, NO_BRACE_ARGS },
150 { "deffn", cm_defun, NO_BRACE_ARGS },
151 { "deffnx", cm_defun, NO_BRACE_ARGS },
152 { "defindex", cm_defindex, NO_BRACE_ARGS },
--- 47 unchanged lines hidden (view full) ---
200 { "email", cm_email, BRACE_ARGS },
201 { "emph", cm_emph, BRACE_ARGS },
202 { "end", cm_end, NO_BRACE_ARGS },
203 { "enddots", cm_enddots, BRACE_ARGS },
204 { "enumerate", cm_enumerate, NO_BRACE_ARGS },
205 { "env", cm_code, BRACE_ARGS },
206 { "equiv", cm_equiv, BRACE_ARGS },
207 { "error", cm_error, BRACE_ARGS },
208 { "evenfooting", cm_ignore_line, NO_BRACE_ARGS },
209 { "evenheading", cm_ignore_line, NO_BRACE_ARGS },
210 { "everyfooting", cm_ignore_line, NO_BRACE_ARGS },
211 { "everyheading", cm_ignore_line, NO_BRACE_ARGS },
212 { "example", cm_example, NO_BRACE_ARGS },
213 { "exampleindent", cm_exampleindent, NO_BRACE_ARGS },
214 { "exclamdown", cm_special_char, BRACE_ARGS },
215 { "exdent", cm_exdent, NO_BRACE_ARGS },
216 { "expansion", cm_expansion, BRACE_ARGS },
217 { "file", cm_code, BRACE_ARGS },
218 { "finalout", cm_no_op, NO_BRACE_ARGS },
219 { "findex", cm_findex, NO_BRACE_ARGS },
--- 10 unchanged lines hidden (view full) ---
230 { "hyphenation", cm_ignore_arg, BRACE_ARGS },
231 { "i", cm_i, BRACE_ARGS },
232 { "ifclear", cm_ifclear, NO_BRACE_ARGS },
233 { "ifeq", cm_ifeq, NO_BRACE_ARGS },
234 { "ifhtml", cm_ifhtml, NO_BRACE_ARGS },
235 { "ifinfo", cm_ifinfo, NO_BRACE_ARGS },
236 { "ifnothtml", cm_ifnothtml, NO_BRACE_ARGS },
237 { "ifnotinfo", cm_ifnotinfo, NO_BRACE_ARGS },
238 { "ifnotplaintext", cm_ifnotplaintext, NO_BRACE_ARGS },
239 { "ifnottex", cm_ifnottex, NO_BRACE_ARGS },
240 { "ifplaintext", cm_ifplaintext, NO_BRACE_ARGS },
241 { "ifset", cm_ifset, NO_BRACE_ARGS },
242 { "iftex", cm_iftex, NO_BRACE_ARGS },
243 { "ignore", command_name_condition, NO_BRACE_ARGS },
244 { "image", cm_image, BRACE_ARGS },
245 { "include", cm_include, NO_BRACE_ARGS },
246 { "inforef", cm_inforef, BRACE_ARGS },
247 { "insertcopying", cm_insert_copying, NO_BRACE_ARGS },
248 { "item", cm_item, NO_BRACE_ARGS },
249 { "itemize", cm_itemize, NO_BRACE_ARGS },
250 { "itemx", cm_itemx, NO_BRACE_ARGS },
251 { "kbd", cm_kbd, BRACE_ARGS },
252 { "kbdinputstyle", cm_ignore_line, NO_BRACE_ARGS },
253 { "key", cm_key, BRACE_ARGS },
254 { "kindex", cm_kindex, NO_BRACE_ARGS },
255 { "l", cm_special_char, BRACE_ARGS },
--- 6 unchanged lines hidden (view full) ---
262 { "minus", cm_minus, BRACE_ARGS },
263 { "multitable", cm_multitable, NO_BRACE_ARGS },
264 { "need", cm_ignore_line, NO_BRACE_ARGS },
265 { "node", cm_node, NO_BRACE_ARGS },
266 { "noindent", cm_noindent, NO_BRACE_ARGS },
267 { "noindent", cm_novalidate, NO_BRACE_ARGS },
268 { "nwnode", cm_node, NO_BRACE_ARGS },
269 { "o", cm_special_char, BRACE_ARGS },
270 { "oddfooting", cm_ignore_line, NO_BRACE_ARGS },
271 { "oddheading", cm_ignore_line, NO_BRACE_ARGS },
272 { "oe", cm_special_char, BRACE_ARGS },
273 { "option", cm_code, BRACE_ARGS },
274 { "page", cm_no_op, NO_BRACE_ARGS },
275 { "pagesizes", cm_ignore_line, NO_BRACE_ARGS },
276 { "paragraphindent", cm_paragraphindent, NO_BRACE_ARGS },
277 { "pindex", cm_pindex, NO_BRACE_ARGS },
278 { "point", cm_point, BRACE_ARGS },
279 { "pounds", cm_special_char, BRACE_ARGS },
--- 689 unchanged lines hidden (view full) ---
969 free (filename);
970}
971
972void
973cm_settitle ()
974{
975 if (xml)
976 {
977 xml_begin_document (current_output_filename);
978 xml_insert_element (SETTITLE, START);
979 get_rest_of_line (0, &title);
980 execute_string ("%s", title);
981 xml_insert_element (SETTITLE, END);
982 }
983 else
984 get_rest_of_line (0, &title);
985}
--- 37 unchanged lines hidden (view full) ---
1023 else
1024 {
1025 /* Must disable filling since otherwise multiple newlines is like
1026 multiple spaces. Must close paragraph since that's what the
1027 manual says and that's what TeX does. */
1028 int save_filling_enabled = filling_enabled;
1029 filling_enabled = 0;
1030
1031 /* close_paragraph generates an extra blank line. */
1032 close_single_paragraph ();
1033
1034 if (lines && html && !executing_string)
1035 html_output_head ();
1036
1037 while (lines--)
1038 {
1039 if (html)
1040 insert_string ("<br><p>\n");
--- 337 unchanged lines hidden ---