1set prototyped 2ref -D_def_map_ast=1 3iff SFSTDIO 4cat{ 5 #define __FILE_typedef 1 6 #define _FILE_DEFINED 1 7 #define _FILE_defined 1 8 #define _FILEDEFED 1 9 10 #ifndef __FILE_TAG 11 #define __FILE_TAG _sfio_s 12 #endif 13 14 #undef FILE 15 #undef _FILE 16 #undef fpos_t 17 #undef fpos64_t 18 19 typedef struct _sfio_s _sfio_FILE; 20 21 #define FILE _sfio_FILE 22 #define _FILE FILE 23 24 #if !defined(__FILE) && !__CYGWIN__ 25 #undef __FILE 26 #define __FILE FILE 27 #endif 28 29 #if defined(_AST_H) || defined(_SFIO_H) 30 31 #define BUFSIZ SF_BUFSIZE 32 33 #else 34 35 #ifndef BUFSIZ 36 #define BUFSIZ 8192 37 #endif 38 39 #ifndef EOF 40 #define EOF (-1) 41 #endif 42 43 #ifndef NULL 44 #define NULL 0 45 #endif 46 47 #ifndef SEEK_SET 48 #define SEEK_SET 0 49 #define SEEK_CUR 1 50 #define SEEK_END 2 51 #endif 52 53 #include <ast_std.h> 54 55 #include <sfio_s.h> 56 57 #if __cplusplus 58 #define _sf_(f) (f) 59 #else 60 #define _sf_(f) ((struct _sfio_s*)(f)) 61 #endif 62 63 #define _SF_EOF 0000200 64 #define _SF_ERROR 0000400 65 66 #endif 67 68 #ifdef _NO_LARGEFILE64_SOURCE 69 #undef _LARGEFILE64_SOURCE 70 #endif 71 72 #ifdef _LARGEFILE64_SOURCE 73 #undef off_t 74 #endif 75 76 #define fpos_t _ast_fpos_t 77 #if _typ_int64_t 78 #define fpos64_t _ast_fpos_t 79 #endif 80 81 typedef struct _ast_fpos_s 82 { 83 intmax_t _sf_offset; 84 unsigned char _sf_state[64 - sizeof(intmax_t)]; 85 } _ast_fpos_t; 86 87 #define _base _data 88 #define _ptr _next 89 #define _IOFBF 0 90 #define _IONBF 1 91 #define _IOLBF 2 92 93 #if defined(__cplusplus) && defined(__THROW) && !defined(_UWIN) 94 95 #undef FILE 96 #define FILE FILE 97 typedef struct _sfio_s FILE; 98 99 #undef strerror 100 extern char* strerror(int) __THROW; 101 102 extern int _doprnt(const char*, va_list, FILE*); 103 extern int _doscan(FILE*, const char*, va_list); 104 extern int asprintf(char**, const char*, ...); 105 extern int clearerr(FILE*); 106 extern int fclose(FILE*); 107 extern FILE* fdopen(int, const char*); 108 extern int feof(FILE*); 109 extern int ferror(FILE*); 110 extern int fflush(FILE*); 111 extern int fgetc(FILE*); 112 extern int fgetpos(FILE*, fpos_t*); 113 extern char* fgets(char*, int, FILE*); 114 extern int fileno(FILE*); 115 extern FILE* fopen(const char*, const char*); 116 extern int fprintf(FILE*, const char*, ...); 117 extern int fpurge(FILE*); 118 extern int fputc(int, FILE*); 119 extern int fputs(const char*, FILE*); 120 extern size_t fread(void*, size_t, size_t, FILE*); 121 extern FILE* freopen(const char*, const char*, FILE*); 122 extern int fscanf(FILE*, const char*, ...); 123 extern int fseek(FILE*, long, int); 124 extern int fseeko(FILE*, off_t, int); 125 extern int fsetpos(FILE*, const fpos_t*); 126 extern long ftell(FILE*); 127 extern off_t ftello(FILE*); 128 extern size_t fwrite(const void*, size_t, size_t, FILE*); 129 extern int getc(FILE*); 130 extern int getchar(void); 131 extern char* gets(char*); 132 extern int getw(FILE*); 133 extern int pclose(FILE*); 134 extern FILE* popen(const char*, const char*); 135 extern int printf(const char*, ...); 136 extern int putc(int, FILE*); 137 extern int putchar(int); 138 extern int puts(const char*); 139 extern int putw(int, FILE*); 140 extern void rewind(FILE*); 141 extern int scanf(const char*, ...); 142 extern void setbuf(FILE*, char*); 143 extern int setbuffer(FILE*, char*, int); 144 extern int setlinebuf(FILE*); 145 extern int setvbuf(FILE*, char*, int, size_t); 146 extern int snprintf(char*, int, const char*, ...); 147 extern int sprintf(char*, const char*, ...); 148 extern int sscanf(const char*, const char*, ...); 149 extern FILE* tmpfile(void); 150 extern int ungetc(int, FILE*); 151 extern int vasprintf(char**, const char*, va_list); 152 extern int vfprintf(FILE*, const char*, va_list); 153 extern int vfscanf(FILE*, const char*, va_list); 154 extern int vprintf(const char*, va_list); 155 extern int vscanf(const char*, va_list); 156 extern int vsnprintf(char*, int, const char*, va_list); 157 extern int vsprintf(char*, const char*, va_list); 158 extern int vsscanf(const char*, const char*, va_list); 159 160 #if _typ_int64_t 161 162 extern int fgetpos64(FILE*, fpos64_t*); 163 extern int fsetpos64(FILE*, const fpos64_t*); 164 extern int fseek64(FILE*, int64_t, int); 165 extern int fseeko64(FILE*, int64_t, int); 166 extern int64_t ftell64(FILE*); 167 extern int64_t ftello64(FILE*); 168 169 #endif 170 171 extern void clearerr_unlocked(FILE*); 172 extern int feof_unlocked(FILE*); 173 extern int ferror_unlocked(FILE*); 174 extern int fflush_unlocked(FILE*); 175 extern int fgetc_unlocked(FILE*); 176 extern char* fgets_unlocked(char*, int, FILE*); 177 extern int fileno_unlocked(FILE*); 178 extern int fputc_unlocked(int, FILE*); 179 extern int fputs_unlocked(char*, FILE*); 180 extern size_t fread_unlocked(void*, size_t, size_t, FILE*); 181 extern size_t fwrite_unlocked(void*, size_t, size_t, FILE*); 182 extern int getc_unlocked(FILE*); 183 extern int getchar_unlocked(void); 184 extern int putc_unlocked(int, FILE*); 185 extern int putchar_unlocked(int); 186 187 extern void flockfile(FILE*); 188 extern int ftrylockfile(FILE*); 189 extern void funlockfile(FILE*); 190 191 #ifdef _USE_GNU 192 193 extern int fcloseall(void); 194 extern FILE* fmemopen(void*, size_t, const char*); 195 extern ssize_t __getdelim(char**, size_t*, int, FILE*); 196 extern ssize_t getdelim(char**, size_t*, int, FILE*); 197 extern ssize_t getline(char**, size_t*, FILE*); 198 199 #endif 200 201 #endif 202}end 203output{ 204 #include <stdio.h> 205 #ifndef FILENAME_MAX 206 #ifndef NAME_MAX 207 #ifndef _POSIX_NAME_MAX 208 #define _POSIX_NAME_MAX 14 209 #endif 210 #define NAME_MAX _POSIX_NAME_MAX 211 #endif 212 #define FILENAME_MAX NAME_MAX 213 #endif 214 #ifndef FOPEN_MAX 215 #ifdef STREAM_MAX 216 #define FOPEN_MAX STREAM_MAX 217 #else 218 #ifndef OPEN_MAX 219 #ifndef _POSIX_OPEN_MAX 220 #define _POSIX_OPEN_MAX 20 221 #endif 222 #define OPEN_MAX _POSIX_OPEN_MAX 223 #endif 224 #define FOPEN_MAX OPEN_MAX 225 #endif 226 #endif 227 #ifndef TMP_MAX 228 #define TMP_MAX 33520641 229 #endif 230 int 231 main() 232 { 233 printf("#ifndef FILENAME_MAX\n"); 234 printf("#define FILENAME_MAX %d\n", FILENAME_MAX); 235 printf("#endif\n"); 236 printf("#ifndef FOPEN_MAX\n"); 237 printf("#define FOPEN_MAX %d\n", FOPEN_MAX); 238 printf("#endif\n"); 239 printf("#ifndef TMP_MAX\n"); 240 printf("#define TMP_MAX %d\n", TMP_MAX); 241 printf("#endif\n"); 242 #if !_UWIN 243 printf("\n"); 244 printf("#define _doprnt _ast_doprnt\n"); 245 printf("#define _doscan _ast_doscan\n"); 246 printf("#define asprintf _ast_asprintf\n"); 247 printf("#define clearerr _ast_clearerr\n"); 248 printf("#define fclose _ast_fclose\n"); 249 printf("#define fdopen _ast_fdopen\n"); 250 printf("#define fflush _ast_fflush\n"); 251 printf("#define fgetc _ast_fgetc\n"); 252 printf("#define fgetpos _ast_fgetpos\n"); 253 printf("#define fgetpos64 _ast_fgetpos64\n"); 254 printf("#define fgets _ast_fgets\n"); 255 printf("#define fopen _ast_fopen\n"); 256 printf("#define fprintf _ast_fprintf\n"); 257 printf("#define fpurge _ast_fpurge\n"); 258 printf("#define fputs _ast_fputs\n"); 259 printf("#define fread _ast_fread\n"); 260 printf("#define freopen _ast_freopen\n"); 261 printf("#define fscanf _ast_fscanf\n"); 262 printf("#define fseek _ast_fseek\n"); 263 printf("#define fseek64 _ast_fseek64\n"); 264 printf("#define fseeko _ast_fseeko\n"); 265 printf("#define fseeko64 _ast_fseeko64\n"); 266 printf("#define fsetpos _ast_fsetpos\n"); 267 printf("#define fsetpos64 _ast_fsetpos64\n"); 268 printf("#define ftell _ast_ftell\n"); 269 printf("#define ftell64 _ast_ftell64\n"); 270 printf("#define ftello _ast_ftello\n"); 271 printf("#define ftello64 _ast_ftello64\n"); 272 printf("#define fwrite _ast_fwrite\n"); 273 printf("#define gets _ast_gets\n"); 274 printf("#define getw _ast_getw\n"); 275 printf("#define pclose _ast_pclose\n"); 276 printf("#define popen _ast_popen\n"); 277 printf("#define printf _ast_printf\n"); 278 printf("#define puts _ast_puts\n"); 279 printf("#define putw _ast_putw\n"); 280 printf("#define rewind _ast_rewind\n"); 281 printf("#define scanf _ast_scanf\n"); 282 printf("#define setbuf _ast_setbuf\n"); 283 printf("#undef setbuffer\n"); 284 printf("#define setbuffer _ast_setbuffer\n"); 285 printf("#define setlinebuf _ast_setlinebuf\n"); 286 printf("#define setvbuf _ast_setvbuf\n"); 287 printf("#define snprintf _ast_snprintf\n"); 288 printf("#define sprintf _ast_sprintf\n"); 289 printf("#define sscanf _ast_sscanf\n"); 290 printf("#define tmpfile _ast_tmpfile\n"); 291 printf("#define ungetc _ast_ungetc\n"); 292 printf("#define vasprintf _ast_vasprintf\n"); 293 printf("#define vfprintf _ast_vfprintf\n"); 294 printf("#define vfscanf _ast_vfscanf\n"); 295 printf("#define vprintf _ast_vprintf\n"); 296 printf("#define vscanf _ast_vscanf\n"); 297 printf("#define vsnprintf _ast_vsnprintf\n"); 298 printf("#define vsprintf _ast_vsprintf\n"); 299 printf("#define vsscanf _ast_vsscanf\n"); 300 301 printf("#define fcloseall _ast_fcloseall\n"); 302 printf("#define _filbuf _ast__filbuf\n"); 303 printf("#define fmemopen _ast_fmemopen\n"); 304 printf("#define __getdelim _ast___getdelim\n"); 305 printf("#define getdelim _ast_getdelim\n"); 306 printf("#define getline _ast_getline\n"); 307 308 printf("#define clearerr_unlocked _ast_clearerr_unlocked\n"); 309 printf("#define feof_unlocked _ast_feof_unlocked\n"); 310 printf("#define ferror_unlocked _ast_ferror_unlocked\n"); 311 printf("#define fflush_unlocked _ast_fflush_unlocked\n"); 312 printf("#define fgetc_unlocked _ast_fgetc_unlocked\n"); 313 printf("#define fgets_unlocked _ast_fgets_unlocked\n"); 314 printf("#define fileno_unlocked _ast_fileno_unlocked\n"); 315 printf("#define fputc_unlocked _ast_fputc_unlocked\n"); 316 printf("#define fputs_unlocked _ast_fputs_unlocked\n"); 317 printf("#define fread_unlocked _ast_fread_unlocked\n"); 318 printf("#define fwrite_unlocked _ast_fwrite_unlocked\n"); 319 printf("#define getc_unlocked _ast_getc_unlocked\n"); 320 printf("#define getchar_unlocked _ast_getchar_unlocked\n"); 321 printf("#define putc_unlocked _ast_putc_unlocked\n"); 322 printf("#define putchar_unlocked _ast_putchar_unlocked\n"); 323 324 printf("#define flockfile _ast_flockfile\n"); 325 printf("#define ftrylockfile _ast_ftrylockfile\n"); 326 printf("#define funlockfile _ast_funlockfile\n"); 327 328 printf("\n"); 329 #endif 330 return 0; 331 } 332}end 333macro{ 334 <<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">> 335 <<"__STDPP__directive pragma pp:initial">> 336 <<"#endif">> 337 <<"#ifndef P_tmpdir">> 338 #ifndef P_tmpdir 339 #define P_tmpdir "/usr/tmp/" 340 #endif 341 <<"#define P_tmpdir">> P_tmpdir <<"/*NOCATLITERAL*/">> 342 <<"#endif">> 343 <<"#ifndef L_ctermid">> 344 #ifndef L_ctermid 345 #define L_ctermid 9 346 #endif 347 <<"#define L_ctermid">> L_ctermid 348 <<"#endif">> 349 <<"#ifndef L_tmpnam">> 350 #ifndef L_tmpnam 351 #define L_tmpnam (sizeof(P_tmpdir)+15) 352 #endif 353 <<"#define L_tmpnam">> L_tmpnam 354 <<"#endif">> 355 <<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">> 356 <<"__STDPP__directive pragma pp:noinitial">> 357 <<"#endif">> 358}end 359cat{ 360 #if defined(__cplusplus) && defined(__THROW) 361 extern char* ctermid(char*) __THROW; 362 #else 363 extern char* ctermid(char*); 364 #endif 365 extern char* tmpnam(char*); 366 extern char* tempnam(const char*, const char*); 367 extern void perror(const char*); 368 #ifndef _AST_STD_H 369 #ifndef remove 370 extern int remove(const char*); 371 #endif 372 #ifndef rename 373 extern int rename(const char*, const char*); 374 #endif 375 #endif 376 377 #undef extern 378 379 #if _BLD_ast && defined(__EXPORT__) 380 #define extern __EXPORT__ 381 #endif 382 383 extern int _doprnt(const char*, va_list, FILE*); 384 extern int _doscan(FILE*, const char*, va_list); 385 extern int asprintf(char**, const char*, ...); 386 extern int clearerr(FILE*); 387 extern int fclose(FILE*); 388 extern FILE* fdopen(int, const char*); 389 extern int feof(FILE*); 390 extern int ferror(FILE*); 391 extern int fflush(FILE*); 392 extern int fgetc(FILE*); 393 extern int fgetpos(FILE*, fpos_t*); 394 extern char* fgets(char*, int, FILE*); 395 extern int fileno(FILE*); 396 extern FILE* fopen(const char*, const char*); 397 extern int fprintf(FILE*, const char*, ...); 398 extern int fpurge(FILE*); 399 extern int fputc(int, FILE*); 400 extern int fputs(const char*, FILE*); 401 extern size_t fread(void*, size_t, size_t, FILE*); 402 extern FILE* freopen(const char*, const char*, FILE*); 403 extern int fscanf(FILE*, const char*, ...); 404 extern int fseek(FILE*, long, int); 405 extern int fseeko(FILE*, off_t, int); 406 extern int fsetpos(FILE*, const fpos_t*); 407 extern long ftell(FILE*); 408 extern off_t ftello(FILE*); 409 extern size_t fwrite(const void*, size_t, size_t, FILE*); 410 extern int getc(FILE*); 411 extern int getchar(void); 412 extern char* gets(char*); 413 extern int getw(FILE*); 414 extern int pclose(FILE*); 415 extern FILE* popen(const char*, const char*); 416 extern int printf(const char*, ...); 417 extern int putc(int, FILE*); 418 extern int putchar(int); 419 extern int puts(const char*); 420 extern int putw(int, FILE*); 421 extern void rewind(FILE*); 422 extern int scanf(const char*, ...); 423 extern void setbuf(FILE*, char*); 424 extern int setbuffer(FILE*, char*, int); 425 extern int setlinebuf(FILE*); 426 extern int setvbuf(FILE*, char*, int, size_t); 427 extern int snprintf(char*, int, const char*, ...); 428 extern int sprintf(char*, const char*, ...); 429 extern int sscanf(const char*, const char*, ...); 430 extern FILE* tmpfile(void); 431 extern int ungetc(int, FILE*); 432 extern int vasprintf(char**, const char*, va_list); 433 extern int vfprintf(FILE*, const char*, va_list); 434 extern int vfscanf(FILE*, const char*, va_list); 435 extern int vprintf(const char*, va_list); 436 extern int vscanf(const char*, va_list); 437 extern int vsnprintf(char*, int, const char*, va_list); 438 extern int vsprintf(char*, const char*, va_list); 439 extern int vsscanf(const char*, const char*, va_list); 440 441 #if _typ_int64_t 442 443 extern int fgetpos64(FILE*, fpos64_t*); 444 extern int fsetpos64(FILE*, const fpos64_t*); 445 extern int fseek64(FILE*, int64_t, int); 446 extern int fseeko64(FILE*, int64_t, int); 447 extern int64_t ftell64(FILE*); 448 extern int64_t ftello64(FILE*); 449 450 #ifdef _LARGEFILE64_SOURCE 451 452 #undef fpos_t 453 #undef off_t 454 #undef fgetpos 455 #undef fsetpos 456 #undef fseek 457 #undef fseeko 458 #undef ftell 459 #undef ftello 460 461 #define fpos_t fpos64_t 462 #if _typ_off64_t 463 #define off_t off64_t 464 #else 465 #define off_t int64_t 466 #endif 467 468 #define fgetpos fgetpos64 469 #define fsetpos fsetpos64 470 #define fseek fseek64 471 #define fseeko fseeko64 472 #define ftell ftell64 473 #define ftello ftello64 474 475 #endif 476 477 #endif 478 479 extern void clearerr_unlocked(FILE*); 480 extern int feof_unlocked(FILE*); 481 extern int ferror_unlocked(FILE*); 482 extern int fflush_unlocked(FILE*); 483 extern int fgetc_unlocked(FILE*); 484 extern char* fgets_unlocked(char*, int, FILE*); 485 extern int fileno_unlocked(FILE*); 486 extern int fputc_unlocked(int, FILE*); 487 extern int fputs_unlocked(char*, FILE*); 488 extern size_t fread_unlocked(void*, size_t, size_t, FILE*); 489 extern size_t fwrite_unlocked(void*, size_t, size_t, FILE*); 490 extern int getc_unlocked(FILE*); 491 extern int getchar_unlocked(void); 492 extern int putc_unlocked(int, FILE*); 493 extern int putchar_unlocked(int); 494 495 #ifdef _USE_GNU 496 497 extern int fcloseall(void); 498 extern FILE* fmemopen(void*, size_t, const char*); 499 extern ssize_t __getdelim(char**, size_t*, int, FILE*); 500 extern ssize_t getdelim(char**, size_t*, int, FILE*); 501 extern ssize_t getline(char**, size_t*, FILE*); 502 503 #endif 504 505 #undef extern 506 507 #if _BLD_DLL && _DLL_INDIRECT_DATA 508 509 #define stdin ((FILE*)_ast_dll->_ast_stdin) 510 #define stdout ((FILE*)_ast_dll->_ast_stdout) 511 #define stderr ((FILE*)_ast_dll->_ast_stderr) 512 513 #else 514 515 #define stdin (&_Sfstdin) 516 #define stdout (&_Sfstdout) 517 #define stderr (&_Sfstderr) 518 519 #endif 520 521 #if defined(_AST_H) || defined(_SFIO_H) 522 523 #define feof(f) sfeof(f) 524 #define ferror(f) sferror(f) 525 #define fileno(f) sffileno(f) 526 #define fputc(c,f) sfputc(f,c) 527 #define getc(f) sfgetc(f) 528 #define getchar() sfgetc(sfstdin) 529 #define putc(c,f) sfputc(f,c) 530 #define putchar(c) sfputc(sfstdout,c) 531 532 #else 533 534 #if !_UWIN 535 #if _BLD_ast && defined(__EXPORT__) 536 #define extern extern __EXPORT__ 537 #endif 538 #if !_BLD_ast && defined(__IMPORT__) 539 #define extern extern __IMPORT__ 540 #endif 541 #endif 542 543 extern FILE _Sfstdin; 544 extern FILE _Sfstdout; 545 extern FILE _Sfstderr; 546 547 #undef extern 548 549 #define feof(f) (_sf_(f)->_flags&_SF_EOF) 550 #define ferror(f) (_sf_(f)->_flags&_SF_ERROR) 551 #define fileno(f) (_sf_(f)->_file) 552 #define fputc(c,f) (_sf_(f)->_next>=_sf_(f)->_endw?_sfflsbuf(_sf_(f),(int)((unsigned char)(c))):(int)(*_sf_(f)->_next++=(unsigned char)(c))) 553 #define getc(f) (_sf_(f)->_next>=_sf_(f)->_endr?_sffilbuf(_sf_(f),0):(int)(*_sf_(f)->_next++)) 554 #define getchar() getc(stdin) 555 #define putc(c,f) fputc(c,f) 556 #define putchar(c) fputc(c,stdout) 557 558 #if _BLD_ast && defined(__EXPORT__) 559 #define extern __EXPORT__ 560 #endif 561 562 extern int _sffilbuf(FILE*, int); 563 extern int _sfflsbuf(FILE*, int); 564 565 #undef extern 566 567 #endif 568}end 569