Don't emit whitespace when stringifying TOKEN_WHITE.
authorDale Weiler <weilercdale@gmail.com>
Fri, 7 Nov 2014 07:01:17 +0000 (02:01 -0500)
committerDale Weiler <weilercdale@gmail.com>
Fri, 7 Nov 2014 07:01:17 +0000 (02:01 -0500)
Other aspects of the preprocessor already skip whitespace leading up to a token. The only situation in which a TOKEN_WHITE can
exist as part of the token stream during stringification, is when the whitespace is trailing after a token. This is situation is
really only possible in the context of a macro argument. This behaviour is inconsistent.

Consider the following
FOO( space_before)
FOO(space_after )

The former will reduce to "space_before" since the preprocessor will skip whitespace leading up to the token `space_before', while
the latter will reduce to "space_after ".

The C preprocessor doesn't preserve whitespace, so we won't either. This doesn't break any existing code.

ftepp.c

diff --git a/ftepp.c b/ftepp.c
index 7b24c647eebaf940ac017bddc1ef2ced095c1ebf..7947b918f2b5056f92041b8ae0bf80654c782090 100644 (file)
--- a/ftepp.c
+++ b/ftepp.c
@@ -703,9 +703,9 @@ static void ftepp_stringify_token(ftepp_t *ftepp, pptoken *token)
                 ++ch;
             }
             break;
-        case TOKEN_WHITE:
+        /*case TOKEN_WHITE:
             ftepp_out(ftepp, " ", false);
-            break;
+            break;*/
         case TOKEN_EOL:
             ftepp_out(ftepp, "\\n", false);
             break;