1
4
5# ifndef LMT_TEXFILEIO_H
6# define LMT_TEXFILEIO_H
7
8# include "textypes.h"
9
10# define FOPEN_R_MODE "r"
11# define FOPEN_W_MODE "wb"
12# define FOPEN_RBIN_MODE "rb"
13# define FOPEN_WBIN_MODE "wb"
14
15# define IS_SPC_OR_EOL(c) ((c) == ' ' || (c) == '\r' || (c) == '\n')
16
17extern void tex_initialize_fileio_state (void);
18extern bool tex_room_in_buffer (int top);
19extern int tex_lua_a_open_in (const char *fn);
20extern void tex_lua_a_close_in (void);
21extern int tex_lua_input_ln (void);
22
23
45
46# define format_extension ".fmt"
47# define transcript_extension ".log"
48# define texinput_extension ".tex"
49
50typedef struct fileio_state_info {
51 unsigned char *io_buffer;
52 memory_data io_buffer_data;
53 int io_first;
54 int io_last;
55 int name_in_progress;
56 int log_opened;
57 char *job_name;
58 char *log_name;
59 char *fmt_name;
60} fileio_state_info ;
61
62extern fileio_state_info lmt_fileio_state;
63
64# define emergency_job_name (lmt_fileio_state.job_name ? lmt_fileio_state.job_name : "unknown job name")
65# define emergency_log_name (lmt_fileio_state.log_name ? lmt_fileio_state.log_name : "unknown log name")
66# define emergency_fmt_name (lmt_fileio_state.fmt_name ? lmt_fileio_state.fmt_name : "unknown fmt name")
67
68extern void tex_terminal_update (void);
69extern void tex_open_log_file (void);
70extern void tex_close_log_file (void);
71extern void tex_start_input (char *fn, halfword at_end_of_file);
72extern void tex_check_fmt_name (void);
73extern void tex_check_job_name (char *fn);
74extern dumpstream tex_open_fmt_file (int writemode);
75extern void tex_close_fmt_file (dumpstream f);
76extern char *tex_read_file_name (int optionalequal, const char * name, const char* ext);
77extern void tex_print_file_name (unsigned char *name);
78extern void tex_report_start_file (unsigned char *name);
79extern void tex_report_stop_file (void);
80
81# endif
82 |