On Sat, May 01, 1999 at 10:40:41PM +0200, Hrvoje Niksic wrote:
Opinions?
You mean this kind of patch ?
1999-05-03 Olivier Galibert <galibert(a)pobox.com>
* lisp.h (SYMBOL_IS_KEYWORD): A symbol can be a keyword only if it
is interned in the main obarray.
Index: Main.10/src/lisp.h
--- Main.10/src/lisp.h Thu, 22 Apr 1999 21:53:36 +0200 galibert (xemacs/r/3_lisp.h
1.1.1.1.1.2 644)
+++ Main.10(w)/src/lisp.h Mon, 03 May 1999 05:30:03 +0200 galibert (xemacs/r/3_lisp.h
1.1.1.1.1.2 644)
@@ -1135,7 +1135,12 @@
};
typedef struct Lisp_Symbol Lisp_Symbol;
-#define SYMBOL_IS_KEYWORD(sym) (string_byte (XSYMBOL(sym)->name, 0) == ':')
+#define SYMBOL_IS_KEYWORD(sym) \
+ ((string_byte (XSYMBOL(sym)->name, 0) == ':') && \
+ EQ (sym, oblookup (Vobarray, \
+ string_data (symbol_name (XSYMBOL (sym))), \
+ string_length (symbol_name (XSYMBOL (sym))))))
+
#define KEYWORDP(obj) (SYMBOLP (obj) && SYMBOL_IS_KEYWORD (obj))
DECLARE_LRECORD (symbol, Lisp_Symbol);