summaryrefslogtreecommitdiff
path: root/src/data.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2010-04-20 13:35:16 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2010-04-20 13:35:16 -0400
commit8b1e1112af27d900fdaeff47af5120639661e821 (patch)
tree442c47633970c2e8656420e73ca753dc8b995f76 /src/data.c
parent933ac235bd586814f0ac49aac4f385083c1dd5a8 (diff)
downloademacs-8b1e1112af27d900fdaeff47af5120639661e821.tar.gz
Warn rather than error when making a local var inside a let.
* data.c (Fmake_variable_buffer_local, Fmake_local_variable): Just signal a warning rather than an error when inside a let. (Fmake_variable_frame_local): Add the same test.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/data.c b/src/data.c
index a56b112196d..43d168cc63d 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1639,8 +1639,8 @@ The function `default-value' gets the default value and `set-default' sets it.
Lisp_Object symbol;
XSETSYMBOL (symbol, sym); /* In case `variable' is aliased. */
if (let_shadows_global_binding_p (symbol))
- error ("Making %s buffer-local while let-bound!",
- SDATA (SYMBOL_NAME (variable)));
+ message ("Making %s buffer-local while let-bound!",
+ SDATA (SYMBOL_NAME (variable)));
}
}
@@ -1702,7 +1702,8 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
}
if (sym->constant)
- error ("Symbol %s may not be buffer-local", SDATA (SYMBOL_NAME (variable)));
+ error ("Symbol %s may not be buffer-local",
+ SDATA (SYMBOL_NAME (variable)));
if (blv ? blv->local_if_set
: (forwarded && BUFFER_OBJFWDP (valcontents.fwd)))
@@ -1722,8 +1723,9 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
Lisp_Object symbol;
XSETSYMBOL (symbol, sym); /* In case `variable' is aliased. */
if (let_shadows_global_binding_p (symbol))
- error ("Making %s local to %s while let-bound!",
- SDATA (SYMBOL_NAME (variable)), SDATA (current_buffer->name));
+ message ("Making %s local to %s while let-bound!",
+ SDATA (SYMBOL_NAME (variable)),
+ SDATA (current_buffer->name));
}
}
@@ -1899,6 +1901,13 @@ frame-local bindings). */)
blv->frame_local = 1;
sym->redirect = SYMBOL_LOCALIZED;
SET_SYMBOL_BLV (sym, blv);
+ {
+ Lisp_Object symbol;
+ XSETSYMBOL (symbol, sym); /* In case `variable' is aliased. */
+ if (let_shadows_global_binding_p (symbol))
+ message ("Making %s frame-local while let-bound!",
+ SDATA (SYMBOL_NAME (variable)));
+ }
return variable;
}