|
|
1.1 ! root 1: #include <ansidecl.h> ! 2: ! 3: #ifdef __STDC__ ! 4: #include <stddef.h> ! 5: #define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS); ! 6: #define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS); ! 7: #else ! 8: #define void int ! 9: #define size_t unsigned long ! 10: #define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (); ! 11: #define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (); ! 12: #endif ! 13: ! 14: #define DEFVAR(NAME,DECL,USE) extern DECL; ! 15: ! 16: #define NOTHING /*nothing*/ ! 17: ! 18: #include "functions.def" ! 19: ! 20: /* Always use our: getopt.o getopt1.o obstack.o spaces.o */ ! 21: ! 22: int ! 23: main (argc, argv) ! 24: int argc; char **argv; ! 25: { ! 26: ! 27: /* Create a dummy function call for each DEF-defined function. */ ! 28: ! 29: #undef DEF ! 30: #undef DEFVAR ! 31: #undef DEFFUNC ! 32: #undef AND ! 33: #define AND = 0; ! 34: /* ARGS expands into a set of declaration. NAME ARG_LIST expands ! 35: info a function call that uses those variables as actual parameters. ! 36: If the function has been DEF'ed correctly, we can pass the right ! 37: number and types of parameters, which is nice. (E.g. gcc may ! 38: otherwise complain about the wrong number of parameters to certain ! 39: builtins.) */ ! 40: #define DEF(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; } ! 41: #define DEFVAR(NAME, DECL, USE) { USE; } ! 42: #define DEFFUNC(NAME, RETURN_TYPE, ARG_LIST, ARGS) { ARGS; NAME ARG_LIST; } ! 43: #include "functions.def" ! 44: ! 45: return (0); ! 46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.