101 |
static void * set_trace_CB (m4_symbol_table *symtab, const char *ignored, |
static void * set_trace_CB (m4_symbol_table *symtab, const char *ignored, |
102 |
m4_symbol *symbol, void *userdata); |
m4_symbol *symbol, void *userdata); |
103 |
static const char *ntoa (number value, int radix); |
static const char *ntoa (number value, int radix); |
104 |
static void numb_obstack (struct obstack *obs, const number value, |
static void numb_obstack (m4_obstack *obs, const number value, |
105 |
const int radix, int min); |
const int radix, int min); |
106 |
|
|
107 |
|
|
143 |
/* The rest of this file is code for builtins and expansion of user |
/* The rest of this file is code for builtins and expansion of user |
144 |
defined macros. All the functions for builtins have a prototype as: |
defined macros. All the functions for builtins have a prototype as: |
145 |
|
|
146 |
void builtin_MACRONAME (struct obstack *obs, int argc, char *argv[]); |
void builtin_MACRONAME (m4_obstack *obs, int argc, char *argv[]); |
147 |
|
|
148 |
The function are expected to leave their expansion on the obstack OBS, |
The function are expected to leave their expansion on the obstack OBS, |
149 |
as an unfinished object. ARGV is a table of ARGC pointers to the |
as an unfinished object. ARGV is a table of ARGC pointers to the |
803 |
} |
} |
804 |
|
|
805 |
static void |
static void |
806 |
numb_obstack(struct obstack *obs, const number value, |
numb_obstack(m4_obstack *obs, const number value, |
807 |
const int radix, int min) |
const int radix, int min) |
808 |
{ |
{ |
809 |
const char *s = ntoa (value, radix); |
const char *s = ntoa (value, radix); |