2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $TOG: global.h /main/4 1998/04/06 13:19:19 mgreess $ */
24 /* Copyright (c) 1988, 1989 Hewlett-Packard Co. */
25 /* Global definitions for HP Tag/TeX translator */
26 /* When changing this file, check "grphpar.h" for conflicts */
46 #if defined(hpux) || defined(_AIX) || defined(sun) || defined(USL) || defined(linux) || defined(CSRG_BASED)
57 #define WCOREDUMP(_X) ((int)(_X)&0200)
60 /*????????????????????????????????????????????????????*/
61 EXTERN LOGICAL stoponerror INIT(TRUE) ;
63 EXTERN char dirsep INIT('/') ;
64 EXTERN char *indir INIT(NULL) ;
65 EXTERN char *nodirbase ;
66 EXTERN char *install INIT(NULL) ;
68 typedef struct search SEARCH ;
73 EXTERN SEARCH *path INIT(NULL) ;
74 EXTERN SEARCH **endpath INIT(&path) ;
76 /*====================================================*/
79 /* Must be in same order as values in optkey, adjust NUMOPTIONS if changed*/
84 EXTERN int optval INIT(M_NULLVAL) ;
86 EXTERN char *optkey[NUMOPTIONS]
94 #define MIN(a,b) (((a)<(b))?(a):(b))
96 #define LINEMAX (BUFSIZ * 8)
98 EXTERN LOGICAL haveIndex INIT(FALSE);
100 #define TMPDIR "/tmp"
101 #define VERSION "Version"
103 #define SDLNAMESIZ sizeof("SDL-RESERVED")
104 EXTERN char sdlReservedName[] INIT("SDL-RESERVED");
106 #define DOTSDLSIZ sizeof(".sdl")
107 EXTERN char dotSDL[] INIT(".sdl");
108 #define DOTERRSIZ sizeof(".err")
109 EXTERN char dotERR[] INIT(".err");
110 #define DOTIDXSIZ sizeof(".idx")
111 EXTERN char dotIDX[] INIT(".idx");
112 #define DOTSNBSIZ sizeof(".snb")
113 EXTERN char dotSNB[] INIT(".snb");
114 #define DOTTSSSIZ sizeof(".tss")
115 EXTERN char dotTSS[] INIT(".tss");
117 /* set to TRUE if the user asks for compression */
118 EXTERN LOGICAL compressFlag INIT(FALSE);
119 /* set to TRUE if the user asks for optimization */
120 EXTERN LOGICAL optimizeFlag INIT(FALSE);
121 /* set to TRUE if the user asks for <toss> to be necessary and sufficient */
122 EXTERN LOGICAL minimalTossFlag INIT(FALSE);
123 /* set to TRUE if the user asks for decompression */
124 EXTERN LOGICAL decompressFlag INIT(FALSE);
126 /* we change outFile from vstructFile to tempFile upon first virpage */
127 EXTERN LOGICAL firstVirpage INIT(TRUE);
128 EXTERN long int vstructSize INIT(0);
130 /* the base name of this program - used in error messages */
131 EXTERN char *progName INIT(NULL);
134 * Names for all the input, output and intermediate files we'll need.
141 char *sortedIdxFileName;
143 char *vstructFileName;
151 typedef struct _loidsRec *LoidsPtr;
152 typedef struct _loidsRec {
161 EXTERN LoidsRec loids; /* first node is a dummy to make the logic easier */
162 EXTERN LoidsPtr pLoidsEnd INIT(&loids);
164 EXTERN int startOfLOIDS INIT(0);
165 EXTERN int startOfIndex INIT(0);
166 EXTERN int startOfLOPhrases INIT(0);
167 EXTERN int startOfTOSS INIT(0);
168 EXTERN int endOfLOIDS INIT(0);
169 EXTERN int endOfIndex INIT(0);
170 EXTERN int endOfLOPhrases INIT(0);
171 EXTERN int endOfTOSS INIT(0);
173 typedef enum _element_types {
230 typedef struct _element *ElementPtr;
232 typedef struct _sdldoc {
253 typedef struct _vstruct {
256 ElementPtr pLophrases;
258 ElementPtr pRel_docs;
259 ElementPtr pRel_file;
265 typedef struct _virpage {
268 ElementPtr pBlockOrForm;
278 typedef struct _snb {
280 ElementPtr pSystemNotations;
284 typedef struct _block {
299 typedef struct _form {
314 typedef struct _fstyle {
319 typedef struct _frowvec {
324 typedef struct _fdata {
325 ElementPtr pBlockOrForm;
330 ElementPtr pAtomicOrPCDATA;
345 typedef struct _head {
346 ElementPtr pAtomicOrPCDATA;
358 typedef struct _subhead {
359 ElementPtr pAtomicOrPCDATA;
370 typedef struct _anchor {
374 typedef struct _link {
375 ElementPtr pAtomicOrPCDATA;
384 typedef struct _snref {
390 typedef struct _refitem {
392 ElementPtr pReferencedItem;
399 typedef struct _alttext {
403 typedef struct _rev {
404 ElementPtr pAtomicOrPCDATA;
407 typedef struct _key {
408 ElementPtr pAtomicOrPCDATA;
414 typedef struct _sphrase {
415 ElementPtr pSpcOrPCDATA;
426 typedef struct _cond {
431 typedef struct _then {
432 ElementPtr pAtomicOrPCDATA;
435 typedef struct _else {
436 ElementPtr pAtomicOrPCDATA;
439 typedef struct _spc {
443 typedef struct _graphic {
450 typedef struct _text {
457 typedef struct _audio {
464 typedef struct _video {
471 typedef struct _animate {
478 typedef struct _script {
484 typedef struct _crossdoc {
489 typedef struct _man_page {
494 typedef struct _textfile {
501 typedef struct _sys_cmd {
506 typedef struct _callback {
511 typedef struct _switch {
518 typedef struct _rel_docs {
522 typedef struct _rel_file {
526 typedef struct _notes {
530 typedef struct _loids {
542 typedef struct _index {
547 typedef struct _entry {
548 ElementPtr pSimpleOrPCDATA;
557 typedef struct _lophrases {
561 typedef struct _phrase {
565 typedef struct _toss {
566 ElementPtr pKeyStyle;
567 ElementPtr pHeadStyle;
568 ElementPtr pFormStyle;
569 ElementPtr pFrmtStyle;
570 ElementPtr pGrphStyle;
573 typedef struct _keystyle {
600 typedef struct _headstyle {
638 typedef struct _formstyle {
671 typedef struct _frmtstyle {
704 typedef struct _grphstyle {
719 typedef struct _cdata {
725 typedef struct _element {
730 M_WCHAR *inheritedLevel;
731 M_WCHAR *inheritedClass;
734 Vstruct_el u_vstruct;
735 Virpage_el u_virpage;
740 Frowvec_el u_frowvec;
745 Subhead_el u_subhead;
749 Refitem_el u_refitem;
750 Alttext_el u_alttext;
753 Sphrase_el u_sphrase;
759 Graphic_el u_graphic;
763 Animate_el u_animate;
765 Crossdoc_el u_crossdoc;
766 Man_page_el u_man_page;
767 Textfile_el u_textfile;
768 Sys_cmd_el u_sys_cmd;
769 Callback_el u_callback;
771 Rel_docs_el u_rel_docs;
772 Rel_file_el u_rel_file;
778 Lophrases_el u_lophrases;
781 Keystyle_el u_keystyle;
782 Headstyle_el u_headstyle;
783 Formstyle_el u_formstyle;
784 Frmtstyle_el u_frmtstyle;
785 Grphstyle_el u_grphstyle;
790 EXTERN ElementPtr pCurrentElement INIT(NULL);
792 /* variables for counting entry, phrase and style elements */
793 EXTERN ElementPtr pElementChain INIT(NULL);
794 EXTERN int nElements;
796 /* save the toss for later emission */
797 EXTERN ElementPtr pTossChain INIT(NULL);
800 EXTERN int saveSysECnt INIT(-1);
802 /* Function prototypes */