c39247dba0592591ecc15ff9ab07b6ca3dc07169
[sdk] / compiler / bootstrap / ecere / bootstrap / File.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
5 #include <stdarg.h>
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
9 #ifdef _WIN32
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
13 #endif
14 typedef long long int64;
15 typedef unsigned long long uint64;
16 #else
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
19 #endif
20 #ifdef __BIG_ENDIAN__
21 #define __ENDIAN_PAD(x) (8 - (x))
22 #else
23 #define __ENDIAN_PAD(x) 0
24 #endif
25 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
26
27 struct __ecereNameSpace__ecere__sys__BTNode;
28
29 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
30
31 struct __ecereNameSpace__ecere__sys__BinaryTree
32 {
33 struct __ecereNameSpace__ecere__sys__BTNode * root;
34 int count;
35 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
36 void (*  FreeKey)(void *  key);
37 };
38
39 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
40
41 struct __ecereNameSpace__ecere__sys__OldList
42 {
43 void *  first;
44 void *  last;
45 int count;
46 unsigned int offset;
47 unsigned int circ;
48 };
49
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
51
52 struct __ecereNameSpace__ecere__com__Class
53 {
54 struct __ecereNameSpace__ecere__com__Class * prev;
55 struct __ecereNameSpace__ecere__com__Class * next;
56 char *  name;
57 int offset;
58 int structSize;
59 int (* *  _vTbl)();
60 int vTblSize;
61 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
62 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
63 int offsetClass;
64 int sizeClass;
65 struct __ecereNameSpace__ecere__com__Class * base;
66 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
67 struct __ecereNameSpace__ecere__sys__BinaryTree members;
68 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
69 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
70 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
71 struct __ecereNameSpace__ecere__sys__OldList derivatives;
72 int memberID;
73 int startMemberID;
74 int type;
75 struct __ecereNameSpace__ecere__com__Instance * module;
76 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
77 char *  dataTypeString;
78 struct __ecereNameSpace__ecere__com__Instance * dataType;
79 int typeSize;
80 int defaultAlignment;
81 void (*  Initialize)();
82 int memberOffset;
83 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
84 char *  designerClass;
85 unsigned int noExpansion;
86 char *  defaultProperty;
87 unsigned int comRedefinition;
88 int count;
89 unsigned int isRemote;
90 unsigned int internalDecl;
91 void *  data;
92 unsigned int computeSize;
93 int structAlignment;
94 int destructionWatchOffset;
95 unsigned int fixed;
96 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
97 int inheritanceAccess;
98 char *  fullName;
99 void *  symbol;
100 struct __ecereNameSpace__ecere__sys__OldList conversions;
101 struct __ecereNameSpace__ecere__sys__OldList templateParams;
102 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
103 struct __ecereNameSpace__ecere__com__Class * templateClass;
104 struct __ecereNameSpace__ecere__sys__OldList templatized;
105 int numParams;
106 };
107
108 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
109
110 struct __ecereNameSpace__ecere__com__Instance
111 {
112 int (* *  _vTbl)();
113 struct __ecereNameSpace__ecere__com__Class * _class;
114 int _refCount;
115 };
116
117 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
118
119 struct __ecereNameSpace__ecere__com__Property
120 {
121 struct __ecereNameSpace__ecere__com__Property * prev;
122 struct __ecereNameSpace__ecere__com__Property * next;
123 char *  name;
124 unsigned int isProperty;
125 int memberAccess;
126 int id;
127 struct __ecereNameSpace__ecere__com__Class * _class;
128 char *  dataTypeString;
129 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
130 struct __ecereNameSpace__ecere__com__Instance * dataType;
131 void (*  Set)();
132 int (*  Get)();
133 unsigned int (*  IsSet)();
134 void *  data;
135 void *  symbol;
136 int vid;
137 unsigned int conversion;
138 unsigned int watcherOffset;
139 char *  category;
140 unsigned int compiled;
141 unsigned int selfWatchable;
142 unsigned int isWatchable;
143 };
144
145 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
146
147 struct __ecereNameSpace__ecere__com__DataMember
148 {
149 struct __ecereNameSpace__ecere__com__DataMember * prev;
150 struct __ecereNameSpace__ecere__com__DataMember * next;
151 char *  name;
152 unsigned int isProperty;
153 int memberAccess;
154 int id;
155 struct __ecereNameSpace__ecere__com__Class * _class;
156 char *  dataTypeString;
157 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
158 struct __ecereNameSpace__ecere__com__Instance * dataType;
159 int type;
160 int offset;
161 int memberID;
162 struct __ecereNameSpace__ecere__sys__OldList members;
163 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
164 int memberOffset;
165 int structAlignment;
166 };
167
168 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
169
170 struct __ecereNameSpace__ecere__com__Method
171 {
172 char *  name;
173 struct __ecereNameSpace__ecere__com__Method * parent;
174 struct __ecereNameSpace__ecere__com__Method * left;
175 struct __ecereNameSpace__ecere__com__Method * right;
176 int depth;
177 int (*  function)();
178 int vid;
179 int type;
180 struct __ecereNameSpace__ecere__com__Class * _class;
181 void *  symbol;
182 char *  dataTypeString;
183 struct __ecereNameSpace__ecere__com__Instance * dataType;
184 int memberAccess;
185 };
186
187 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
188
189 struct __ecereNameSpace__ecere__com__SerialBuffer
190 {
191 unsigned char *  _buffer;
192 unsigned int count;
193 unsigned int _size;
194 unsigned int pos;
195 };
196
197 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
198
199 struct __ecereNameSpace__ecere__com__DataValue
200 {
201 union
202 {
203 char c;
204 unsigned char uc;
205 short s;
206 unsigned short us;
207 int i;
208 unsigned int ui;
209 void *  p;
210 float f;
211 double d;
212 long long i64;
213 uint64 ui64;
214 };
215 };
216
217 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
218
219 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
220 {
221 union
222 {
223 struct
224 {
225 char *  dataTypeString;
226 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
227 };
228 struct __ecereNameSpace__ecere__com__DataValue expression;
229 struct
230 {
231 char *  memberString;
232 union
233 {
234 struct __ecereNameSpace__ecere__com__DataMember * member;
235 struct __ecereNameSpace__ecere__com__Property * prop;
236 struct __ecereNameSpace__ecere__com__Method * method;
237 };
238 };
239 };
240 };
241
242 typedef unsigned int size_t;
243
244 void exit(int status);
245
246 void * calloc(size_t nmemb, size_t size);
247
248 void free(void * ptr);
249
250 void * malloc(size_t size);
251
252 void * realloc(void * ptr, size_t size);
253
254 long int strtol(const char * nptr, char ** endptr, int base);
255
256 long long int strtoll(const char * nptr, char ** endptr, int base);
257
258 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
259
260 typedef __builtin_va_list __gnuc_va_list;
261
262 typedef __gnuc_va_list va_list;
263
264 typedef void FILE;
265
266 FILE * bsl_stdin(void);
267
268 FILE * bsl_stdout(void);
269
270 FILE * bsl_stderr(void);
271
272 char * fgets(char * s, int size, FILE * stream);
273
274 FILE * fopen(const char * path, const char * mode);
275
276 int fclose(FILE * fp);
277
278 int fflush(FILE * stream);
279
280 int fgetc(FILE * stream);
281
282 int fprintf(FILE * stream, const char * format, ...);
283
284 int fputc(int c, FILE * stream);
285
286 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
287
288 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
289
290 int fseek(FILE * stream, long offset, int whence);
291
292 long ftell(FILE * stream);
293
294 int feof(FILE * stream);
295
296 int ferror(FILE * stream);
297
298 int fileno(FILE * stream);
299
300 unsigned int FILE_GetSize(FILE * input);
301
302 unsigned int FILE_Lock(FILE * input, FILE * output, int type, uint64 start, uint64 length, unsigned int wait);
303
304 void FILE_set_buffered(FILE * input, FILE * output, unsigned int value);
305
306 unsigned int FILE_FileExists(char * fileName);
307
308 unsigned int FILE_FileGetSize(char * fileName, unsigned int * size);
309
310 unsigned int FILE_FileGetStats(char * fileName, struct __ecereNameSpace__ecere__sys__FileStats * stats);
311
312 void FILE_FileFixCase(char * file);
313
314 void FILE_FileOpen(char * fileName, int mode, FILE ** input, FILE ** output);
315
316 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__httpFileSystem;
317
318 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileSize;
319
320 int __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnCompare(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, unsigned int * data2)
321 {
322 int result = 0;
323
324 if(&(*(this)) && &(*(data2)))
325 {
326 if((*(this)) > (*(data2)))
327 result = 1;
328 else if((*(this)) < (*(data2)))
329 result = -1;
330 }
331 return result;
332 }
333
334 extern void __ecereNameSpace__ecere__sys__PrintSize(char *  string, unsigned int size, int prec);
335
336 char * __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string, void * fieldData, unsigned int * needClass)
337 {
338 __ecereNameSpace__ecere__sys__PrintSize(string, *(unsigned int *)this, 2);
339 return string;
340 }
341
342 extern double strtod(char * , char * * );
343
344 extern char *  strstr(char * , const char * );
345
346 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
347 {
348 char * end;
349 double value = strtod(string, &end);
350 unsigned int multiplier = 1;
351
352 if(strstr(end, "GB") || strstr(end, "gb"))
353 multiplier = (unsigned int)1024 * 1024 * 1024;
354 else if(strstr(end, "MB") || strstr(end, "mb"))
355 multiplier = (unsigned int)1024 * 1024;
356 else if(strstr(end, "KB") || strstr(end, "kb"))
357 multiplier = 1024;
358 (*(this)) = (unsigned int)((double)multiplier * value);
359 return 0x1;
360 }
361
362 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileSystem;
363
364 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileOpenMode;
365
366 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileSeekMode;
367
368 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileLock;
369
370 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__File_input, * __ecerePropM___ecereNameSpace__ecere__sys__File_input;
371
372 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__File_output, * __ecerePropM___ecereNameSpace__ecere__sys__File_output;
373
374 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__File_buffered, * __ecerePropM___ecereNameSpace__ecere__sys__File_buffered;
375
376 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__File_eof, * __ecerePropM___ecereNameSpace__ecere__sys__File_eof;
377
378 struct __ecereNameSpace__ecere__sys__File
379 {
380 FILE * input, * output;
381 };
382
383 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
384
385 static int __ecereNameSpace__ecere__sys__openCount;
386
387 void __ecereDestructor___ecereNameSpace__ecere__sys__File(struct __ecereNameSpace__ecere__com__Instance * this)
388 {
389 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
390
391 {
392 if(__ecerePointer___ecereNameSpace__ecere__sys__File->output && __ecerePointer___ecereNameSpace__ecere__sys__File->output != __ecerePointer___ecereNameSpace__ecere__sys__File->input)
393 {
394 __ecereNameSpace__ecere__sys__openCount--;
395 fclose(__ecerePointer___ecereNameSpace__ecere__sys__File->output);
396 }
397 if(__ecerePointer___ecereNameSpace__ecere__sys__File->input)
398 {
399 __ecereNameSpace__ecere__sys__openCount--;
400 fclose(__ecerePointer___ecereNameSpace__ecere__sys__File->input);
401 }
402 __ecerePointer___ecereNameSpace__ecere__sys__File->input = (((void *)0));
403 __ecerePointer___ecereNameSpace__ecere__sys__File->output = (((void *)0));
404 }
405 }
406
407 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
408
409 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_ReadData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
410 {
411 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
412
413 return ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(this, bytes, 1, numBytes);
414 }
415
416 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
417
418 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_WriteData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
419 {
420 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
421
422 return ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(this, bytes, 1, numBytes);
423 }
424
425 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
426
427 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
428
429 struct __ecereNameSpace__ecere__sys__TempFile
430 {
431 unsigned char *  buffer;
432 unsigned int size;
433 unsigned int position;
434 unsigned int eof;
435 int openMode;
436 unsigned int allocated;
437 };
438
439 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
440
441 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof;
442
443 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
444
445 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance ** this, char * string)
446 {
447 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
448
449 if(!string[0])
450 {
451 (*(this)) = (((void *)0));
452 return 0x1;
453 }
454 else
455 {
456 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(string, 1);
457
458 if(f)
459 {
460 (*(this)) = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
461 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(f))
462 {
463 unsigned char buffer[4096];
464 unsigned int read = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, buffer, 1, sizeof buffer);
465
466 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))((*(this)))->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])((*(this)), buffer, 1, read);
467 }
468 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
469 return 0x1;
470 }
471 }
472 return 0x0;
473 }
474
475 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
476
477 char * __ecereMethod___ecereNameSpace__ecere__sys__File_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Instance * this, char * tempString, void * fieldData, unsigned int * needClass)
478 {
479 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
480
481 if((struct __ecereNameSpace__ecere__com__Instance *)this)
482 {
483 __ecereNameSpace__ecere__sys__PrintSize(tempString, ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))(this)->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(this), 2);
484 return tempString;
485 }
486 return (((void *)0));
487 }
488
489 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Seek(struct __ecereNameSpace__ecere__com__Instance * this, int pos, int mode)
490 {
491 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
492 unsigned int fmode = 0;
493
494 switch(mode)
495 {
496 case 0:
497 fmode = 0;
498 break;
499 case 2:
500 fmode = 2;
501 break;
502 case 1:
503 fmode = 1;
504 break;
505 }
506 return fseek(__ecerePointer___ecereNameSpace__ecere__sys__File->input ? __ecerePointer___ecereNameSpace__ecere__sys__File->input : __ecerePointer___ecereNameSpace__ecere__sys__File->output, pos, fmode) != (-1);
507 }
508
509 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Tell(struct __ecereNameSpace__ecere__com__Instance * this)
510 {
511 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
512
513 return __ecerePointer___ecereNameSpace__ecere__sys__File->input ? ftell(__ecerePointer___ecereNameSpace__ecere__sys__File->input) : ftell(__ecerePointer___ecereNameSpace__ecere__sys__File->output);
514 }
515
516 int __ecereMethod___ecereNameSpace__ecere__sys__File_Read(struct __ecereNameSpace__ecere__com__Instance * this, void * buffer, unsigned int size, unsigned int count)
517 {
518 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
519
520 return __ecerePointer___ecereNameSpace__ecere__sys__File->input ? (int)fread(buffer, size, count, __ecerePointer___ecereNameSpace__ecere__sys__File->input) : 0;
521 }
522
523 int __ecereMethod___ecereNameSpace__ecere__sys__File_Write(struct __ecereNameSpace__ecere__com__Instance * this, void * buffer, unsigned int size, unsigned int count)
524 {
525 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
526
527 return __ecerePointer___ecereNameSpace__ecere__sys__File->output ? (int)fwrite(buffer, size, count, __ecerePointer___ecereNameSpace__ecere__sys__File->output) : 0;
528 }
529
530 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Getc(struct __ecereNameSpace__ecere__com__Instance * this, char * ch)
531 {
532 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
533 int ich = fgetc(__ecerePointer___ecereNameSpace__ecere__sys__File->input);
534
535 if(ich != (-1))
536 {
537 if(ch)
538 *ch = (char)ich;
539 return 0x1;
540 }
541 return 0x0;
542 }
543
544 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Putc(struct __ecereNameSpace__ecere__com__Instance * this, char ch)
545 {
546 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
547
548 return (fputc((int)ch, __ecerePointer___ecereNameSpace__ecere__sys__File->output) == (-1)) ? 0x0 : 0x1;
549 }
550
551 extern int fputs(char * , void *  stream);
552
553 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Puts(struct __ecereNameSpace__ecere__com__Instance * this, const char * string)
554 {
555 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
556 unsigned int result = 0x0;
557
558 if(__ecerePointer___ecereNameSpace__ecere__sys__File->output)
559 {
560 result = (fputs(string, __ecerePointer___ecereNameSpace__ecere__sys__File->output) == (-1)) ? 0x0 : 0x1;
561 }
562 return result;
563 }
564
565 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Eof(struct __ecereNameSpace__ecere__com__Instance * this)
566 {
567 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
568
569 return __ecerePointer___ecereNameSpace__ecere__sys__File->input ? (unsigned int)feof(__ecerePointer___ecereNameSpace__ecere__sys__File->input) : 0x1;
570 }
571
572 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Truncate(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int size)
573 {
574 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
575
576 fprintf((bsl_stderr()), "WARNING:  File::Truncate unimplemented in ecereBootstrap.\n");
577 return 0x0;
578 }
579
580 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetSize(struct __ecereNameSpace__ecere__com__Instance * this)
581 {
582 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
583
584 return FILE_GetSize(__ecerePointer___ecereNameSpace__ecere__sys__File->input);
585 }
586
587 void __ecereMethod___ecereNameSpace__ecere__sys__File_CloseInput(struct __ecereNameSpace__ecere__com__Instance * this)
588 {
589 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
590
591 if(__ecerePointer___ecereNameSpace__ecere__sys__File->input)
592 {
593 fclose(__ecerePointer___ecereNameSpace__ecere__sys__File->input);
594 if(__ecerePointer___ecereNameSpace__ecere__sys__File->output == __ecerePointer___ecereNameSpace__ecere__sys__File->input)
595 __ecerePointer___ecereNameSpace__ecere__sys__File->output = (((void *)0));
596 __ecerePointer___ecereNameSpace__ecere__sys__File->input = (((void *)0));
597 }
598 }
599
600 void __ecereMethod___ecereNameSpace__ecere__sys__File_CloseOutput(struct __ecereNameSpace__ecere__com__Instance * this)
601 {
602 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
603
604 if(__ecerePointer___ecereNameSpace__ecere__sys__File->output)
605 {
606 fclose(__ecerePointer___ecereNameSpace__ecere__sys__File->output);
607 if(__ecerePointer___ecereNameSpace__ecere__sys__File->input == __ecerePointer___ecereNameSpace__ecere__sys__File->output)
608 __ecerePointer___ecereNameSpace__ecere__sys__File->input = (((void *)0));
609 __ecerePointer___ecereNameSpace__ecere__sys__File->output = (((void *)0));
610 }
611 }
612
613 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Lock(struct __ecereNameSpace__ecere__com__Instance * this, int type, uint64 start, uint64 length, unsigned int wait)
614 {
615 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
616
617 return FILE_Lock(__ecerePointer___ecereNameSpace__ecere__sys__File->input, __ecerePointer___ecereNameSpace__ecere__sys__File->output, type, start, length, wait);
618 }
619
620 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Lock;
621
622 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Unlock(struct __ecereNameSpace__ecere__com__Instance * this, uint64 start, uint64 length, unsigned int wait)
623 {
624 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
625
626 return ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int type, uint64 start, uint64 length, unsigned int wait))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Lock])(this, 0, start, length, wait);
627 }
628
629 extern int vsprintf(char * , const char * , __builtin_va_list);
630
631 extern int strlen(const char * );
632
633 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
634
635 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, char * format, ...)
636 {
637 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
638 int result = 0;
639 char text[1025];
640 va_list args;
641
642 __builtin_va_start(args, format);
643 vsprintf(text, format, args);
644 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(this, text))
645 result = strlen(text);
646 __builtin_va_end(args);
647 return result;
648 }
649
650 extern int __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(char *  buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, __builtin_va_list args);
651
652 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
653
654 void __ecereMethod___ecereNameSpace__ecere__sys__File_PrintLn(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
655 {
656 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
657 va_list args;
658 char buffer[4096];
659
660 __builtin_va_start(args, object);
661 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
662 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(this, buffer);
663 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(this, '\n');
664 __builtin_va_end(args);
665 }
666
667 void __ecereMethod___ecereNameSpace__ecere__sys__File_Print(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
668 {
669 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
670 va_list args;
671 char buffer[4096];
672
673 __builtin_va_start(args, object);
674 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
675 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(this, buffer);
676 __builtin_va_end(args);
677 }
678
679 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_Flush(struct __ecereNameSpace__ecere__com__Instance * this)
680 {
681 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
682
683 fflush(__ecerePointer___ecereNameSpace__ecere__sys__File->output);
684 return 0x1;
685 }
686
687 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Getc;
688
689 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(struct __ecereNameSpace__ecere__com__Instance * this, char * s, int max)
690 {
691 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
692 int c = 0;
693 unsigned int result = 0x1;
694
695 s[c] = (char)0;
696 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(this))
697 {
698 result = 0x0;
699 }
700 else
701 {
702 while(c < max - 1)
703 {
704 char ch = (char)0;
705
706 if(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char *  ch))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Getc])(this, &ch))
707 {
708 result = 0x0;
709 break;
710 }
711 if(ch == '\n')
712 break;
713 if(ch != '\r')
714 s[c++] = ch;
715 }
716 }
717 s[c] = (char)0;
718 return result || c > 1;
719 }
720
721 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetString(struct __ecereNameSpace__ecere__com__Instance * this, char * string, int max)
722 {
723 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
724 int c;
725 char ch;
726 unsigned int quoted = 0x0;
727 unsigned int result = 0x1;
728
729 *string = (char)0;
730 while(0x1)
731 {
732 if(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char *  ch))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Getc])(this, &ch))
733 result = 0x0;
734 if((ch != '\n') && (ch != '\r') && (ch != ' ') && (ch != ',') && (ch != '\t'))
735 break;
736 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(this))
737 break;
738 }
739 if(result)
740 {
741 for(c = 0; c < max - 1; c++)
742 {
743 if(!quoted && ((ch == '\n') || (ch == '\r') || (ch == ' ') || (ch == ',') || (ch == '\t')))
744 {
745 result = 0x1;
746 break;
747 }
748 if(ch == '\"')
749 {
750 quoted ^= (unsigned int)1;
751 c--;
752 }
753 else
754 string[c] = ch;
755 if(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char *  ch))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Getc])(this, &ch))
756 {
757 c++;
758 result = 0x0;
759 break;
760 }
761 }
762 string[c] = (char)0;
763 }
764 return result;
765 }
766
767 extern int atoi(const char * );
768
769 int __ecereMethod___ecereNameSpace__ecere__sys__File_GetValue(struct __ecereNameSpace__ecere__com__Instance * this)
770 {
771 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
772 char string[32];
773
774 __ecereMethod___ecereNameSpace__ecere__sys__File_GetString(this, string, sizeof string);
775 return atoi(string);
776 }
777
778 extern unsigned long strtoul(const char *  nptr, char * *  endptr, int base);
779
780 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetHexValue(struct __ecereNameSpace__ecere__com__Instance * this)
781 {
782 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
783 char string[32];
784
785 __ecereMethod___ecereNameSpace__ecere__sys__File_GetString(this, string, sizeof string);
786 return strtoul(string, (((void *)0)), 16);
787 }
788
789 extern double __ecereNameSpace__ecere__sys__FloatFromString(char *  string);
790
791 float __ecereMethod___ecereNameSpace__ecere__sys__File_GetFloat(struct __ecereNameSpace__ecere__com__Instance * this)
792 {
793 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
794 char string[32];
795
796 __ecereMethod___ecereNameSpace__ecere__sys__File_GetString(this, string, sizeof string);
797 return (float)__ecereNameSpace__ecere__sys__FloatFromString(string);
798 }
799
800 double __ecereMethod___ecereNameSpace__ecere__sys__File_GetDouble(struct __ecereNameSpace__ecere__com__Instance * this)
801 {
802 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
803 char string[32];
804
805 __ecereMethod___ecereNameSpace__ecere__sys__File_GetString(this, string, sizeof string);
806 return __ecereNameSpace__ecere__sys__FloatFromString(string);
807 }
808
809 void *  __ecereProp___ecereNameSpace__ecere__sys__File_Get_input(struct __ecereNameSpace__ecere__com__Instance * this)
810 {
811 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
812
813 return __ecerePointer___ecereNameSpace__ecere__sys__File->input;
814 }
815
816 void __ecereProp___ecereNameSpace__ecere__sys__File_Set_input(struct __ecereNameSpace__ecere__com__Instance * this, void *  value)
817 {
818 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
819
820 __ecerePointer___ecereNameSpace__ecere__sys__File->input = value;
821 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__File_input), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__File_input);
822 }
823
824 void *  __ecereProp___ecereNameSpace__ecere__sys__File_Get_output(struct __ecereNameSpace__ecere__com__Instance * this)
825 {
826 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
827
828 return __ecerePointer___ecereNameSpace__ecere__sys__File->output;
829 }
830
831 void __ecereProp___ecereNameSpace__ecere__sys__File_Set_output(struct __ecereNameSpace__ecere__com__Instance * this, void *  value)
832 {
833 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
834
835 __ecerePointer___ecereNameSpace__ecere__sys__File->output = value;
836 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__File_output), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__File_output);
837 }
838
839 void __ecereProp___ecereNameSpace__ecere__sys__File_Set_buffered(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
840 {
841 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
842
843 FILE_set_buffered(__ecerePointer___ecereNameSpace__ecere__sys__File->input, __ecerePointer___ecereNameSpace__ecere__sys__File->output, value);
844 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__File_buffered), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__File_buffered);
845 }
846
847 unsigned int __ecereProp___ecereNameSpace__ecere__sys__File_Get_eof(struct __ecereNameSpace__ecere__com__Instance * this)
848 {
849 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
850
851 return ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(this);
852 }
853
854 int __ecereMethod___ecereNameSpace__ecere__sys__File_GetLineEx(struct __ecereNameSpace__ecere__com__Instance * this, char * s, int max, unsigned int * hasNewLineChar)
855 {
856 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
857 int c = 0;
858
859 s[c] = '\0';
860 if(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(this))
861 {
862 char ch = '\0';
863
864 while(c < max - 1)
865 {
866 if(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char *  ch))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Getc])(this, &ch))
867 break;
868 if(ch == '\n')
869 break;
870 if(ch != '\r')
871 s[c++] = ch;
872 }
873 if(hasNewLineChar)
874 *hasNewLineChar = (ch == '\n');
875 }
876 s[c] = '\0';
877 return c;
878 }
879
880 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
881
882 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_CopyTo(struct __ecereNameSpace__ecere__com__Instance * this, char * outputFileName)
883 {
884 struct __ecereNameSpace__ecere__sys__File * __ecerePointer___ecereNameSpace__ecere__sys__File = (struct __ecereNameSpace__ecere__sys__File *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__File->offset) : 0);
885 unsigned int result = 0x0;
886 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(outputFileName, 2);
887
888 if(f)
889 {
890 unsigned char buffer[65536];
891
892 result = 0x1;
893 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(this, 0, 0);
894 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(this))
895 {
896 unsigned int count = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(this, buffer, 1, sizeof buffer);
897
898 if(count && !((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(f, buffer, 1, count))
899 {
900 result = 0x0;
901 break;
902 }
903 }
904 }
905 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))this->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(this, 0, 0);
906 return result;
907 }
908
909 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__ConsoleFile;
910
911 unsigned int __ecereConstructor___ecereNameSpace__ecere__sys__ConsoleFile(struct __ecereNameSpace__ecere__com__Instance * this)
912 {
913 __ecereProp___ecereNameSpace__ecere__sys__File_Set_input(this, (bsl_stdin()));
914 __ecereProp___ecereNameSpace__ecere__sys__File_Set_output(this, (bsl_stdout()));
915 return 0x1;
916 }
917
918 void __ecereDestructor___ecereNameSpace__ecere__sys__ConsoleFile(struct __ecereNameSpace__ecere__com__Instance * this)
919 {
920 {
921 __ecereProp___ecereNameSpace__ecere__sys__File_Set_input(this, (((void *)0)));
922 __ecereProp___ecereNameSpace__ecere__sys__File_Set_output(this, (((void *)0)));
923 }
924 }
925
926 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileAttribs;
927
928 struct __ecereNameSpace__ecere__sys__FileStats
929 {
930 unsigned int attribs;
931 unsigned int size;
932 struct __ecereNameSpace__ecere__com__Instance * accessed;
933 struct __ecereNameSpace__ecere__com__Instance * modified;
934 struct __ecereNameSpace__ecere__com__Instance * created;
935 };
936
937 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__FileStats;
938
939 unsigned int __ecereNameSpace__ecere__sys__FileExists(char * fileName)
940 {
941 char archiveName[797], * archiveFile;
942
943 return FILE_FileExists(fileName);
944 }
945
946 extern unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from);
947
948 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char * fileName, int mode)
949 {
950 struct __ecereNameSpace__ecere__com__Instance * result = (((void *)0));
951
952 if(fileName)
953 {
954 char archiveName[797], * archiveFile;
955
956 if(strstr(fileName, "File://") == fileName)
957 {
958 result = (struct __ecereNameSpace__ecere__com__Instance *)strtoul(fileName + 7, (((void *)0)), 16);
959 if(result)
960 {
961 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)result)->_class && __ecereNameSpace__ecere__com__eClass_IsDerived(((struct __ecereNameSpace__ecere__com__Instance *)(char *)result)->_class, __ecereClass___ecereNameSpace__ecere__sys__File))
962 {
963 if(!((struct __ecereNameSpace__ecere__com__Instance *)(char *)result)->_refCount)
964 result->_refCount++;
965 result->_refCount++;
966 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))result->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(result, 0, 0);
967 }
968 else
969 result = (((void *)0));
970 }
971 }
972 else
973 {
974 struct __ecereNameSpace__ecere__com__Instance * file = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__File);
975
976 if(file)
977 {
978 FILE_FileOpen(fileName, mode, &((struct __ecereNameSpace__ecere__sys__File *)(((char *)file + __ecereClass___ecereNameSpace__ecere__sys__File->offset)))->input, &((struct __ecereNameSpace__ecere__sys__File *)(((char *)file + __ecereClass___ecereNameSpace__ecere__sys__File->offset)))->output);
979 if(!__ecereProp___ecereNameSpace__ecere__sys__File_Get_input(file) && !__ecereProp___ecereNameSpace__ecere__sys__File_Get_output(file))
980 ;
981 else
982 {
983 __ecereNameSpace__ecere__sys__openCount++;
984 result = file;
985 }
986 if(!result)
987 {
988 (__ecereNameSpace__ecere__com__eInstance_DecRef(file), file = 0);
989 }
990 }
991 }
992 }
993 return result;
994 }
995
996 void __ecereNameSpace__ecere__sys__FileFixCase(char * file)
997 {
998 FILE_FileFixCase(file);
999 }
1000
1001 unsigned int __ecereNameSpace__ecere__sys__FileGetSize(char * fileName, unsigned int * size)
1002 {
1003 unsigned int result = 0x0;
1004
1005 if(size)
1006 {
1007 *size = 0;
1008 if(fileName)
1009 {
1010 result = FILE_FileGetSize(fileName, size);
1011 }
1012 }
1013 return result;
1014 }
1015
1016 unsigned int __ecereNameSpace__ecere__sys__FileGetStats(char * fileName, struct __ecereNameSpace__ecere__sys__FileStats * stats)
1017 {
1018 unsigned int result = 0x0;
1019
1020 if(stats && fileName)
1021 {
1022 return FILE_FileGetStats(fileName, stats);
1023 }
1024 return result;
1025 }
1026
1027 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__CreateTemporaryFile(char * tempFileName, char * template)
1028 {
1029 }
1030
1031 void __ecereNameSpace__ecere__sys__CreateTemporaryDir(char * tempFileName, char * template)
1032 {
1033 }
1034
1035 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_Open;
1036
1037 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_Exists;
1038
1039 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_GetSize;
1040
1041 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_Stats;
1042
1043 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_FixCase;
1044
1045 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_Find;
1046
1047 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_FindNext;
1048
1049 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_CloseDir;
1050
1051 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_OpenArchive;
1052
1053 int __ecereVMethodID___ecereNameSpace__ecere__sys__FileSystem_QuerySize;
1054
1055 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Tell;
1056
1057 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Truncate;
1058
1059 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseInput;
1060
1061 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseOutput;
1062
1063 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Unlock;
1064
1065 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
1066
1067 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1068
1069 struct __ecereNameSpace__ecere__com__NameSpace
1070 {
1071 char *  name;
1072 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
1073 struct __ecereNameSpace__ecere__com__NameSpace *  left;
1074 struct __ecereNameSpace__ecere__com__NameSpace *  right;
1075 int depth;
1076 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
1077 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1078 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1079 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1080 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1081 };
1082
1083 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1084
1085 struct __ecereNameSpace__ecere__com__Module
1086 {
1087 struct __ecereNameSpace__ecere__com__Instance * application;
1088 struct __ecereNameSpace__ecere__sys__OldList classes;
1089 struct __ecereNameSpace__ecere__sys__OldList defines;
1090 struct __ecereNameSpace__ecere__sys__OldList functions;
1091 struct __ecereNameSpace__ecere__sys__OldList modules;
1092 struct __ecereNameSpace__ecere__com__Instance * prev;
1093 struct __ecereNameSpace__ecere__com__Instance * next;
1094 char *  name;
1095 void *  library;
1096 void *  Unload;
1097 int importType;
1098 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1099 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1100 };
1101
1102 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1103
1104 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
1105
1106 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
1107
1108 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char *  string, int value);
1109
1110 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  dataType, void *  setStmt, void *  getStmt, int declMode);
1111
1112 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
1113
1114 struct __ecereNameSpace__ecere__com__BitMember;
1115
1116 extern struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, int bitSize, int bitPos, int declMode);
1117
1118 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
1119
1120 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1121
1122 struct __ecereNameSpace__ecere__com__GlobalFunction;
1123
1124 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
1125
1126 void __ecereRegisterModule_File(struct __ecereNameSpace__ecere__com__Instance * module)
1127 {
1128 struct __ecereNameSpace__ecere__com__Class * class;
1129
1130 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::sys::FileSize", "uint", 0, 0, 0, 0, module, 1, 1);
1131 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1132 __ecereClass___ecereNameSpace__ecere__sys__FileSize = class;
1133 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnCompare, 1);
1134 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnGetString, 1);
1135 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__sys__FileSize_OnGetDataFromString, 1);
1136 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::FileSystem", 0, 0, 0, 0, 0, module, 2, 1);
1137 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1138 __ecereClass___ecereNameSpace__ecere__sys__FileSystem = class;
1139 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Open", "ecere::sys::File ::Open(char * archive, char * name, ecere::sys::FileOpenMode mode)", 0, 2);
1140 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Exists", "ecere::sys::FileAttribs ::Exists(char * archive, char * fileName)", 0, 2);
1141 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetSize", "bool ::GetSize(char * archive, char * fileName, ecere::sys::FileSize * size)", 0, 2);
1142 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Stats", "bool ::Stats(char * archive, char * fileName, ecere::sys::FileStats stats)", 0, 2);
1143 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixCase", "void ::FixCase(char * archive, char * fileName)", 0, 2);
1144 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Find", "bool ::Find(FileDesc file, char * archive, char * name)", 0, 2);
1145 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindNext", "bool ::FindNext(FileDesc file)", 0, 2);
1146 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CloseDir", "void ::CloseDir(FileDesc file)", 0, 2);
1147 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "OpenArchive", "Archive ::OpenArchive(char * fileName, ArchiveOpenFlags create)", 0, 2);
1148 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "QuerySize", "bool ::QuerySize(char * fileName, ecere::sys::FileSize * size)", 0, 2);
1149 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::FileOpenMode", 0, 0, 0, 0, 0, module, 1, 1);
1150 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1151 __ecereClass___ecereNameSpace__ecere__sys__FileOpenMode = class;
1152 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "read", 1);
1153 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "write", 2);
1154 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "append", 3);
1155 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "readWrite", 4);
1156 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "writeRead", 5);
1157 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "appendRead", 6);
1158 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::FileSeekMode", 0, 0, 0, 0, 0, module, 1, 1);
1159 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1160 __ecereClass___ecereNameSpace__ecere__sys__FileSeekMode = class;
1161 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "start", 0);
1162 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "current", 1);
1163 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "end", 2);
1164 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::FileLock", 0, 0, 0, 0, 0, module, 1, 1);
1165 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1166 __ecereClass___ecereNameSpace__ecere__sys__FileLock = class;
1167 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unlocked", 0);
1168 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "shared", 1);
1169 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "exclusive", 2);
1170 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::File", "ecere::com::IOChannel", sizeof(struct __ecereNameSpace__ecere__sys__File), 0, 0, __ecereDestructor___ecereNameSpace__ecere__sys__File, module, 1, 1);
1171 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1172 __ecereClass___ecereNameSpace__ecere__sys__File = class;
1173 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__sys__File_OnGetString, 1);
1174 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__sys__File_OnGetDataFromString, 1);
1175 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "WriteData", 0, __ecereMethod___ecereNameSpace__ecere__sys__File_WriteData, 1);
1176 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "ReadData", 0, __ecereMethod___ecereNameSpace__ecere__sys__File_ReadData, 1);
1177 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Seek", "bool Seek(int pos, ecere::sys::FileSeekMode mode)", __ecereMethod___ecereNameSpace__ecere__sys__File_Seek, 1);
1178 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Tell", "unsigned int Tell(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_Tell, 1);
1179 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Read", "int Read(void * buffer, unsigned int size, unsigned int count)", __ecereMethod___ecereNameSpace__ecere__sys__File_Read, 1);
1180 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Write", "int Write(void * buffer, unsigned int size, unsigned int count)", __ecereMethod___ecereNameSpace__ecere__sys__File_Write, 1);
1181 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Getc", "bool Getc(char * ch)", __ecereMethod___ecereNameSpace__ecere__sys__File_Getc, 1);
1182 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Putc", "bool Putc(char ch)", __ecereMethod___ecereNameSpace__ecere__sys__File_Putc, 1);
1183 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Puts", "bool Puts(const char * string)", __ecereMethod___ecereNameSpace__ecere__sys__File_Puts, 1);
1184 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Eof", "bool Eof(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_Eof, 1);
1185 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Truncate", "bool Truncate(ecere::sys::FileSize size)", __ecereMethod___ecereNameSpace__ecere__sys__File_Truncate, 1);
1186 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "GetSize", "unsigned int GetSize(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetSize, 1);
1187 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CloseInput", "void CloseInput(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_CloseInput, 1);
1188 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CloseOutput", "void CloseOutput(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_CloseOutput, 1);
1189 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Lock", "bool Lock(ecere::sys::FileLock type, uint64 start, uint64 length, bool wait)", __ecereMethod___ecereNameSpace__ecere__sys__File_Lock, 1);
1190 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Unlock", "bool Unlock(uint64 start, uint64 length, bool wait)", __ecereMethod___ecereNameSpace__ecere__sys__File_Unlock, 1);
1191 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "CopyTo", "bool CopyTo(char * outputFileName)", __ecereMethod___ecereNameSpace__ecere__sys__File_CopyTo, 1);
1192 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Flush", "bool Flush(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_Flush, 1);
1193 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetDouble", "double GetDouble(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetDouble, 1);
1194 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFloat", "float GetFloat(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetFloat, 1);
1195 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetHexValue", "unsigned int GetHexValue(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetHexValue, 1);
1196 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLine", "bool GetLine(char * s, int max)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine, 1);
1197 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLineEx", "int GetLineEx(char * s, int max, bool * hasNewLineChar)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetLineEx, 1);
1198 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetString", "bool GetString(char * string, int max)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetString, 1);
1199 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetValue", "int GetValue(void)", __ecereMethod___ecereNameSpace__ecere__sys__File_GetValue, 1);
1200 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Print", "void Print(typed_object object, ...)", __ecereMethod___ecereNameSpace__ecere__sys__File_Print, 1);
1201 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "PrintLn", "void PrintLn(typed_object object, ...)", __ecereMethod___ecereNameSpace__ecere__sys__File_PrintLn, 1);
1202 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Printf", "int Printf(char * format, ...)", __ecereMethod___ecereNameSpace__ecere__sys__File_Printf, 1);
1203 __ecerePropM___ecereNameSpace__ecere__sys__File_input = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "input", "void *", __ecereProp___ecereNameSpace__ecere__sys__File_Set_input, __ecereProp___ecereNameSpace__ecere__sys__File_Get_input, 1);
1204 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1205 __ecereProp___ecereNameSpace__ecere__sys__File_input = __ecerePropM___ecereNameSpace__ecere__sys__File_input, __ecerePropM___ecereNameSpace__ecere__sys__File_input = (void *)0;
1206 __ecerePropM___ecereNameSpace__ecere__sys__File_output = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "output", "void *", __ecereProp___ecereNameSpace__ecere__sys__File_Set_output, __ecereProp___ecereNameSpace__ecere__sys__File_Get_output, 1);
1207 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1208 __ecereProp___ecereNameSpace__ecere__sys__File_output = __ecerePropM___ecereNameSpace__ecere__sys__File_output, __ecerePropM___ecereNameSpace__ecere__sys__File_output = (void *)0;
1209 __ecerePropM___ecereNameSpace__ecere__sys__File_buffered = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "buffered", "bool", __ecereProp___ecereNameSpace__ecere__sys__File_Set_buffered, 0, 1);
1210 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1211 __ecereProp___ecereNameSpace__ecere__sys__File_buffered = __ecerePropM___ecereNameSpace__ecere__sys__File_buffered, __ecerePropM___ecereNameSpace__ecere__sys__File_buffered = (void *)0;
1212 __ecerePropM___ecereNameSpace__ecere__sys__File_eof = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "eof", "bool", 0, __ecereProp___ecereNameSpace__ecere__sys__File_Get_eof, 1);
1213 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
1214 __ecereProp___ecereNameSpace__ecere__sys__File_eof = __ecerePropM___ecereNameSpace__ecere__sys__File_eof, __ecerePropM___ecereNameSpace__ecere__sys__File_eof = (void *)0;
1215 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::ConsoleFile", "ecere::sys::File", 0, 0, __ecereConstructor___ecereNameSpace__ecere__sys__ConsoleFile, __ecereDestructor___ecereNameSpace__ecere__sys__ConsoleFile, module, 1, 1);
1216 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1217 __ecereClass___ecereNameSpace__ecere__sys__ConsoleFile = class;
1218 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(2, "ecere::sys::FileAttribs", "bool", 0, 0, 0, 0, module, 1, 1);
1219 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1220 __ecereClass___ecereNameSpace__ecere__sys__FileAttribs = class;
1221 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isFile", "bool", 1, 0, 1);
1222 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isArchive", "bool", 1, 1, 1);
1223 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isHidden", "bool", 1, 2, 1);
1224 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isReadOnly", "bool", 1, 3, 1);
1225 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isSystem", "bool", 1, 4, 1);
1226 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isTemporary", "bool", 1, 5, 1);
1227 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isDirectory", "bool", 1, 6, 1);
1228 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isDrive", "bool", 1, 7, 1);
1229 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isCDROM", "bool", 1, 8, 1);
1230 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isRemote", "bool", 1, 9, 1);
1231 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isRemovable", "bool", 1, 10, 1);
1232 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isServer", "bool", 1, 11, 1);
1233 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "isShare", "bool", 1, 12, 1);
1234 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::FileStats", 0, sizeof(struct __ecereNameSpace__ecere__sys__FileStats), 0, 0, 0, module, 1, 1);
1235 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
1236 __ecereClass___ecereNameSpace__ecere__sys__FileStats = class;
1237 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "attribs", "ecere::sys::FileAttribs", 4, 4, 1);
1238 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "ecere::sys::FileSize", 4, 4, 1);
1239 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "accessed", "SecSince1970", 4, 4, 1);
1240 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "SecSince1970", 4, 4, 1);
1241 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "created", "SecSince1970", 4, 4, 1);
1242 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileExists", "ecere::sys::FileAttribs ecere::sys::FileExists(char * fileName)", __ecereNameSpace__ecere__sys__FileExists, module, 1);
1243 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileOpen", "ecere::sys::File ecere::sys::FileOpen(char * fileName, ecere::sys::FileOpenMode mode)", __ecereNameSpace__ecere__sys__FileOpen, module, 1);
1244 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileFixCase", "void ecere::sys::FileFixCase(char * file)", __ecereNameSpace__ecere__sys__FileFixCase, module, 1);
1245 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileGetSize", "bool ecere::sys::FileGetSize(char * fileName, ecere::sys::FileSize * size)", __ecereNameSpace__ecere__sys__FileGetSize, module, 1);
1246 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileGetStats", "bool ecere::sys::FileGetStats(char * fileName, ecere::sys::FileStats stats)", __ecereNameSpace__ecere__sys__FileGetStats, module, 1);
1247 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::CreateTemporaryFile", "ecere::sys::File ecere::sys::CreateTemporaryFile(char * tempFileName, char * template)", __ecereNameSpace__ecere__sys__CreateTemporaryFile, module, 1);
1248 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::CreateTemporaryDir", "void ecere::sys::CreateTemporaryDir(char * tempFileName, char * template)", __ecereNameSpace__ecere__sys__CreateTemporaryDir, module, 1);
1249 }
1250
1251 void __ecereUnregisterModule_File(struct __ecereNameSpace__ecere__com__Instance * module)
1252 {
1253
1254 __ecerePropM___ecereNameSpace__ecere__sys__File_input = (void *)0;
1255 __ecerePropM___ecereNameSpace__ecere__sys__File_output = (void *)0;
1256 __ecerePropM___ecereNameSpace__ecere__sys__File_buffered = (void *)0;
1257 __ecerePropM___ecereNameSpace__ecere__sys__File_eof = (void *)0;
1258 }
1259