Commit 14e76af9 authored by Jim Blandy's avatar Jim Blandy

*** empty log message ***

parent c637ae6f
......@@ -649,12 +649,14 @@ swap_in_symval_forwarding (sym, valcontents)
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 @@ DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0,
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)
......
......@@ -127,3 +127,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
is named _avenrun. */
#define LDAV_SYMBOL "_avenrun"
/* The return type of a signal handling function. */
#define SIGTYPE int
......@@ -128,6 +128,15 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment