1 #include <errno.h>
2 #include <sys/stat.h>
3 #include <sys/types.h>
4
5 #include "ficl.h"
6
7
8
ficlFileTruncate(ficlFile * ff,ficlUnsigned size)9 int ficlFileTruncate(ficlFile *ff, ficlUnsigned size)
10 {
11 return ftruncate(fileno(ff->f), size);
12 }
13
14
15
ficlMalloc(size_t size)16 void *ficlMalloc(size_t size)
17 {
18 return malloc(size);
19 }
20
ficlRealloc(void * p,size_t size)21 void *ficlRealloc(void *p, size_t size)
22 {
23 return realloc(p, size);
24 }
25
ficlFree(void * p)26 void ficlFree(void *p)
27 {
28 free(p);
29 }
30
ficlCallbackDefaultTextOut(ficlCallback * callback,char * message)31 void ficlCallbackDefaultTextOut(ficlCallback *callback, char *message)
32 {
33 FICL_IGNORE(callback);
34 if (message != NULL)
35 fputs(message, stdout);
36 else
37 fflush(stdout);
38 return;
39 }
40
ficlFileStatus(char * filename,int * status)41 int ficlFileStatus(char *filename, int *status)
42 {
43 struct stat statbuf;
44 if (stat(filename, &statbuf) == 0)
45 {
46 *status = statbuf.st_mode;
47 return 0;
48 }
49 *status = ENOENT;
50 return -1;
51 }
52
53
ficlFileSize(ficlFile * ff)54 long ficlFileSize(ficlFile *ff)
55 {
56 struct stat statbuf;
57 if (ff == NULL)
58 return -1;
59
60 statbuf.st_size = -1;
61 if (fstat(fileno(ff->f), &statbuf) != 0)
62 return -1;
63
64 return statbuf.st_size;
65 }
66
67
68
69
ficlSystemCompilePlatform(ficlSystem * system)70 void ficlSystemCompilePlatform(ficlSystem *system)
71 {
72 return;
73 }
74
75
76