From 7e5b17bade3551298d76e8ac12f0391b7a0e7e3a Mon Sep 17 00:00:00 2001
From: Per Hedbor <ph@opera.com>
Date: Thu, 10 Apr 2014 18:19:09 +0200
Subject: [PATCH] A less intrusive version. #line does not work in cmods very
 well.

---
 src/cpp.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/cpp.c b/src/cpp.c
index 5e695826bb..0abbf55d68 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -2268,9 +2268,16 @@ static void insert_callback_define(struct cpp *this,
 			  this->handler, this->compat_handler, 2, 0 ) &&
       TYPEOF(sp[-1]) == T_STRING ) {
     string_builder_shared_strcat(tmp, sp[-1].u.string);
-    string_builder_sprintf(tmp, "\n#line %ld ", (long)this->current_line);
-    insert_current_file_as_string( this,def,args,tmp);
-    string_builder_putchar(tmp, '\n');
+    if( !this->prefix ){
+        int min;
+        check_string_range( sp[-1].u.string, 0, &min, 0 );
+        if( min < 32 )
+        {
+            string_builder_sprintf(tmp, "\n#line %ld ", (long)this->current_line);
+            insert_current_file_as_string( this,def,args,tmp);
+            string_builder_putchar(tmp, '\n');
+        }
+    }
     pop_stack();
   }
 }
-- 
GitLab