From da3267cf34ef9ff37b67e1284ecb00d36530201a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Wed, 14 Oct 2015 22:02:56 +0200
Subject: [PATCH] master: compile_file() now knows about cpp() soft failures.

cpp() returns zero on failing #require. Don't propagate the zero
the compiler.
---
 lib/master.pike.in | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/lib/master.pike.in b/lib/master.pike.in
index 61fec6ea3d..a48efe1def 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1027,12 +1027,16 @@ program compile_file(string filename,
 		     void|object o)
 {
   AUTORELOAD_CHECK_FILE(filename);
-  return compile(cpp(master_read_file(filename),
-		     filename,
-		     1,
-		     handler,
-		     compat_major,
-		     compat_minor),
+  string code = cpp(master_read_file(filename),
+		    filename,
+		    1,
+		    handler,
+		    compat_major,
+		    compat_minor);
+  if (!code) {
+    error("Required feature missing.\n");
+  }
+  return compile(code,
 		 handler,
 		 compat_major,
 		 compat_minor,
-- 
GitLab