|
|
1.1 root 1: #define DISKBUFSIZE 4096 /* Size of I/O buffers */
2:
3: #ifndef SEEK_SET
4: #define SEEK_SET 0
5: #define SEEK_CUR 1
6: #define SEEK_END 2
7: #endif
8:
9:
10: #define TMP_WIPE 1
11: #define TMP_TMPDIR 4
12:
13: #define equal_buffers(buf1,buf2,count) !memcmp( buf1, buf2, count )
14:
15: /* This macro is for burning sensitive data (byte arrays only) on stack.
16: Many of the file I/O routines use it for zapping buffers */
17: #define burn(x) fill0(x,sizeof(x))
18:
19: /* Returns TRUE iff file is can be opened for reading. */
20: boolean file_exists(char *filename);
21:
22: /* Returns TRUE iff file can be opened for writing. Does not harm file! */
23: boolean file_ok_write(char *filename);
24:
25: /* Completely overwrite and erase file, so that no sensitive information is
26: left on the disk */
27: int wipeout(FILE *f);
28:
29: /* Completely overwrite and erase file of given name, so that no sensitive
30: information is left on the disk */
31: int wipefile(char *filename);
32:
33: /* Return the after-slash part of the filename */
34: char *file_tail (char *filename);
35: /* Returns TRUE if user left off file extension, allowing default */
36: boolean no_extension(char *filename);
37:
38: /* Deletes trailing ".xxx" file extension after the period */
39: void drop_extension(char *filename);
40:
41: /* Append filename extension if there isn't one already */
42: void default_extension(char *filename, char *extension);
43:
44: /* Change the filename extension */
45: void force_extension(char *filename, char *extension);
46:
47: /* Get yes/no answer from user, returns TRUE for yes, FALSE for no */
48: boolean getyesno(char default_answer);
49:
50: /* If luser consents to it, change the filename extension */
51: void maybe_force_extension(char *filename, char *extension);
52:
53: /* Builds a filename with a complete path specifier from the environmental
54: variable PGPPATH */
55: char *buildfilename(char *result, char *fname);
56:
57: /* Build a path for fileName based on origPath */
58: int build_path(char *path, char *fileName, char *origPath);
59:
60: /* Convert filename to canonical form, with slashes as separators */
61: void file_to_canon(char *filename);
62:
63: /* Convert filename from canonical to local form */
64: void file_from_canon(char *filename);
65:
66: /* Copy file f to file g, for longcount bytes */
67: int copyfile(FILE *f, FILE *g, word32 longcount);
68:
69: /* Copy file f to file g, for longcount bytes, positioning f at fpos */
70: int copyfilepos (FILE *f, FILE *g, word32 longcount, word32 fpos);
71:
72: /* Copy file f to file g, for longcount bytes. Convert to canonical form
73: as we go. f is open in text mode. Canonical form uses crlf's as line
74: separators */
75: int copyfile_to_canon (FILE *f, FILE *g, word32 longcount);
76:
77: /* Copy file f to file g, for longcount bytes. Convert from canonical to
78: local form as we go. g is open in text mode. Canonical form uses crlf's
79: as line separators */
80: int copyfile_from_canon (FILE *f, FILE *g, word32 longcount);
81:
82: /* Copy srcFile to destFile */
83: int copyfiles_by_name(char *srcFile, char *destFile);
84:
85: /* Copy srcFile to destFile, converting to canonical text form */
86: int make_canonical(char *srcFile, char *destFile);
87:
88: /* Like rename() but will try to copy the file if the rename fails. This is
89: because under OS's with multiple physical volumes if the source and
90: destination are on different volumes the rename will fail */
91: int rename2(char *srcFile, char *destFile);
92:
93: /* Read the data from stdin to the phantom input file */
94: int readPhantomInput(char *filename);
95:
96: /* Write the data from the phantom output file to stdout */
97: void writePhantomOutput(char *filename);
98:
99: /* Return the size from the current position of file f to the end */
100: word32 fsize (FILE *f);
101:
102: /* Return TRUE if file filename is a text file */
103: int is_text_file (char *filename);
104:
105: FILE *fopenbin(char *, char *);
106: FILE *fopentxt(char *, char *);
107:
108: void *xmalloc(unsigned);
109:
110: char *tempfile(int);
111: void rmtemp(char *);
112: char *savetemp(char *, char *);
113: void cleanup_tmpf(void);
114: int savetempbak(char *, char *);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.