preproc: add a %null directive for the masm macro package

Instead of %pragma ignore, use a new %null directive which ignores the
rest of the line, without bothering to expand it.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
diff --git a/asm/pptok.dat b/asm/pptok.dat
index b6285c3..0fdbbad 100644
--- a/asm/pptok.dat
+++ b/asm/pptok.dat
@@ -89,6 +89,7 @@
 %include
 %line
 %local
+%null
 %pop
 %pragma
 %push
diff --git a/asm/preproc.c b/asm/preproc.c
index 4fcdb35..ccb00f3 100644
--- a/asm/preproc.c
+++ b/asm/preproc.c
@@ -4649,6 +4649,11 @@
     case PP_LINE:
         nasm_panic("`%s' directive not preprocessed early", dname);
         break;
+
+    case PP_NULL:
+        /* Goes nowhere, does nothing... */
+        break;
+
     }
 
 done:
diff --git a/macros/masm.mac b/macros/masm.mac
index da7e6ee..6bd2727 100644
--- a/macros/masm.mac
+++ b/macros/masm.mac
@@ -50,7 +50,7 @@
 %endmacro
 
 %imacro ends 0+.nolist
-  %pragma ignore ends %00
+  %null ends %00
 %endmacro
 
 %imacro proc 0-*.nolist
@@ -65,7 +65,7 @@
 %endmacro
 
 %imacro endp 0.nolist
-  %pragma ignore endp %00
+  %null endp %00
   %undef ret
 %endmacro