Fixed preprocessor problem with empty macro bodies
authorceriel <none@none>
Thu, 21 Feb 1991 12:08:13 +0000 (12:08 +0000)
committerceriel <none@none>
Thu, 21 Feb 1991 12:08:13 +0000 (12:08 +0000)
lang/cem/cemcom.ansi/replace.c
lang/cem/cpp.ansi/replace.c

index 9f7a865..28873ed 100644 (file)
@@ -171,7 +171,9 @@ expand_macro(repl, idf)
                three tokens: + + ID. Therefore a token separator is
                inserted after the replacement.
        */
-       if (*(repl->r_ptr - 1) != TOKSEP) add2repl(repl, TOKSEP);
+       if (repl->r_text == repl->r_ptr || *(repl->r_ptr - 1) != TOKSEP) {
+               add2repl(repl, TOKSEP);
+       }
        return 1;
 }
 
@@ -665,7 +667,7 @@ macro2buffer(repl, idf, args)
                    while (*q)
                        add2repl(repl, *q++);
 
-               if (*(repl->r_ptr - 1) != TOKSEP)
+               if (repl->r_text == repl->r_ptr || *(repl->r_ptr - 1) != TOKSEP)
                        add2repl(repl, TOKSEP);
            } else {
                add2repl(repl, *ptr++);
index 02fcd69..e5aa73d 100644 (file)
@@ -160,7 +160,9 @@ expand_macro(repl, idf)
                three tokens: + + ID. Therefore a token separator is
                inserted after the replacement.
        */
-       if (*(repl->r_ptr -1) != TOKSEP) add2repl(repl, TOKSEP);
+       if (repl->r_text == repl->r_ptr || *(repl->r_ptr -1) != TOKSEP) {
+               add2repl(repl, TOKSEP);
+       }
        return 1;
 }
 
@@ -651,7 +653,7 @@ macro2buffer(repl, idf, args)
                    while (*q)
                        add2repl(repl, *q++);
 
-               if (*(repl->r_ptr-1) != TOKSEP)
+               if (repl->r_text == repl->r_ptr || *(repl->r_ptr-1) != TOKSEP)
                        add2repl(repl, TOKSEP);
            } else {
                add2repl(repl, *ptr++);