|
|
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.