changeset 514:626908d37dea

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Tue, 28 Jan 1992 01:53:11 +0000
parents 12facf6e03ed
children 0005d4c90c97
files src/data.c src/s/bsd4-3.h src/s/template.h
diffstat 3 files changed, 33 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/data.c	Mon Jan 27 22:52:05 1992 +0000
+++ b/src/data.c	Tue Jan 28 01:53:11 1992 +0000
@@ -649,12 +649,14 @@
   return XCONS (valcontents)->car;
 }
 
-/* Note that it must not be possible to quit within this function.
-   Great care is required for this.  */
+/* Find the value of a symbol, returning Qunbound if it's not bound.
+   This is helpful for code which just wants to get a variable's value
+   if it has one, without signalling an error.
+   Note that it must not be possible to quit
+   within this function.  Great care is required for this.  */
 
-DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0,
-  "Return SYMBOL's value.  Error if that is void.")
-  (sym)
+Lisp_Object
+find_symbol_value (sym)
      Lisp_Object sym;
 {
   register Lisp_Object valcontents, tem1;
@@ -689,18 +691,26 @@
     case Lisp_Buffer_Objfwd:
       return *(Lisp_Object *)(XUINT (valcontents) + (char *)current_buffer);
 
-    case Lisp_Symbol:
-      /* For a symbol, check whether it is 'unbound. */
-      if (!EQ (valcontents, Qunbound))
-	break;
-      /* drops through! */
     case Lisp_Void:
-      return Fsignal (Qvoid_variable, Fcons (sym, Qnil));
+      return Qunbound;
     }
 
   return valcontents;
 }
 
+DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0,
+  "Return SYMBOL's value.  Error if that is void.")
+  (sym)
+     Lisp_Object sym;
+{
+  Lisp_Object val = find_symbol_value (sym);
+
+  if (EQ (val, Qunbound))
+    return Fsignal (Qvoid_variable, Fcons (sym, Qnil));
+  else
+    return val;
+}
+
 DEFUN ("set", Fset, Sset, 2, 2, 0,
   "Set SYMBOL's value to NEWVAL, and return NEWVAL.")
   (sym, newval)
--- a/src/s/bsd4-3.h	Mon Jan 27 22:52:05 1992 +0000
+++ b/src/s/bsd4-3.h	Tue Jan 28 01:53:11 1992 +0000
@@ -127,3 +127,6 @@
    is named _avenrun.  */
 
 #define LDAV_SYMBOL "_avenrun"
+
+/* The return type of a signal handling function.  */
+#define SIGTYPE int
--- a/src/s/template.h	Mon Jan 27 22:52:05 1992 +0000
+++ b/src/s/template.h	Tue Jan 28 01:53:11 1992 +0000
@@ -128,6 +128,15 @@
 
 #define CLASH_DETECTION
 
+/* Define this if your operating system declares signal handlers to
+   have a type other than the usual.  `The usual' is `void' for ANSI C
+   systems (i.e. when the __STDC__ macro is defined), and `int' for
+   pre-ANSI systems.  If you're using GCC on an older system, __STDC__
+   will be defined, but the system's include files will still say that
+   signal returns int or whatever; in situations like that, define
+   this to be what the system's include files want.  */
+/* #define SIGTYPE int */
+
 /* Here, on a separate page, add any special hacks needed
    to make Emacs work on this system.  For example,
    you might define certain system call names that don't