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