diff macro.c @ 162:82cc6fa54b01

newline during a macro invocation counts as space. Behavior differs from GCC in that empty lines in the argument list are still suppressed.
author Joerg Sonnenberger <joerg@bec.de>
date Fri, 27 Feb 2015 02:53:12 +0100
parents 4a4b3d5c41fa
children e1dfa3f90b6c
line wrap: on
line diff
--- a/macro.c	Fri Feb 27 02:48:26 2015 +0100
+++ b/macro.c	Fri Feb 27 02:53:12 2015 +0100
@@ -1258,7 +1258,16 @@
 macro_sendline(struct place *p, char *buf, size_t len)
 {
 	doexpand(&mainstate, p, buf, len);
-	output(p, "\n", 1);
+	switch (mainstate.state) {
+	    case ES_NORMAL:
+		output(p, "\n", 1);
+		break;
+	    case ES_WANTLPAREN:
+	    case ES_NOARG:
+	    case ES_HAVEARG:
+		expand_got_ws(&mainstate, p, " ", 1);
+		break;
+	}
 }
 
 void