diff options
author | Olly Betts <olly@survex.com> | 2023-04-19 14:52:40 +1200 |
---|---|---|
committer | Olly Betts <olly@survex.com> | 2023-04-19 14:52:40 +1200 |
commit | 043bdf567756e6a30dd1e62bef10607d28a3db91 (patch) | |
tree | 5ff5c55deb5bc0d814a60127005233369bac2ddf | |
parent | 6e54f3b6c402e3710e14b57e0a9978177fce50dc (diff) | |
download | swig-043bdf567756e6a30dd1e62bef10607d28a3db91.tar.gz |
Copy over missing parts of macro expansion code
We need to insert newlines for a multi-line macro invocation, and
we shouldn't leak memory.
-rw-r--r-- | Source/Preprocessor/cpp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/Preprocessor/cpp.c b/Source/Preprocessor/cpp.c index b9ce54361..55058fc13 100644 --- a/Source/Preprocessor/cpp.c +++ b/Source/Preprocessor/cpp.c @@ -1297,9 +1297,14 @@ static DOH *Preprocessor_replace(DOH *s, DOH *line_file) { args = 0; } e = expand_macro(id, args, s); - if (e) + if (e) { Append(ns, e); + } + while (macro_additional_lines--) { + Putc('\n', ns); + } Delete(e); + Delete(args); } else { Append(ns, id); } |