156160Sru/* insertion.h -- declarations for insertion.c.
2146515Sru   $Id: insertion.h,v 1.10 2004/04/11 17:56:47 karl Exp $
356160Sru
4146515Sru   Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
556160Sru
656160Sru   This program is free software; you can redistribute it and/or modify
756160Sru   it under the terms of the GNU General Public License as published by
856160Sru   the Free Software Foundation; either version 2, or (at your option)
956160Sru   any later version.
1056160Sru
1156160Sru   This program is distributed in the hope that it will be useful,
1256160Sru   but WITHOUT ANY WARRANTY; without even the implied warranty of
1356160Sru   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1456160Sru   GNU General Public License for more details.
1556160Sru
1656160Sru   You should have received a copy of the GNU General Public License
1756160Sru   along with this program; if not, write to the Free Software Foundation,
1856160Sru   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
1956160Sru
2056160Sru#ifndef INSERTION_H
2156160Sru#define INSERTION_H
2256160Sru
2356160Sru/* Must match list in insertion.c.  */
2456160Sruenum insertion_type
2593139Sru{
26100513Sru  cartouche, copying, defcv, deffn, defivar, defmac, defmethod, defop,
27146515Sru  defopt, defspec, deftp, deftypecv, deftypefn, deftypefun, deftypeivar,
28100513Sru  deftypemethod, deftypeop, deftypevar, deftypevr, defun, defvar, defvr,
29100513Sru  detailmenu, direntry, display, documentdescription, enumerate,
30146515Sru  example, floatenv, flushleft, flushright, format, ftable, group,
31146515Sru  ifclear, ifdocbook, ifhtml, ifinfo, ifnotdocbook, ifnothtml, ifnotinfo,
32146515Sru  ifnotplaintext, ifnottex, ifnotxml, ifplaintext, ifset, iftex, ifxml,
33146515Sru  itemize, lisp, menu, multitable, quotation, rawdocbook, rawhtml, rawtex,
34146515Sru  rawxml, smalldisplay, smallexample, smallformat, smalllisp, verbatim,
35146515Sru  table, tex, vtable, titlepage, bad_type
3656160Sru};
3756160Sru
3856160Srutypedef struct istack_elt
3956160Sru{
4056160Sru  struct istack_elt *next;
4156160Sru  char *item_function;
4256160Sru  char *filename;
4356160Sru  int line_number;
4456160Sru  int filling_enabled;
4556160Sru  int indented_fill;
46146515Sru  int insertion;
4756160Sru  int inhibited;
4856160Sru  int in_fixed_width_font;
4956160Sru} INSERTION_ELT;
5056160Sru
5156160Sruextern int insertion_level;
5256160Sruextern INSERTION_ELT *insertion_stack;
5356160Sruextern int in_menu;
5456160Sruextern int in_detailmenu;
5556160Sruextern int had_menu_commentary;
5656160Sruextern int in_paragraph;
5756160Sru
58146515Sruextern int headitem_flag;
59146515Sruextern int after_headitem;
60146515Sru
61146515Sruextern void init_insertion_stack (void);
62146515Sruextern void command_name_condition (void);
63146515Sruextern void cm_ifdocbook (void), cm_ifnotdocbook(void), cm_docbook (int arg);
64146515Sruextern void cm_ifhtml (void), cm_ifnothtml(void), cm_html (int arg);
65146515Sruextern void cm_ifinfo (void), cm_ifnotinfo (void);
66146515Sruextern void cm_ifplaintext (void), cm_ifnotplaintext(void);
67146515Sruextern void cm_iftex (void), cm_ifnottex (void), cm_tex (void);
68146515Sruextern void cm_ifxml (void), cm_ifnotxml (void), cm_xml (int arg);
69146515Sruextern void handle_verbatim_environment (int find_end_verbatim);
70146515Sruextern void begin_insertion (enum insertion_type type);
71146515Sruextern void pop_insertion (void);
72146515Sruextern void discard_insertions (int specials_ok);
73146515Sru
74146515Sruextern int is_in_insertion_of_type (int type);
75146515Sruextern int command_needs_braces (char *cmd);
76146515Sru
77146515Sruextern enum insertion_type find_type_from_name (char *name);
7856160Sru#endif /* !INSERTION_H */
79