From 7d190d72458b7507d5c4210fac44286ee6d167ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Fri, 20 Jun 1997 14:28:58 +0200
Subject: [PATCH] Now inhibits compiler errors.

Rev: lib/modules/Sql.pmod/sql.pike:1.9
---
 lib/modules/Sql.pmod/sql.pike | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/lib/modules/Sql.pmod/sql.pike b/lib/modules/Sql.pmod/sql.pike
index 0a3c715f31..b69c8950fd 100644
--- a/lib/modules/Sql.pmod/sql.pike
+++ b/lib/modules/Sql.pmod/sql.pike
@@ -1,5 +1,5 @@
 /*
- * $Id: sql.pike,v 1.8 1997/06/08 19:51:16 grubba Exp $
+ * $Id: sql.pike,v 1.9 1997/06/20 12:28:58 grubba Exp $
  *
  * Implements the generic parts of the SQL-interface
  *
@@ -8,7 +8,7 @@
 
 //.
 //. File:	sql.pike
-//. RCSID:	$Id: sql.pike,v 1.8 1997/06/08 19:51:16 grubba Exp $
+//. RCSID:	$Id: sql.pike,v 1.9 1997/06/20 12:28:58 grubba Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	Implements the generic parts of the SQL-interface.
@@ -69,10 +69,25 @@ void create(void|string|object host, void|string db,
 	array(mixed) err;
 
 	err = catch {
-	  program p = Sql[program_name];
+	  program p;
+#ifdef PIKE_SQL_DEBUG
+	  err = catch {p = Sql[program_name];};
+#else /* !PIKE_SQL_DEBUG */
+	  // Ignore compiler errors for the various sql-modules,
+	  // since we might not have some.
+	  // This is NOT a nice way to do it, but...
+	  mixed old_inhib = master()->inhibit_compiler_errors;
+	  master()->inhibit_compiler_errors = lambda(){};
+	  err = catch {p = Sql[program_name];};
+	  // Restore compiler errors mode to whatever it was before.
+	  master()->inhibit_compiler_errors = old_inhib;
+#endif /* PIKE_SQL_DEBUG */
+	  if (err) {
+	    throw(err);
+	  }
 
 	  if (p) {
-	    array err2 = catch {
+	    err = catch {
 	      if (password && password != "") {
 		master_sql = p(host||"", db||"", user||"", password);
 	      } else if (user && user != "") {
@@ -87,7 +102,7 @@ void create(void|string|object host, void|string db,
 	      return;
 	    };
 #ifdef PIKE_SQL_DEBUG
-	    if (err2) {
+	    if (err) {
 	      Stdio.stderr->write(sprintf("Sql.sql(): Failed to connect using module Sql.%s\n",
 					  program_name));
 	    }
-- 
GitLab