/*
- * Copyright (C) 2012, 2013
+ * Copyright (C) 2012, 2013, 2014
* Wolfgang Bumiller
* Dale Weiler
*
lex_file *inlex;
bool old_inmacro;
+ bool strip = false;
int nextok;
if (nextok == '#') {
/* raw concatenation */
++o;
+ strip = true;
break;
}
if ( (nextok == TOKEN_IDENT ||
macro_params_find(macro, macro->output[o+1]->value, &pi))
{
++o;
+
ftepp_stringify(ftepp, ¶ms[pi]);
break;
}
ftepp_out(ftepp, "\n", false);
break;
default:
- ftepp_out(ftepp, out->value, false);
+ buffer = out->value;
+ #define buffer_stripable(X) ((X) == ' ' || (X) == '\t')
+ if (vec_size(macro->output) > o + 1 && macro->output[o+1]->token == '#' && buffer_stripable(*buffer))
+ buffer++;
+ if (strip) {
+ while (buffer_stripable(*buffer)) buffer++;
+ strip = false;
+ }
+ ftepp_out(ftepp, buffer, false);
break;
}
}