File: udo.h

package info (click to toggle)
udo 6.4.1-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,680 kB
  • sloc: ansic: 42,702; makefile: 81; cpp: 19
file content (430 lines) | stat: -rw-r--r-- 19,759 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
/*	############################################################
	# @(#) udo.h
	# @(#)
	# @(#) Copyright (c) 1995-2001 by Dirk Hagedorn
	# @(#) Dirk Hagedorn (udo@dirk-hagedorn.de)
	#
	# This program is free software; you can redistribute it and/or
	# modify it under the terms of the GNU General Public License
	# as published by the Free Software Foundation; either version 2
	# of the License, or (at your option) any later version.
	# 
	# This program is distributed in the hope that it will be useful,
	# but WITHOUT ANY WARRANTY; without even the implied warranty of
	# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	# GNU General Public License for more details.
	# 
	# You should have received a copy of the GNU General Public License
	# along with this program; if not, write to the Free Software
	# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
	############################################################	*/

/*	######################################################################
	#
	#
	# Variablen
	#
	#
	######################################################################	*/

GLOBAL int		iUdopass;			/* PASS1 oder PASS2				*/

GLOBAL BOOLEAN	bNopDetected;		/* Fuer Debugging-Zwecke		*/

GLOBAL int		desttype;			/* Ausgabeformat  (TOASC, ...)	*/
GLOBAL int		destlang;			/* Ausgabesprache (TOENG, ...)	*/
GLOBAL int		iCharset;			/* Eingabe-Zeichensatz			*/

GLOBAL int		iDateDay, iDateMonth, iDateYear;
GLOBAL int		iDateHour, iDateMin, iDateSec;

GLOBAL BOOLEAN	bNoLogfile;			/* Logfile anlegen?				*/
GLOBAL BOOLEAN	bNoHypfile;			/* Hyphenationfile anlegen? 	*/
GLOBAL BOOLEAN	bNoIdxfile;			/* Indexfile anlegen? 			*/
GLOBAL BOOLEAN	bBeQuiet;			/* Statusinfos nicht ausgeben? 	*/
GLOBAL BOOLEAN	bCheckMisc;			/* diverse Ueberpruefungen?		*/
GLOBAL BOOLEAN	bVerbose;			/* langen Status ausgeben? 		*/
GLOBAL BOOLEAN	bTestmode;			/* Testmodus? 					*/
GLOBAL BOOLEAN	bUseTreefile;		/* Include-Baum listen?			*/
GLOBAL BOOLEAN	bUseUPRfile;		/* Project-File sichern?		*/
GLOBAL BOOLEAN	bUseIdMapFileC;		/* Jump-ID-File fuer HPJ?		*/
GLOBAL BOOLEAN	bUseIdMapFilePas;	/* Jump-ID-File fuer HPJ?		*/
GLOBAL BOOLEAN	bUseIdMapFileVB;	/* Jump-ID-File fuer HPJ?		*/
GLOBAL BOOLEAN	bUseIdMapFileGFA;	/* Jump-ID-File fuer HPJ?		*/
GLOBAL BOOLEAN	bNoWarnings;		/* Keine Warnungen ausgeben?	*/
GLOBAL BOOLEAN	bForceLong;			/* Immer lange Dateinamen?		*/
GLOBAL BOOLEAN	bForceShort;		/* Immer kurze Dateinamen?		*/

GLOBAL size_t	zDocParwidth;		/* PL6: max. Zeilenbreite		*/

GLOBAL int		iTexVersion;		/* Lindner-, Strunk-, emTex?	*/	
GLOBAL int		iTexDPI;			/* Aufloesung fuer Images		*/
GLOBAL BOOLEAN	bTex2e;				/* LaTeX2e wird benutzt?		*/
GLOBAL char		cTexVerb;			/* Zeichen fuer \verb			*/

GLOBAL char		sSrcRemOn[8];		/* Kommentar ein				*/
GLOBAL char		sSrcRemOff[8];		/* Kommentar aus				*/

GLOBAL int		bDocTabwidth;		/* Tab-Width fuer verbatim-Umgebung		*/
GLOBAL int		iDocVerbatimSize;	/* Fontgroesse fuer verbatim-Umgebung	*/
GLOBAL int		iDocLinedrawSize;	/* Fontgroesse fuer linedraw-Umgebung	*/

