1 /*	$NetBSD: sectioning.h,v 1.1.1.1 2016/01/14 00:11:29 christos Exp $	*/
2 
3 /* sectioning.h -- all related stuff @chapter, @section... @contents
4    Id: sectioning.h,v 1.5 2004/04/11 17:56:47 karl Exp
5 
6    Copyright (C) 1999, 2003 Free Software Foundation, Inc.
7 
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 
22    Written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
23 
24 #ifndef SECTIONING_H
25 #define SECTIONING_H
26 
27 /* Sectioning.  */
28 
29 /* Level 4.  */
30 extern void cm_chapter (void),
31   cm_unnumbered (void),
32   cm_appendix (void),
33   cm_top (void);
34 
35 /* Level 3.  */
36 extern void cm_section (void),
37   cm_unnumberedsec (void),
38   cm_appendixsec (void);
39 
40 /* Level 2.  */
41 extern void cm_subsection (void),
42   cm_unnumberedsubsec (void),
43   cm_appendixsubsec (void);
44 
45 /* Level 1.  */
46 extern void cm_subsubsection (void),
47   cm_unnumberedsubsubsec (void),
48   cm_appendixsubsubsec (void);
49 
50 /* Headings.  */
51 extern void cm_heading (void),
52   cm_chapheading (void),
53   cm_subheading (void),
54   cm_subsubheading (void),
55   cm_majorheading (void);
56 
57 extern void cm_raisesections (void),
58   cm_lowersections (void),
59   cm_ideprecated (int arg, int start, int end);
60 
61 extern void
62   sectioning_underscore (char *cmd),
63   insert_and_underscore (int level, char *cmd);
64 
65 /* needed in node.c */
66 extern int set_top_section_level (int level);
67 
68 extern void sectioning_html (int level, char *cmd);
69 extern int what_section (char *text, char **secname);
70 extern char *current_chapter_number (void),
71   *current_sectioning_number (void),
72   *current_sectioning_name (void);
73 
74 /* The argument of @settitle, used for HTML. */
75 extern char *title;
76 
77 
78 /* Here is a structure which associates sectioning commands with
79    an integer that reflects the depth of the current section. */
80 typedef struct
81 {
82   char *name;
83   int level; /* I can't replace the levels with defines
84                 because it is changed during run */
85   int num; /* ENUM_SECT_NO means no enumeration...
86               ENUM_SECT_YES means enumerated version
87               ENUM_SECT_APP appendix (Character enumerated
88                             at first position */
89   int toc; /* TOC_NO means do not enter in toc;
90               TOC_YES means enter it in toc */
91 } section_alist_type;
92 
93 extern section_alist_type section_alist[];
94 
95 /* enumerate sections */
96 #define ENUM_SECT_NO  0
97 #define ENUM_SECT_YES 1
98 #define ENUM_SECT_APP 2
99 
100 /* make entries into toc no/yes */
101 #define TOC_NO  0
102 #define TOC_YES 1
103 
104 
105 #endif /* not SECTIONING_H */
106