1*dc174305Schristos /*	$NetBSD: insertion.h,v 1.1.1.1 2016/01/14 00:11:29 christos Exp $	*/
2*dc174305Schristos 
3*dc174305Schristos /* insertion.h -- declarations for insertion.c.
4*dc174305Schristos    Id: insertion.h,v 1.10 2004/04/11 17:56:47 karl Exp
5*dc174305Schristos 
6*dc174305Schristos    Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
7*dc174305Schristos 
8*dc174305Schristos    This program is free software; you can redistribute it and/or modify
9*dc174305Schristos    it under the terms of the GNU General Public License as published by
10*dc174305Schristos    the Free Software Foundation; either version 2, or (at your option)
11*dc174305Schristos    any later version.
12*dc174305Schristos 
13*dc174305Schristos    This program is distributed in the hope that it will be useful,
14*dc174305Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
15*dc174305Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16*dc174305Schristos    GNU General Public License for more details.
17*dc174305Schristos 
18*dc174305Schristos    You should have received a copy of the GNU General Public License
19*dc174305Schristos    along with this program; if not, write to the Free Software Foundation,
20*dc174305Schristos    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
21*dc174305Schristos 
22*dc174305Schristos #ifndef INSERTION_H
23*dc174305Schristos #define INSERTION_H
24*dc174305Schristos 
25*dc174305Schristos /* Must match list in insertion.c.  */
26*dc174305Schristos enum insertion_type
27*dc174305Schristos {
28*dc174305Schristos   cartouche, copying, defcv, deffn, defivar, defmac, defmethod, defop,
29*dc174305Schristos   defopt, defspec, deftp, deftypecv, deftypefn, deftypefun, deftypeivar,
30*dc174305Schristos   deftypemethod, deftypeop, deftypevar, deftypevr, defun, defvar, defvr,
31*dc174305Schristos   detailmenu, direntry, display, documentdescription, enumerate,
32*dc174305Schristos   example, floatenv, flushleft, flushright, format, ftable, group,
33*dc174305Schristos   ifclear, ifdocbook, ifhtml, ifinfo, ifnotdocbook, ifnothtml, ifnotinfo,
34*dc174305Schristos   ifnotplaintext, ifnottex, ifnotxml, ifplaintext, ifset, iftex, ifxml,
35*dc174305Schristos   itemize, lisp, menu, multitable, quotation, rawdocbook, rawhtml, rawtex,
36*dc174305Schristos   rawxml, smalldisplay, smallexample, smallformat, smalllisp, verbatim,
37*dc174305Schristos   table, tex, vtable, titlepage, bad_type
38*dc174305Schristos };
39*dc174305Schristos 
40*dc174305Schristos typedef struct istack_elt
41*dc174305Schristos {
42*dc174305Schristos   struct istack_elt *next;
43*dc174305Schristos   char *item_function;
44*dc174305Schristos   char *filename;
45*dc174305Schristos   int line_number;
46*dc174305Schristos   int filling_enabled;
47*dc174305Schristos   int indented_fill;
48*dc174305Schristos   int insertion;
49*dc174305Schristos   int inhibited;
50*dc174305Schristos   int in_fixed_width_font;
51*dc174305Schristos } INSERTION_ELT;
52*dc174305Schristos 
53*dc174305Schristos extern int insertion_level;
54*dc174305Schristos extern INSERTION_ELT *insertion_stack;
55*dc174305Schristos extern int in_menu;
56*dc174305Schristos extern int in_detailmenu;
57*dc174305Schristos extern int had_menu_commentary;
58*dc174305Schristos extern int in_paragraph;
59*dc174305Schristos 
60*dc174305Schristos extern int headitem_flag;
61*dc174305Schristos extern int after_headitem;
62*dc174305Schristos 
63*dc174305Schristos extern void init_insertion_stack (void);
64*dc174305Schristos extern void command_name_condition (void);
65*dc174305Schristos extern void cm_ifdocbook (void), cm_ifnotdocbook(void), cm_docbook (int arg);
66*dc174305Schristos extern void cm_ifhtml (void), cm_ifnothtml(void), cm_html (int arg);
67*dc174305Schristos extern void cm_ifinfo (void), cm_ifnotinfo (void);
68*dc174305Schristos extern void cm_ifplaintext (void), cm_ifnotplaintext(void);
69*dc174305Schristos extern void cm_iftex (void), cm_ifnottex (void), cm_tex (void);
70*dc174305Schristos extern void cm_ifxml (void), cm_ifnotxml (void), cm_xml (int arg);
71*dc174305Schristos extern void handle_verbatim_environment (int find_end_verbatim);
72*dc174305Schristos extern void begin_insertion (enum insertion_type type);
73*dc174305Schristos extern void pop_insertion (void);
74*dc174305Schristos extern void discard_insertions (int specials_ok);
75*dc174305Schristos 
76*dc174305Schristos extern int is_in_insertion_of_type (int type);
77*dc174305Schristos extern int command_needs_braces (char *cmd);
78*dc174305Schristos 
79*dc174305Schristos extern enum insertion_type find_type_from_name (char *name);
80*dc174305Schristos #endif /* !INSERTION_H */
81