GLOBAL char		sCurrFileName[512];	/* Gerade aktive Datei			*/
GLOBAL UINT		uiCurrFileLine;		/* und die aktuelle Zeilen-Nr.	*/

GLOBAL BOOLEAN	b1stQuote;			/* Flag fuer die "echten"		*/
GLOBAL BOOLEAN	b1stApost;

GLOBAL char		tmp_driv[MYFILE_DRIV_LEN+1];
GLOBAL char		tmp_path[MYFILE_PATH_LEN+1];
GLOBAL char		tmp_name[MYFILE_NAME_LEN+1];
GLOBAL char		tmp_suff[MYFILE_SUFF_LEN+1];

GLOBAL MYFILE	outfile;
GLOBAL MYFILE	infile;
GLOBAL MYFILE	old_outfile;
GLOBAL BOOLEAN	bOutOpened;			/* File geoeffnet?				*/

GLOBAL FILE		*fLogfile;
GLOBAL char		sLogfull[MYFILE_FULL_LEN+1];
GLOBAL BOOLEAN	bLogopened;			/* Logfile geoeffnet?			*/

GLOBAL FILE		*fHypfile;
GLOBAL char		sHypfull[MYFILE_FULL_LEN+1];
GLOBAL BOOLEAN	bHypopened;			/* Hyphenfile geoeffnet?		*/
GLOBAL BOOLEAN	bHypfailed;			/* Hypfile oeffnen gescheitert	*/

GLOBAL FILE		*fTreefile;
GLOBAL char		sTreefull[MYFILE_FULL_LEN+1];
GLOBAL BOOLEAN	bTreeopened;		/* Treefile geoeffnet?			*/

GLOBAL FILE		*fIdxfile;
GLOBAL char		sIdxfull[MYFILE_FULL_LEN+1];
GLOBAL BOOLEAN	bIdxopened;			/* Indexfile geoeffnet?			*/
GLOBAL BOOLEAN	bIdxfailed;			/* Indexfile oeffnen gescheitert*/

GLOBAL FILE		*fUPRfile;
GLOBAL char		sUPRfull[MYFILE_FULL_LEN+1];
GLOBAL BOOLEAN	bUPRopened;			/* Logfile geoeffnet?			*/

GLOBAL char		sInfMsg[256];		/* Zur Information				*/

GLOBAL char		sCmdfull[512];		/* Name der CMD-Datei fuer PCH				*/
GLOBAL char		sHpjfull[512];		/* Name der HPJ-Datei fuer Win				*/
GLOBAL char		sCntfull[512];		/* Name der CNT-Datei fuer Win4				*/
GLOBAL char		sMapNoSuff[512];	/* Name der Map-Datei fuer Win ohne Suffix	*/
GLOBAL char		sHhpfull[512];		/* Name der HHP-Datei fuer HTML Help		*/
GLOBAL char		sHhcfull[512];		/* Name der HHC-Datei fuer HTML Help		*/
GLOBAL char		sHhkfull[512];		/* Name der HHK-Datei fuer HTML Help		*/

GLOBAL PASSFLAGS	pflag[3];		/* Flags fuer die Durchlaeufe	*/

GLOBAL BOOLEAN	bFatalErrorDetected;	/* Fataler Fehler aufgetreten? */
GLOBAL BOOLEAN	bErrorDetected;		/* Fehler aufgetreten?			*/
GLOBAL BOOLEAN	bBreakHappened;		/* wuenscht User Abbruch		*/
GLOBAL BOOLEAN	bBreakInside;		/* !break gelesen				*/

GLOBAL BOOLEAN	udo_running;		/* Ist UDO gerade am werkeln? */
GLOBAL BOOLEAN	uses_udolink;		/* Wird !udolink benutzt?	*/
GLOBAL BOOLEAN	uses_toplink;		/* Wird !toplink benutzt?	*/

GLOBAL LANG		lang;				/* Spracheinstellungen */

GLOBAL char		token[MAX_TOKENS][MAX_TOKEN_LEN+1];
GLOBAL int		token_counter;
GLOBAL BOOLEAN	tokens_contain_item;

GLOBAL char		udosymbol[MAX_UDOSYMBOLS][MAX_UDOSYMBOL_LEN+1];
GLOBAL int		udosymbol_counter;

