1 | /* files.h -- declarations for files.c.
|
---|
2 | $Id: files.h,v 1.4 2004/07/27 00:06:31 karl Exp $
|
---|
3 |
|
---|
4 | Copyright (C) 1998, 2002, 2004 Free Software Foundation, Inc.
|
---|
5 |
|
---|
6 | This program is free software; you can redistribute it and/or modify
|
---|
7 | it under the terms of the GNU General Public License as published by
|
---|
8 | the Free Software Foundation; either version 2, or (at your option)
|
---|
9 | any later version.
|
---|
10 |
|
---|
11 | This program is distributed in the hope that it will be useful,
|
---|
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | GNU General Public License for more details.
|
---|
15 |
|
---|
16 | You should have received a copy of the GNU General Public License
|
---|
17 | along with this program; if not, write to the Free Software
|
---|
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
---|
19 | */
|
---|
20 |
|
---|
21 | #ifndef FILES_H
|
---|
22 | #define FILES_H
|
---|
23 |
|
---|
24 | /* A stack of file information records. If a new file is read in with
|
---|
25 | "@input", we remember the old input file state on this stack. */
|
---|
26 | typedef struct fstack
|
---|
27 | {
|
---|
28 | struct fstack *next;
|
---|
29 | char *filename;
|
---|
30 | char *text;
|
---|
31 | int size;
|
---|
32 | int offset;
|
---|
33 | int line_number;
|
---|
34 | } FSTACK;
|
---|
35 | extern FSTACK *filestack;
|
---|
36 |
|
---|
37 | extern void pushfile (void);
|
---|
38 | extern void popfile (void);
|
---|
39 | extern void flush_file_stack (void);
|
---|
40 | extern char *get_file_info_in_path (char *filename, char *path,
|
---|
41 | struct stat *finfo);
|
---|
42 | extern char *find_and_load (char *filename, int use_path);
|
---|
43 | extern char *output_name_from_input_name (char *name);
|
---|
44 | extern char *expand_filename (char *filename, char *input_name);
|
---|
45 | extern char *filename_part (char *filename);
|
---|
46 | extern char *pathname_part (char *filename);
|
---|
47 | extern char *normalize_filename (char *fname);
|
---|
48 | extern void append_to_include_path (char *path);
|
---|
49 | extern void prepend_to_include_path (char *path);
|
---|
50 | extern void pop_path_from_include_path (void);
|
---|
51 | extern void register_delayed_write (char *delayed_command);
|
---|
52 | extern void handle_delayed_writes (void);
|
---|
53 |
|
---|
54 | typedef struct delayed_write
|
---|
55 | {
|
---|
56 | struct delayed_write *next;
|
---|
57 | char *command;
|
---|
58 | char *filename;
|
---|
59 | char *input_filename;
|
---|
60 | char *node;
|
---|
61 | int position;
|
---|
62 | int calling_line;
|
---|
63 |
|
---|
64 | int node_order;
|
---|
65 | int index_order;
|
---|
66 | } DELAYED_WRITE;
|
---|
67 |
|
---|
68 | extern int handling_delayed_writes;
|
---|
69 |
|
---|
70 | #endif /* !FILES_H */
|
---|