From ac6352dbd3bbd6a5245f57f965047c0e2c3d59ad Mon Sep 17 00:00:00 2001
From: simonm <unknown>
Date: Tue, 10 Feb 1998 13:47:44 +0000
Subject: [PATCH] [project @ 1998-02-10 13:47:44 by simonm] Don't do layout
 processing inside {-# ... #-}.

The fix is horrible, and should probably be redone in a cleaner way at
some point.
---
 ghc/compiler/parser/hslexer.flex | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/ghc/compiler/parser/hslexer.flex b/ghc/compiler/parser/hslexer.flex
index 432625aa16c6..ef02cfd5e6e2 100644
--- a/ghc/compiler/parser/hslexer.flex
+++ b/ghc/compiler/parser/hslexer.flex
@@ -315,28 +315,34 @@ NL  	    	    	[\n\r]
 
 <Code,GlaExt>"{-#"{WS}*"INTERFACE" {
 			      PUSH_STATE(UserPragma);
+			      forgetindent = TRUE;
 			      RETURN(INTERFACE_UPRAGMA);
 			    }
 <Code,GlaExt>"{-#"{WS}*"SPECIALI"[SZ]E {
 			      PUSH_STATE(UserPragma);
+			      forgetindent = TRUE;
 			      RETURN(SPECIALISE_UPRAGMA);
 			    }
 <Code,GlaExt>"{-#"{WS}*"INLINE" {
 			      PUSH_STATE(UserPragma);
+			      forgetindent = TRUE;
 			      RETURN(INLINE_UPRAGMA);
 			    }
 <Code,GlaExt>"{-#"{WS}*"MAGIC_UNFOLDING" {
 			      PUSH_STATE(UserPragma);
+			      forgetindent = TRUE;
 			      RETURN(MAGIC_UNFOLDING_UPRAGMA);
 			    }
 <Code,GlaExt>"{-#"{WS}*"GENERATE_SPECS" {
 			      /* these are handled by hscpp */
 			      nested_comments =1;
+			      forgetindent = TRUE;
                               PUSH_STATE(Comment);
 			    }
 <Code,GlaExt>"{-#"{WS}*"OPTIONS" {
 			      /* these are for the driver! */
 			      nested_comments =1;
+			      forgetindent = TRUE;
                               PUSH_STATE(Comment);
 			    }
 <Code,GlaExt>"{-#"{WS}*"SOURCE"{WS}*"#"?"-}" {
@@ -355,7 +361,15 @@ NL  	    	    	[\n\r]
 			      nested_comments = 1;
 			      PUSH_STATE(Comment);
 			    }
-<UserPragma>"#-}"	    { POP_STATE; RETURN(END_UPRAGMA); }
+<UserPragma>"#-}"	    { POP_STATE; 
+		              forgetindent=FALSE; 
+			      /* don't want any layout processing here,
+			       * so just use 'return' instead of 'RETURN',
+			       * remembering to set hssttok.
+			       */
+			      hssttok = -1;
+			      return(END_UPRAGMA); 
+			    }
 
 %{
     /*
-- 
GitLab