extern char compile_date[11];
extern char compile_time[9];

/*	------------------------------------------------------------------------	*/

/* Fuer die ganzen Flags eine Struktur anlegen, was die Sache	*/
/* wesentlich uebersichtlicher macht! <???>						*/

GLOBAL BOOLEAN 		use_auto_subtocs;			/* autom. Unter-Toc's anlegen? 			*/
GLOBAL BOOLEAN 		use_auto_subsubtocs;
GLOBAL BOOLEAN 		use_auto_subsubsubtocs;
GLOBAL BOOLEAN 		use_auto_toptocs;			/* autom. Ueber-Toc's anlegen? 			*/
GLOBAL BOOLEAN 		no_auto_toptocs_icons;		/* ... aber ohne Icons 					*/	/*r6pl13*/
GLOBAL BOOLEAN		use_short_envs;				/* Umgebungen immer komprimiert?		*/
GLOBAL BOOLEAN		use_short_tocs;				/* Kurze Inhaltsverzeichnisse default?	*/
GLOBAL BOOLEAN		use_formfeed;				/* Formfeed verwenden? 					*/
GLOBAL BOOLEAN		use_chapter_images;			/* Kapitelgrafiken verwenden? 			*/
GLOBAL BOOLEAN		use_about_udo;
GLOBAL BOOLEAN		use_ansi_tables;			/* Tabellen mit ANSI-Grafiken umrahmen?	*/
GLOBAL BOOLEAN		use_style_book;				/* chapter oder sections?				*/
GLOBAL BOOLEAN		use_justification;			/* Blocksatz?							*/
GLOBAL BOOLEAN		use_nodes_inside_index;		/* Kapitel in den Index uebernehmen?	*/
GLOBAL BOOLEAN		use_alias_inside_index;		/* Aliase in den Index uebernehmen?	*/
GLOBAL BOOLEAN		use_label_inside_index;		/* Labels in den Index uebernehmen?	*/
GLOBAL BOOLEAN		use_udo_index;				/* Soll UDO einen Index ausgeben?	*/
GLOBAL BOOLEAN		use_mirrored_indices;		/* !index I1 !! I2 auch spiegeln?	*/
GLOBAL BOOLEAN		use_comments;				/* Kommentare ausgeben (!rem [...])	*/
GLOBAL BOOLEAN		use_auto_helpids;			/* HelpIDs automatisch generieren?	*/		/* r6pl13 */

GLOBAL BOOLEAN 		no_umlaute;					/* Umlaute durch ae etc. ersetzen? 		*/
GLOBAL BOOLEAN 		no_headlines;				/* Keine Titelzeilen? 					*/
GLOBAL BOOLEAN 		no_titles;					/* Keine Ueberschriften? 				*/
GLOBAL BOOLEAN 		no_bottomlines;				/* Keine Fusszeilen? 					*/
GLOBAL BOOLEAN		no_popup_headlines;			/* In Popups nie eine Titelzeile?		*/
GLOBAL BOOLEAN		no_footers;					/* Keine speziellen Fusszeilen?			*/
GLOBAL BOOLEAN 		no_effects;					/* Keine Effekte? 						*/
GLOBAL BOOLEAN		no_numbers;					/* Kapitel mit Nummern ausgeben? 		*/
GLOBAL BOOLEAN		no_quotes;					/* "unechte" Anfuehrungszeichnen? 		*/
GLOBAL BOOLEAN		no_preamble;				/* preamble nicht ausgeben? 			*/
GLOBAL BOOLEAN		no_index;					/* !index ignorieren und keinen Index?	*/
GLOBAL BOOLEAN		no_buttons;					/* Keine Knoepfe erzeugen (WinHelp)		*/
GLOBAL BOOLEAN		no_img_size;				/* Keine Ausmasse ermitteln?			*/
GLOBAL BOOLEAN		no_images;					/* Bilder verwenden? 					*/
GLOBAL BOOLEAN		no_urls;					/* Keine URLs verwenden? 				*/
GLOBAL BOOLEAN		no_xlinks;					/* Keine externen Links verwenden? 		*/
GLOBAL BOOLEAN		no_links;					/* Keine Links verwenden? 				*/
GLOBAL BOOLEAN		no_sourcecode;				/* Sourcecode-Umgebung nicht ausgeben?	*/
GLOBAL BOOLEAN		no_table_lines;				/* Tabellen ohne Linien ausgeben?		*/

