Mercurial > emacs
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