Under the -M option, identifiers were sometimes truncated
authorceriel <none@none>
Wed, 14 Feb 1990 11:57:41 +0000 (11:57 +0000)
committerceriel <none@none>
Wed, 14 Feb 1990 11:57:41 +0000 (11:57 +0000)
util/cpp/preprocess.c

index 64ca97e..34c0769 100644 (file)
@@ -222,15 +222,22 @@ preprocess(fn)
                                        if (tg < maxpos) {
                                                cpy;
                                        }
+                                       else break;
                                        load;
                                }
                        endidf:
                                PushBack();
                                *tg = '\0';     /* mark the end of the identifier */
                                idef = findidf(buf);
-                               if ((idef && idef->id_macro && replace(idef))) {
-                                       LoadChar(c);
-                                       continue;
+                               if (idef && idef->id_macro) {
+                                       do {
+                                               LoadChar(c);
+                                       } while  (in_idf(c));
+                                       PushBack();
+                                       if (replace(idef)) {
+                                               LoadChar(c);
+                                               continue;
+                                       }
                                }
                        nomac:
                                *tg = 0;