GLOBAL BOOLEAN		bDocAutorefOff;				/* Nicht autom. referenzieren?			*/
GLOBAL BOOLEAN		bDocAutorefItemsOff;		/* Items nicht autom. referenzieren?	*/
GLOBAL BOOLEAN		bDocUniversalCharsetOn;		/* Universellen Zeichensatz benutzen?	*/
GLOBAL BOOLEAN		bDocRtfKeepTablesOn;		/* Tabellen zusammenhalten?				*/
GLOBAL BOOLEAN		bDocWinOldKeywords;			/* Alte Keywords benutzen?				*/
GLOBAL BOOLEAN		bDocSortHyphenFile;			/* *.uh? sortieren						*/

GLOBAL BOOLEAN		html_merge_node1;			/* Nodes nicht splitten? */
GLOBAL BOOLEAN		html_merge_node2;			/* Subnodes nicht splitten? */
GLOBAL BOOLEAN		html_merge_node3;			/* Subsubnodes nicht splitten? */
GLOBAL BOOLEAN		html_merge_node4;			/* Subsubsubnodes nicht splitten? */
GLOBAL BOOLEAN		html_no_xlist;				/* xlist- durch description-Umgebung ersetzen? */
GLOBAL BOOLEAN		html_ignore_p;				/* Internes Flag, ob <P> in token_output() ignoriert werden soll. */
GLOBAL BOOLEAN		html_ignore_8bit;			/* ae nicht in &auml; wandeln? */
GLOBAL BOOLEAN		html_modern_layout;			/* Modernes 2-Spalten-Layout? */
GLOBAL BOOLEAN		html_frames_layout;			/* Frames fuer HTML benutzen? */
GLOBAL BOOLEAN		html_frames_noresize;
GLOBAL BOOLEAN		html_frames_noborder;
GLOBAL BOOLEAN		html_frames_noscroll;
GLOBAL BOOLEAN		html_use_folders;			/* Ordnerstruktur erzeugen? */
GLOBAL BOOLEAN		html_transparent_buttons;	/* Transparente Buttons benutzen?	*/

GLOBAL char			sDocHtmlSwitchLanguage[256];	/* Links zum Wechseln?			*/
GLOBAL int			iDocHtmlSwitchLanguage;			/* ... und der Wert der Sprache */

GLOBAL int			html_nodesize;					/* Default: 1 -> <H1>			*/
GLOBAL char			sDocHtmlBackpage[512];			/* Ruecksprung im Index 		*/
GLOBAL char			sDocHtmlPropfontName[64];		/* <FONT FACE="...">			*/
GLOBAL char			sDocHtmlPropfontSize[16];		/* <FONT SIZE="...">			*/
GLOBAL int			iDocHtmlPropfontSize;
GLOBAL char			sDocHtmlMonofontName[64];		/* <FONT FACE="...">			*/
GLOBAL char			sDocHtmlMonofontSize[16];		/* <FONT SIZE="...">			*/
GLOBAL int			iDocHtmlMonofontSize;
GLOBAL char			html_modern_width[16];			/* Breite der linken Spalte		*/
GLOBAL int			html_modern_alignment;			/* Ausrichtung linke Spalte		*/
GLOBAL char			html_modern_backcolor[16];		/* Backfarbe der linken Spalte	*/
GLOBAL char			html_modern_backimage[512];		/* Image der linken Spalte		*/
GLOBAL char			html_frames_width[16];			/* Breite des linken Frames		*/
GLOBAL char			html_frames_height[16];			/* Breite des oberen Frames		*/
GLOBAL int			html_frames_position;			/* Position des Frames			*/
GLOBAL int			html_frames_alignment;			/* Ausrichtung linker Frame		*/
GLOBAL char			html_frames_backcolor[16];		/* Backfarbe des linken Frames	*/
GLOBAL char			html_frames_textcolor[16];		/* Textfarbe des linken Frames	*/
GLOBAL char			html_frames_linkcolor[16];		/* Linkfarbe der linken Spalte	*/
GLOBAL char			html_frames_alinkcolor[16];		/* Linkfarbe der linken Spalte	*/
GLOBAL char			html_frames_vlinkcolor[16];		/* Linkfarbe der linken Spalte	*/
GLOBAL char			html_frames_backimage[512];		/* Image des linken Frames		*/
GLOBAL int			html_button_alignment;			/* Ausrichtung der Buttons		*/
GLOBAL char			html_name_prefix[512];			/* Prefix fuer HTML-Dateinamen	*/
/* New in r6pl16 [NHz] */
GLOBAL BOOLEAN			html_use_hyphenation;		/* Lange Woerter sollen durch (!-) getrennt werden */
GLOBAL int			html_doctype;		/* Welche DTD soll benutzt werden? */

