From 83045c3f93d876fbdec07b0536af5b125a44ab14 Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Sat, 5 Mar 2011 22:30:51 +0100
Subject: [PATCH] Cleaned up some Sql.Null remains.

Also unified Builtin.Null and Val.Null.
---
 lib/modules/Sql.pmod/module.pmod |  2 +-
 lib/modules/Val.pmod             | 13 +++----------
 src/builtin.cmod                 | 18 +++++++++++++-----
 src/modules/JSON/testsuite.in    |  4 ++--
 src/modules/Oracle/oracle.c      |  4 ++--
 5 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/lib/modules/Sql.pmod/module.pmod b/lib/modules/Sql.pmod/module.pmod
index 4f64bcbcca..6edaf1333f 100644
--- a/lib/modules/Sql.pmod/module.pmod
+++ b/lib/modules/Sql.pmod/module.pmod
@@ -25,7 +25,7 @@ Val.Null `->NULL() {return Val->null;}
 //! @deprecated Val.Null
 //!
 //! @seealso
-//!   @[Val.Null], @[Val.null], @[Sql.NULL]
+//!   @[Val.Null], @[Val.null]
 
 //! @endclass
 
diff --git a/lib/modules/Val.pmod b/lib/modules/Val.pmod
index 1a56eedcaa..d07a1f0585 100644
--- a/lib/modules/Val.pmod
+++ b/lib/modules/Val.pmod
@@ -96,20 +96,13 @@ False false = False();
 //! @[Protocols.JSON] uses these objects to represent the JSON
 //! literals @expr{true@} and @expr{false@}.
 
-class Null
+//! @class Null
 //! Type for the @[Val.null] object. Do not create more instances of
 //! this - use @[Val.null] instead.
-{
-  inherit Builtin.SqlNull;
 
-  constant is_val_null = 1;
-  //! Nonzero recognition constant.
+constant Null = Builtin.Null;
 
-  protected string _sprintf (int flag)
-  {
-    return flag == 'O' && "Val.null";
-  }
-}
+//! @endclass
 
 Null null = Null();
 //! Object that represents a null value.
diff --git a/src/builtin.cmod b/src/builtin.cmod
index e8664e110e..1041a96d30 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -3679,7 +3679,7 @@ PIKEFUN function(mixed:void) _get_setter(object o, string s)
 /*! @endclass
  */
 
-/*! @class SqlNull
+/*! @class Null
  *!
  *! This class is used to implement the low-level aspects of @[Val.Null].
  *!
@@ -3696,12 +3696,20 @@ PIKEFUN function(mixed:void) _get_setter(object o, string s)
  *! @seealso
  *!   @[Val.Null], @[Val.null]
  */
-PIKECLASS SqlNull
+PIKECLASS Null
 {
   EXTRA {
+    /*! @decl constant is_val_null = 1
+     *!
+     *! Nonzero recognition constant.
+     */
+    add_integer_constant("is_val_null", 1, 0);
+
     /*! @decl constant is_sql_null = 1
      *!
      *! SQL Null marker.
+     *!
+     *! @deprecated is_val_null
      */
     add_integer_constant("is_sql_null", 1, 0);
   }
@@ -3717,7 +3725,7 @@ PIKECLASS SqlNull
   {
     pop_n_elems(args);
     if (fmt == 'O') {
-      push_constant_text("Sql.NULL");
+      push_constant_text("Val.null");
     } else {
       push_undefined();
     }
@@ -3738,7 +3746,7 @@ PIKECLASS SqlNull
       push_int(0);
       return;
     }
-    push_constant_text("is_sql_null");
+    push_constant_text("is_val_null");
     o_index();
   }
 
@@ -4891,7 +4899,7 @@ GET_VAL (null)
  * ought to be fixed to use dynamic lookup of them instead. */
 PMOD_EXPORT struct program *get_sql_null_prog(void)
 {
-  return SqlNull_program;
+  return Null_program;
 }
 
 void init_builtin(void)
diff --git a/src/modules/JSON/testsuite.in b/src/modules/JSON/testsuite.in
index d0c62c32c2..65b771553c 100644
--- a/src/modules/JSON/testsuite.in
+++ b/src/modules/JSON/testsuite.in
@@ -70,8 +70,8 @@ return Standards.JSON.encode(m);
 
 test_dec_enc_canon([["{\"a\":[{\"b\":2}]}"]], ([ "a":({(["b":2])}) ]))
 
-test_enc(Sql.NULL, "null")
-test_eval_error( Standards.JSON.encode(Sql.Null) ) dnl FIXME?
+test_enc(Val.null, "null")
+test_eval_error( Standards.JSON.encode(Val.Null) ) dnl FIXME?
 					dnl No, we can't encode types. /mast
 test_any([[
 class X { string encode_json() { return "smallpox"; } };
diff --git a/src/modules/Oracle/oracle.c b/src/modules/Oracle/oracle.c
index 6a791690c0..70567172f6 100644
--- a/src/modules/Oracle/oracle.c
+++ b/src/modules/Oracle/oracle.c
@@ -2616,9 +2616,9 @@ static void dbnull_eq(INT32 args)
   push_constant_text("is_oracle_null");
   o_index();
   if ((Pike_sp[-1].type != T_INT) || !Pike_sp[-1].u.integer) {
-    /* No - is it the generic Sql.NULL? */
+    /* No - is it the generic Val.null? */
     pop_stack();
-    push_constant_text("is_sql_null");
+    push_constant_text("is_val_null");
     o_index();
     return;
   }
-- 
GitLab