aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorKarl Heuer <[email protected]>1998-04-11 18:04:12 +0000
committerKarl Heuer <[email protected]>1998-04-11 18:04:12 +0000
commitb087d86605483b87d1e6f02d9b87c459a23be4e1 (patch)
treed2b96e00bed7ea887e4cddbcabed87fe4fda9f0a /src/data.c
parent7a5cc9156758738876f7681eb120e79fd9745470 (diff)
(set_internal, Fmakunbound): No error if setting
a keyword to itself.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c
index 5b3a33bddf..0eb415e978 100644
--- a/src/data.c
+++ b/src/data.c
@@ -617,7 +617,8 @@ DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, "Make SYMBOL's value be
CHECK_SYMBOL (symbol, 0);
if (NILP (symbol) || EQ (symbol, Qt)
|| (XSYMBOL (symbol)->name->data[0] == ':'
- && keyword_symbols_constant_flag))
+ && keyword_symbols_constant_flag
+ && ! EQ (XSYMBOL (symbol)->value, symbol)))
return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
Fset (symbol, Qunbound);
return symbol;
@@ -968,7 +969,8 @@ set_internal (symbol, newval, bindflag)
CHECK_SYMBOL (symbol, 0);
if (NILP (symbol) || EQ (symbol, Qt)
|| (XSYMBOL (symbol)->name->data[0] == ':'
- && keyword_symbols_constant_flag))
+ && keyword_symbols_constant_flag
+ && ! EQ (XSYMBOL (symbol)->value, symbol)))
return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
valcontents = XSYMBOL (symbol)->value;