GLOBAL int			image_alignment;			/* Ausrichtung der Bilder		*/
GLOBAL int			table_alignment;			/* Ausrichtung der Tabellen		*/

GLOBAL char			sDocWinPrefixID[64];		/* Prefix fuer autom. Help-IDs	*/

GLOBAL char			sDrcBcolor[3];				/* DRC-Farbe fuer bold r6pl5 */
GLOBAL char			sDrcIcolor[3];				/* DRC-Farbe fuer italic r6pl5 */
GLOBAL char			sDrcUcolor[3];				/* DRC-Farbe fuer underlined r6pl5 */
GLOBAL int			iDrcFlags;					/* DRC-Flags fuer EDIT, SAVE, PRINT, ... */

GLOBAL int			iManPageLines;				/* ausgegebene Zeilen pro Seite		*/
GLOBAL int			iManPagePages;				/* bereits ausgegebene Seiten		*/
GLOBAL int			iManPageLength;				/* maximale Zeilen pro Seite		*/
GLOBAL char			sDocManType[32];			/* Typ (1), (C), ...				*/
GLOBAL char			sDocNroffType[32];			/* dito fuer nroff					*/

GLOBAL char			sDocImgSuffix[32];			/* gif, jpg, jpeg, ...		*/
GLOBAL char			sDocBackImage[128];			/*r6pl5*/
GLOBAL char			sDocStyle[128];					/* r6pl15 [NHz] */
GLOBAL char			sDocScript[128];				/* r6pl15 [NHz] */
GLOBAL char			sDocFavIcon[128];				/* r6pl15 [NHz] */
GLOBAL char			sDocBackColor[32];
GLOBAL char			sDocTextColor[32];
GLOBAL char			sDocLinkColor[32];
GLOBAL char			sDocAlinkColor[32];
GLOBAL char			sDocVlinkColor[32];
GLOBAL char			sDocVerbatimBackColor[32];

GLOBAL char			sDocRawHeaderFilename[512];	/*r6pl10*/
GLOBAL char			sDocRawFooterFilename[512];	/*r6pl10*/

GLOBAL BOOLEAN		bDocInlineBitmaps;			/* {bmcwd statt {bmc verwenden?		*/
GLOBAL BOOLEAN		bDocHighCompression;
GLOBAL BOOLEAN		bDocMediumCompression;

GLOBAL int			iDocCharwidth;				/* Zeichenbreiten-Konstanten */
GLOBAL char			sDocPropfont[MAXZEILE+1];	/* Proportional- und Monospacedfont */
GLOBAL char			sDocMonofont[MAXZEILE+1];	/* fuer den RTF-Header */
GLOBAL char			sDocPropfontSize[16];
GLOBAL int			iDocPropfontSize;
GLOBAL char			sDocMonofontSize[16];
GLOBAL int			iDocMonofontSize;
GLOBAL BOOLEAN		bDocNoTables;				/* Keine echten RTF-Tabellen anlegen? */

GLOBAL BOOLEAN		bCalledIndex;				/* !index ignorieren und keinen Index?	*/

/*	######################################################################
	#
	#
	# Prototypen
	#
	#
	######################################################################	*/

/*	######################################################################
	#     Ausgabe-Routinen
	######################################################################	*/
GLOBAL void outln (const char *s);
GLOBAL void out (const char *s);
GLOBAL void voutlnf ( const char *fmt, ... ) __attribute__((format(printf, 1, 2)));
GLOBAL void voutf ( const char *fmt, ... ) __attribute__((format(printf, 1, 2)));


/*	######################################################################
	#     String-Manipulation
	######################################################################	*/
