aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2010-01-01 14:30:06 -0500
committerEli Zaretskii2010-01-01 14:30:06 -0500
commit3b8fb4b39271ee1abaa725fbda501e7f10a708c1 (patch)
tree026b03633d81725b5be8fbf6a036fe44f33af206 /src
parentad55bd468c67f4961fc47e6ba0786259b15fe7ff (diff)
parent918fa8ba98b1a5a2b94879c092abefeab5dfe85c (diff)
downloademacs-3b8fb4b39271ee1abaa725fbda501e7f10a708c1.tar.gz
emacs-3b8fb4b39271ee1abaa725fbda501e7f10a708c1.zip
Merge from mainline.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/eval.c33
-rw-r--r--src/lread.c28
3 files changed, 43 insertions, 26 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 92f4fe45f35..73000341f68 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
12010-01-01 Chong Yidong <cyd@stupidchicken.com>
2
3 * lread.c (syms_of_lread): Make it clearer that these are the
4 names of loaded files (Bug#5068).
5
6 * eval.c (run_hook_with_args): Handle the case where the global
7 value has the obsolete single-function form (Bug#5026).
8
12009-12-27 Chong Yidong <cyd@stupidchicken.com> 92009-12-27 Chong Yidong <cyd@stupidchicken.com>
2 10
3 * minibuf.c (Fall_completions): Minor optimization. 11 * minibuf.c (Fall_completions): Minor optimization.
diff --git a/src/eval.c b/src/eval.c
index 1c975003318..0198fb7c131 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2620,7 +2620,6 @@ run_hook_with_args (nargs, args, cond)
2620 enum run_hooks_condition cond; 2620 enum run_hooks_condition cond;
2621{ 2621{
2622 Lisp_Object sym, val, ret; 2622 Lisp_Object sym, val, ret;
2623 Lisp_Object globals;
2624 struct gcpro gcpro1, gcpro2, gcpro3; 2623 struct gcpro gcpro1, gcpro2, gcpro3;
2625 2624
2626 /* If we are dying or still initializing, 2625 /* If we are dying or still initializing,
@@ -2641,7 +2640,7 @@ run_hook_with_args (nargs, args, cond)
2641 } 2640 }
2642 else 2641 else
2643 { 2642 {
2644 globals = Qnil; 2643 Lisp_Object globals = Qnil;
2645 GCPRO3 (sym, val, globals); 2644 GCPRO3 (sym, val, globals);
2646 2645
2647 for (; 2646 for (;
@@ -2654,18 +2653,28 @@ run_hook_with_args (nargs, args, cond)
2654 { 2653 {
2655 /* t indicates this hook has a local binding; 2654 /* t indicates this hook has a local binding;
2656 it means to run the global binding too. */ 2655 it means to run the global binding too. */
2656 globals = Fdefault_value (sym);
2657 if (NILP (globals)) continue;
2657 2658
2658 for (globals = Fdefault_value (sym); 2659 if (!CONSP (globals) || EQ (XCAR (globals), Qlambda))
2659 CONSP (globals) && ((cond == to_completion) 2660 {
2660 || (cond == until_success ? NILP (ret) 2661 args[0] = globals;
2661 : !NILP (ret))); 2662 ret = Ffuncall (nargs, args);
2662 globals = XCDR (globals)) 2663 }
2664 else
2663 { 2665 {
2664 args[0] = XCAR (globals); 2666 for (;
2665 /* In a global value, t should not occur. If it does, we 2667 CONSP (globals) && ((cond == to_completion)
2666 must ignore it to avoid an endless loop. */ 2668 || (cond == until_success ? NILP (ret)
2667 if (!EQ (args[0], Qt)) 2669 : !NILP (ret)));
2668 ret = Ffuncall (nargs, args); 2670 globals = XCDR (globals))
2671 {
2672 args[0] = XCAR (globals);
2673 /* In a global value, t should not occur. If it does, we
2674 must ignore it to avoid an endless loop. */
2675 if (!EQ (args[0], Qt))
2676 ret = Ffuncall (nargs, args);
2677 }
2669 } 2678 }
2670 } 2679 }
2671 else 2680 else
diff --git a/src/lread.c b/src/lread.c
index 0649c638d98..50d2702639e 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -4377,20 +4377,20 @@ the rest of the FORMS. */);
4377 Vafter_load_alist = Qnil; 4377 Vafter_load_alist = Qnil;
4378 4378
4379 DEFVAR_LISP ("load-history", &Vload_history, 4379 DEFVAR_LISP ("load-history", &Vload_history,
4380 doc: /* Alist mapping file names to symbols and features. 4380 doc: /* Alist mapping loaded file names to symbols and features.
4381Each alist element is a list that starts with a file name, 4381Each alist element should be a list (FILE-NAME ENTRIES...), where
4382except for one element (optional) that starts with nil and describes 4382FILE-NAME is the name of a file that has been loaded into Emacs.
4383definitions evaluated from buffers not visiting files. 4383The file name is absolute and true (i.e. it doesn't contain symlinks).
4384 4384As an exception, one of the alist elements may have FILE-NAME nil,
4385The file name is absolute and is the true file name (i.e. it doesn't 4385for symbols and features not associated with any file.
4386contain symbolic links) of the loaded file. 4386
4387 4387The remaining ENTRIES in the alist element describe the functions and
4388The remaining elements of each list are symbols defined as variables 4388variables defined in that file, the features provided, and the
4389and cons cells of the form `(provide . FEATURE)', `(require . FEATURE)', 4389features required. Each entry has the form `(provide . FEATURE)',
4390`(defun . FUNCTION)', `(autoload . SYMBOL)', `(defface . SYMBOL)' 4390`(require . FEATURE)', `(defun . FUNCTION)', `(autoload . SYMBOL)',
4391and `(t . SYMBOL)'. An element `(t . SYMBOL)' precedes an entry 4391`(defface . SYMBOL)', or `(t . SYMBOL)'. In addition, an entry `(t
4392`(defun . FUNCTION)', and means that SYMBOL was an autoload before 4392. SYMBOL)' may precede an entry `(defun . FUNCTION)', and means that
4393this file redefined it as a function. 4393SYMBOL was an autoload before this file redefined it as a function.
4394 4394
4395During preloading, the file name recorded is relative to the main Lisp 4395During preloading, the file name recorded is relative to the main Lisp
4396directory. These file names are converted to absolute at startup. */); 4396directory. These file names are converted to absolute at startup. */);