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