GLOBAL void stringcenter(char *string, size_t length);
GLOBAL void strcenter(char *string, size_t length);
GLOBAL void outlncenter ( char *s );
GLOBAL void outlncenterfill ( char *s );
GLOBAL void strright(char *string, size_t length);
GLOBAL void output_ascii_line ( const char *c, const size_t len );

/*	############################################################
	# Testen, ob ein Kommando fuer die Sprache/das Format
	############################################################	*/
GLOBAL BOOLEAN str_for_desttype ( const char *s );
GLOBAL BOOLEAN is_for_desttype (BOOLEAN *schalter, const char *cmd);


/*	############################################################
	# Farben
	############################################################	*/
GLOBAL BOOLEAN get_html_color ( const char *s, char *h );


/*	############################################################
	# Symbole (Commandline-Definitionen) verwalten
	############################################################	*/
GLOBAL void del_udosymbol ( const char *s );
GLOBAL void add_udosymbol ( const char *s );
GLOBAL BOOLEAN udosymbol_set ( const char *s );

/*	############################################################
	# Horizontale Linien ausgeben
	############################################################	*/
GLOBAL void c_hline ( void );


/*	############################################################
	# Indizes bearbeiten, verwalten und Indexregister ausgeben
	############################################################	*/
GLOBAL BOOLEAN add_idxlist_item ( const char *x1, const char *x2, const char *x3);
GLOBAL void print_index ( void );
GLOBAL void output_htmlhelp_index ( const int count, const char *x0, const char *x1, const char *x2 );


/*	############################################################
	# Diverses
	############################################################	*/
GLOBAL void c_debug ( void );
GLOBAL void c_udolink ( void );
GLOBAL void c_toplink ( void );

/*	############################################################
	# Seitenumbruch
	############################################################	*/
GLOBAL void c_newpage ( void );


/*	############################################################
	# Include
	############################################################	*/
GLOBAL void c_include ( void );


/*	############################################################
	# Tokenverwaltung
	############################################################	*/
GLOBAL void str2tok ( char *s );
GLOBAL size_t toklen ( char *s );
GLOBAL void tokcat ( char *s, size_t maxlen );
GLOBAL void tokcpy2 ( char *s, size_t maxlen );
GLOBAL void token_reset ( void );
GLOBAL void token_output ( BOOLEAN reset_internals );
GLOBAL void tokenize ( char *s);



/*	############################################################
	# Pfadseperator und Fileendung anpassen
	############################################################	*/
GLOBAL void change_sep_suffix ( char *full, const char *suff );

/*	############################################################
	# Dateinamen setzen, falls nicht vollstaendig
	############################################################	*/
GLOBAL void build_search_file ( char *d, const char *suff );
GLOBAL void build_search_file_output ( char *d, const char *suff );

GLOBAL void build_include_filename ( char *d, const char *suff );
GLOBAL void build_image_filename ( char *d, const char *suff );


/*	############################################################
	# Hauptroutine
	############################################################	*/
GLOBAL BOOLEAN udo (char *datei);
GLOBAL BOOLEAN udo2udo (char *datei);


/*	############################################################
	# Eintraege fuer das Projectfile anlegen
	############################################################	*/
GLOBAL void save_upr_entry_infile ( const char *filename );
GLOBAL void save_upr_entry_outfile ( const char *filename );
GLOBAL void save_upr_entry_image ( const char *filename );
/* Changed in r6pl15 [NHz] */

/* Extra parameter line */

GLOBAL void save_upr_entry_node ( const int level, const char *filename, const char *title, const long line );
GLOBAL void save_upr_entry_heading ( const int level, const char *filename, const char *title, const long line ); /* New in r6pl15 [NHz] */
GLOBAL void save_upr_entry_alias ( const char *filename, const char *title, const long line ); /* New in r6pl15 [NHz] */
GLOBAL void save_upr_entry_label ( const char *filename, const char *title, const long line ); /* New in r6pl15 [NHz] */
GLOBAL void save_upr_entry_index ( const int level, const char *filename, const char *title, const long line ); /* New in r6pl15 [NHz] */


/*	############################################################
	# init_vars
	############################################################	*/
GLOBAL void init_vars ( void );

/*	######################################################################
	# Dateiendung anpassen
	######################################################################	*/
GLOBAL void dest_special_adjust ( void );
GLOBAL void dest_adjust ( void );