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