]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fdefvar): Warn when var is let-bound but globally void.
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 22 Nov 2004 05:26:50 +0000 (05:26 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 22 Nov 2004 05:26:50 +0000 (05:26 +0000)
src/ChangeLog
src/eval.c

index 0d74afca197f5f4664448710ae45ac5c83fcd309..cd09604d4e2484d2eef1a1fce74f4d382be93707 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Fdefvar): Warn when var is let-bound but globally void.
+
 2004-11-21  Kim F. Storm  <storm@cua.dk>
 
        * xdisp.c (erase_phys_cursor): Clear hollow cursor inside TEXT_AREA.
@@ -11,9 +15,9 @@
        * macterm.c (x_clip_to_row): Add area arg.  Callers changed.
        (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
 
-       * xdisp.c (move_it_in_display_line_to, display_line): Restore
-       saved_face_id if overflow-newline-into-fringe is enabled and line
-       is continued before or in middle of element from display vector.
+       * xdisp.c (move_it_in_display_line_to, display_line):
+       Restore saved_face_id if overflow-newline-into-fringe is enabled and
+       line is continued before or in middle of element from display vector.
 
        * indent.c (Fvertical_motion): Fix last change.  Use another
        method to detect if iterator moved too far ahead after reseat.
@@ -27,8 +31,7 @@
 
 2004-11-20  Luc Teirlinck  <teirllm@auburn.edu>
 
-       * fns.c (Fyes_or_no_p): Call Fread_from_minibuffer with extra
-       argument.
+       * fns.c (Fyes_or_no_p): Call Fread_from_minibuffer with extra argument.
        * callint.c (Fcall_interactively): Ditto.
 
 2004-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
@@ -44,7 +47,7 @@
        (Fread_from_minibuffer): New arg KEEP_ALL.  Callers changed.
 
        * search.c (Vsearch_spaces_regexp):
-       Renamed from Vsearch_whitespace_regexp.  All uses changed.
+       Rename from Vsearch_whitespace_regexp.  All uses changed.
 
 2004-11-20  Thien-Thi Nguyen  <ttn@gnu.org>
 
@@ -86,8 +89,7 @@
 
 2004-11-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
-       * gtkutil.c (xg_get_file_name): Fix typo in
-       HAVE_GTK_FILE_SELECTION_NEW.
+       * gtkutil.c (xg_get_file_name): Typo in HAVE_GTK_FILE_SELECTION_NEW.
 
        * xmenu.c (x_menu_in_use): Remove.
        (x_menu_set_in_use): Also set popup_activated_flag.
index adff3e8670cd3540c9100717ba54b592476d40cb..e8a8e4668e45306840e6ecefb4dff9cfbb995d15 100644 (file)
@@ -786,6 +786,21 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING)  */)
     {
       if (NILP (tem))
        Fset_default (sym, Feval (Fcar (tail)));
+      else
+       { /* Check if there is really a global binding rather than just a let
+            binding that shadows the global unboundness of the var.  */
+         struct specbinding *pdl = specpdl_ptr;
+         while (--pdl >= specpdl)
+           {
+             if (EQ (pdl->symbol, sym) && !pdl->func
+                 && EQ (pdl->old_value, Qunbound))
+               {
+                 message_with_string ("Warning: defvar ignored because %s is let-bound",
+                                      SYMBOL_NAME (sym), 1);
+                 break;
+               }
+           }
+       }
       tail = Fcdr (tail);
       tem = Fcar (tail);
       if (!NILP (tem))