33 |
|
|
34 |
context->nesting_limit = M4_DEFAULT_NESTING_LIMIT; |
context->nesting_limit = M4_DEFAULT_NESTING_LIMIT; |
35 |
|
|
36 |
|
context->search_path = XCALLOC (m4__search_path_info, 1); |
37 |
|
|
38 |
return context; |
return context; |
39 |
} |
} |
40 |
|
|
54 |
|
|
55 |
obstack_free (&context->trace_messages, NULL); |
obstack_free (&context->trace_messages, NULL); |
56 |
|
|
57 |
|
if (context->search_path) |
58 |
|
{ |
59 |
|
m4__search_path *path = context->search_path->list; |
60 |
|
|
61 |
|
while (path) |
62 |
|
{ |
63 |
|
m4__search_path *stale = path; |
64 |
|
path = path->next; |
65 |
|
|
66 |
|
xfree ((void*) stale->dir); |
67 |
|
xfree (stale); |
68 |
|
} |
69 |
|
xfree (context->search_path); |
70 |
|
} |
71 |
|
|
72 |
xfree (context); |
xfree (context); |
73 |
} |
} |
74 |
|
|
90 |
#undef m4_get_sync_output_opt |
#undef m4_get_sync_output_opt |
91 |
#undef m4_get_posixly_correct_opt |
#undef m4_get_posixly_correct_opt |
92 |
|
|
|
|
|
93 |
#define M4FIELD(type, base, field) \ |
#define M4FIELD(type, base, field) \ |
94 |
type CONC(m4_get_, base) (m4 *context) \ |
type CONC(m4_get_, base) (m4 *context) \ |
95 |
{ \ |
{ \ |