diff options
| author | Eli Zaretskii | 2010-01-01 14:30:06 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2010-01-01 14:30:06 -0500 |
| commit | 3b8fb4b39271ee1abaa725fbda501e7f10a708c1 (patch) | |
| tree | 026b03633d81725b5be8fbf6a036fe44f33af206 /src | |
| parent | ad55bd468c67f4961fc47e6ba0786259b15fe7ff (diff) | |
| parent | 918fa8ba98b1a5a2b94879c092abefeab5dfe85c (diff) | |
| download | emacs-3b8fb4b39271ee1abaa725fbda501e7f10a708c1.tar.gz emacs-3b8fb4b39271ee1abaa725fbda501e7f10a708c1.zip | |
Merge from mainline.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/eval.c | 33 | ||||
| -rw-r--r-- | src/lread.c | 28 |
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 @@ | |||
| 1 | 2010-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 | |||
| 1 | 2009-12-27 Chong Yidong <cyd@stupidchicken.com> | 9 | 2009-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. |
| 4381 | Each alist element is a list that starts with a file name, | 4381 | Each alist element should be a list (FILE-NAME ENTRIES...), where |
| 4382 | except for one element (optional) that starts with nil and describes | 4382 | FILE-NAME is the name of a file that has been loaded into Emacs. |
| 4383 | definitions evaluated from buffers not visiting files. | 4383 | The file name is absolute and true (i.e. it doesn't contain symlinks). |
| 4384 | 4384 | As an exception, one of the alist elements may have FILE-NAME nil, | |
| 4385 | The file name is absolute and is the true file name (i.e. it doesn't | 4385 | for symbols and features not associated with any file. |
| 4386 | contain symbolic links) of the loaded file. | 4386 | |
| 4387 | 4387 | The remaining ENTRIES in the alist element describe the functions and | |
| 4388 | The remaining elements of each list are symbols defined as variables | 4388 | variables defined in that file, the features provided, and the |
| 4389 | and cons cells of the form `(provide . FEATURE)', `(require . FEATURE)', | 4389 | features required. Each entry has the form `(provide . FEATURE)', |
| 4390 | `(defun . FUNCTION)', `(autoload . SYMBOL)', `(defface . SYMBOL)' | 4390 | `(require . FEATURE)', `(defun . FUNCTION)', `(autoload . SYMBOL)', |
| 4391 | and `(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 |
| 4393 | this file redefined it as a function. | 4393 | SYMBOL was an autoload before this file redefined it as a function. |
| 4394 | 4394 | ||
| 4395 | During preloading, the file name recorded is relative to the main Lisp | 4395 | During preloading, the file name recorded is relative to the main Lisp |
| 4396 | directory. These file names are converted to absolute at startup. */); | 4396 | directory. These file names are converted to absolute at startup. */); |