7983
|
1 |
#ifndef FILEIO_H_
|
|
2 |
#define FILEIO_H_
|
|
3 |
|
|
4 |
#include <stdio.h>
|
|
5 |
#include "types.h"
|
|
6 |
#include "misc.h"
|
|
7 |
|
|
8 |
extern int FileMode;
|
|
9 |
|
|
10 |
typedef enum{
|
|
11 |
IO_NO_ERROR = 0,
|
|
12 |
IO_ERROR_DUMMY = 1
|
|
13 |
}io_result_t;
|
|
14 |
|
|
15 |
extern io_result_t IOResult;
|
|
16 |
|
|
17 |
typedef struct{
|
|
18 |
FILE *fp;
|
|
19 |
const char* mode;
|
|
20 |
char file_name[256];
|
|
21 |
int eof;
|
|
22 |
int record_len;
|
|
23 |
}file_wrapper_t;
|
|
24 |
|
|
25 |
typedef file_wrapper_t* File;
|
|
26 |
typedef File Text;
|
|
27 |
typedef Text TextFile;
|
|
28 |
|
|
29 |
void __attribute__((overloadable)) fpcrtl_readLn(File f);
|
|
30 |
#define fpcrtl_readLn1(f) fpcrtl_readLn(f)
|
|
31 |
|
|
32 |
void __attribute__((overloadable)) fpcrtl_readLn__vars(File f, Integer *i);
|
|
33 |
void __attribute__((overloadable)) fpcrtl_readLn__vars(File f, LongWord *i);
|
|
34 |
void __attribute__((overloadable)) fpcrtl_readLn__vars(File f, string255 *s);
|
|
35 |
#define fpcrtl_readLn2(f, t) fpcrtl_readLn__vars(f, &(t))
|
|
36 |
|
|
37 |
#define fpcrtl_readLn(...) macro_dispatcher(fpcrtl_readLn, __VA_ARGS__)(__VA_ARGS__)
|
|
38 |
|
|
39 |
|
|
40 |
void fpcrtl_blockRead__vars(File f, void *buf, Integer count, Integer *result);
|
|
41 |
#define fpcrtl_blockRead(f, buf, count, result) fpcrtl_blockRead__vars(f, &(buf), count, &(result))
|
|
42 |
#define fpcrtl_BlockRead fpcrtl_blockRead
|
|
43 |
|
|
44 |
#define fpcrtl_assign(f, name) fpcrtl_assign__vars(&f, name)
|
|
45 |
void fpcrtl_assign__vars(File *f, string255 name);
|
|
46 |
|
|
47 |
boolean fpcrtl_eof(File f);
|
|
48 |
|
|
49 |
void fpcrtl_reset1(File f);
|
|
50 |
void fpcrtl_reset2(File f, Integer l);
|
|
51 |
#define fpcrtl_reset1(f) fpcrtl_reset1(f)
|
|
52 |
#define fpcrtl_reset2(f, l) fpcrtl_reset2(f, l)
|
|
53 |
#define fpcrtl_reset(...) macro_dispatcher(fpcrtl_reset, __VA_ARGS__)(__VA_ARGS__)
|
|
54 |
|
|
55 |
void fpcrtl_close(File f);
|
|
56 |
|
|
57 |
void __attribute__((overloadable)) fpcrtl_rewrite(File f);
|
|
58 |
void __attribute__((overloadable)) fpcrtl_rewrite(File f, Integer l);
|
|
59 |
|
|
60 |
void __attribute__((overloadable)) fpcrtl_flush(Text f);
|
|
61 |
void __attribute__((overloadable)) fpcrtl_flush(FILE *f);
|
|
62 |
|
|
63 |
void __attribute__((overloadable)) fpcrtl_write(File f, string255 s);
|
|
64 |
void __attribute__((overloadable)) fpcrtl_write(FILE *f, string255 s);
|
|
65 |
void __attribute__((overloadable)) fpcrtl_writeLn(File f, string255 s);
|
|
66 |
void __attribute__((overloadable)) fpcrtl_writeLn(FILE *f, string255 s);
|
|
67 |
|
|
68 |
void fpcrtl_blockWrite__vars(File f, const void *buf, Integer count, Integer *result);
|
|
69 |
#define fpcrtl_blockWrite(f, buf, count, result) fpcrtl_blockWrite__vars(f, &(buf), count, &(result))
|
|
70 |
#define fpcrtl_BlockWrite fpcrtl_blockWrite
|
|
71 |
|
|
72 |
bool fpcrtl_directoryExists(string255 dir);
|
|
73 |
#define fpcrtl_DirectoryExists fpcrtl_directoryExists
|
|
74 |
|
|
75 |
bool fpcrtl_fileExists(string255 filename);
|
|
76 |
#define fpcrtl_FileExists fpcrtl_fileExists
|
|
77 |
|
|
78 |
#endif /* FILEIO_H_ */
|