From c8f051ae7c702b052b2ae417b884ec4889bec0de Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Thu, 17 Mar 2011 12:02:38 +0100 Subject: [PATCH] Use Frun_hooks rather than calling Vrun_hooks manually Signed-off-by: Julien Danjou --- src/ChangeLog | 18 ++++++++++++++++++ src/buffer.c | 3 +-- src/callint.c | 3 +-- src/cmds.c | 2 +- src/editfns.c | 13 ++++++++----- src/emacs.c | 5 +++-- src/fileio.c | 6 +++--- src/frame.c | 2 +- src/insdel.c | 8 ++++---- src/keyboard.c | 29 ++++++++++++----------------- src/minibuf.c | 10 +--------- src/term.c | 6 +----- src/window.c | 6 +----- 13 files changed, 55 insertions(+), 56 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index d6dd038..9e24e3c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,21 @@ +2011-03-20 Julien Danjou + + * term.c (Fsuspend_tty, Fresume_tty): + * minibuf.c (read_minibuf, run_exit_minibuf_hook): + * window.c (temp_output_buffer_show): + * insdel.c (signal_before_change): + * frame.c (Fhandle_switch_frame): + * fileio.c (Fdo_auto_save): + * emacs.c (Fkill_emacs): + * editfns.c (save_excursion_restore): + * cmds.c (internal_self_insert): + * callint.c (Fcall_interactively): + * buffer.c (Fkill_all_local_variables): + * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1): + Use Frun_hooks. + (command_loop_1): Use Frun_hooks. Call safe_run_hooks + unconditionnaly since it does the check itself. + 2011-03-20 Glenn Morris * config.in: Remove file. diff --git a/src/buffer.c b/src/buffer.c index c0e6866..da2cc15 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2520,8 +2520,7 @@ The first thing this function does is run the normal hook `change-major-mode-hook'. */) (void) { - if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, Qchange_major_mode_hook); + Frun_hooks (1, &Qchange_major_mode_hook); /* Make sure none of the bindings in local_var_alist remain swapped in, in their symbols. */ diff --git a/src/callint.c b/src/callint.c index 282d8a8..bb815a5 100644 --- a/src/callint.c +++ b/src/callint.c @@ -423,8 +423,7 @@ invoke it. If KEYS is omitted or nil, the return value of error ("Attempt to select inactive minibuffer window"); /* If the current buffer wants to clean up, let it. */ - if (!NILP (Vmouse_leave_buffer_hook)) - call1 (Vrun_hooks, Qmouse_leave_buffer_hook); + Frun_hooks (1, &Qmouse_leave_buffer_hook); Fselect_window (w, Qnil); } diff --git a/src/cmds.c b/src/cmds.c index fa1ac50..ebbb223 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -501,7 +501,7 @@ internal_self_insert (int c, EMACS_INT n) } /* Run hooks for electric keys. */ - call1 (Vrun_hooks, Qpost_self_insert_hook); + Frun_hooks (1, &Qpost_self_insert_hook); return hairy; } diff --git a/src/editfns.c b/src/editfns.c index 1f98ff0..009e1d3 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -928,18 +928,21 @@ save_excursion_restore (Lisp_Object info) tem1 = BVAR (current_buffer, mark_active); BVAR (current_buffer, mark_active) = tem; - if (!NILP (Vrun_hooks)) - { /* If mark is active now, and either was not active or was at a different place, run the activate hook. */ - if (! NILP (BVAR (current_buffer, mark_active))) + if (! NILP (tem)) { if (! EQ (omark, nmark)) - call1 (Vrun_hooks, intern ("activate-mark-hook")); + { + tem = intern ("activate-mark-hook"); + Frun_hooks (1, &tem); + } } /* If mark has ceased to be active, run deactivate hook. */ else if (! NILP (tem1)) - call1 (Vrun_hooks, intern ("deactivate-mark-hook")); + { + tem = intern ("deactivate-mark-hook"); + Frun_hooks (1, &tem); } /* If buffer was visible in a window, and a different window was diff --git a/src/emacs.c b/src/emacs.c index 052f22e..00a8f1c 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1972,14 +1972,15 @@ all of which are called before Emacs is actually killed. */) (Lisp_Object arg) { struct gcpro gcpro1; + Lisp_Object hook; GCPRO1 (arg); if (feof (stdin)) arg = Qt; - if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, intern ("kill-emacs-hook")); + hook = intern ("kill-emacs-hook"); + Frun_hooks (1, &hook); UNGCPRO; diff --git a/src/fileio.c b/src/fileio.c index 5d33fb9..14a2147 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -5179,7 +5179,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) (Lisp_Object no_message, Lisp_Object current_only) { struct buffer *old = current_buffer, *b; - Lisp_Object tail, buf; + Lisp_Object tail, buf, hook; int auto_saved = 0; int do_handled_files; Lisp_Object oquit; @@ -5209,8 +5209,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) /* No GCPRO needed, because (when it matters) all Lisp_Object variables point to non-strings reached from Vbuffer_alist. */ - if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, intern ("auto-save-hook")); + hook = intern ("auto-save-hook"); + Frun_hooks (1, &hook); if (STRINGP (Vauto_save_list_file_name)) { diff --git a/src/frame.c b/src/frame.c index 05938f3..0b8689d 100644 --- a/src/frame.c +++ b/src/frame.c @@ -890,7 +890,7 @@ to that frame. */) { /* Preserve prefix arg that the command loop just cleared. */ KVAR (current_kboard, Vprefix_arg) = Vcurrent_prefix_arg; - call1 (Vrun_hooks, Qmouse_leave_buffer_hook); + Frun_hooks (1, &Qmouse_leave_buffer_hook); return do_switch_frame (event, 0, 0, Qnil); } diff --git a/src/insdel.c b/src/insdel.c index ad3460f..1cbe3de 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -2137,14 +2137,14 @@ signal_before_change (EMACS_INT start_int, EMACS_INT end_int, specbind (Qinhibit_modification_hooks, Qt); - /* If buffer is unmodified, run a special hook for that case. */ + /* If buffer is unmodified, run a special hook for that case. The + check for Vfirst_change_hook is just a minor optimization. */ if (SAVE_MODIFF >= MODIFF - && !NILP (Vfirst_change_hook) - && !NILP (Vrun_hooks)) + && !NILP (Vfirst_change_hook)) { PRESERVE_VALUE; PRESERVE_START_END; - call1 (Vrun_hooks, Qfirst_change_hook); + Frun_hooks (1, &Qfirst_change_hook); } /* Now run the before-change-functions if any. */ diff --git a/src/keyboard.c b/src/keyboard.c index fc8622d..39848ee 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1492,9 +1492,6 @@ command_loop_1 (void) Vthis_command = cmd; real_this_command = cmd; - /* Note that the value cell will never directly contain nil - if the symbol is a local variable. */ - if (!NILP (Vpre_command_hook) && !NILP (Vrun_hooks)) safe_run_hooks (Qpre_command_hook); already_adjusted = 0; @@ -1541,9 +1538,6 @@ command_loop_1 (void) } KVAR (current_kboard, Vlast_prefix_arg) = Vcurrent_prefix_arg; - /* Note that the value cell will never directly contain nil - if the symbol is a local variable. */ - if (!NILP (Vpost_command_hook) && !NILP (Vrun_hooks)) safe_run_hooks (Qpost_command_hook); /* If displaying a message, resize the echo area window to fit @@ -1551,7 +1545,6 @@ command_loop_1 (void) if (!NILP (echo_area_buffer[0])) resize_echo_area_exactly (); - if (!NILP (Vdeferred_action_list)) safe_run_hooks (Qdeferred_action_function); /* If there is a prefix argument, @@ -1621,7 +1614,10 @@ command_loop_1 (void) } if (current_buffer != prev_buffer || MODIFF != prev_modiff) - call1 (Vrun_hooks, intern ("activate-mark-hook")); + { + Lisp_Object hook = intern ("activate-mark-hook"); + Frun_hooks (1, &hook); + } } Vsaved_region_selection = Qnil; @@ -1819,9 +1815,7 @@ adjust_point_for_property (EMACS_INT last_pt, int modified) static Lisp_Object safe_run_hooks_1 (void) { - if (NILP (Vrun_hooks)) - return Qnil; - return call1 (Vrun_hooks, Vinhibit_quit); + return Frun_hooks (1, &Vinhibit_quit); } /* Subroutine for safe_run_hooks: handle an error by clearing out the hook. */ @@ -10129,11 +10123,11 @@ a special event, so ignore the prefix argument and don't clear it. */) if (SYMBOLP (cmd)) { tem = Fget (cmd, Qdisabled); - if (!NILP (tem) && !NILP (Vrun_hooks)) + if (!NILP (tem)) { tem = Fsymbol_value (Qdisabled_command_function); if (!NILP (tem)) - return call1 (Vrun_hooks, Qdisabled_command_function); + return Frun_hooks (1, &Qdisabled_command_function); } } @@ -10617,6 +10611,7 @@ On such systems, Emacs starts a subshell instead of suspending. */) int old_height, old_width; int width, height; struct gcpro gcpro1; + Lisp_Object hook; if (tty_list && tty_list->next) error ("There are other tty frames open; close them before suspending Emacs"); @@ -10625,8 +10620,8 @@ On such systems, Emacs starts a subshell instead of suspending. */) CHECK_STRING (stuffstring); /* Run the functions in suspend-hook. */ - if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, intern ("suspend-hook")); + hook = intern ("suspend-hook"); + Frun_hooks (1, &hook); GCPRO1 (stuffstring); get_tty_size (fileno (CURTTY ()->input), &old_width, &old_height); @@ -10650,8 +10645,8 @@ On such systems, Emacs starts a subshell instead of suspending. */) change_frame_size (SELECTED_FRAME (), height, width, 0, 0, 0); /* Run suspend-resume-hook. */ - if (!NILP (Vrun_hooks)) - call1 (Vrun_hooks, intern ("suspend-resume-hook")); + hook = intern ("suspend-resume-hook"); + Frun_hooks (1, &hook); UNGCPRO; return Qnil; diff --git a/src/minibuf.c b/src/minibuf.c index b6b79be..7bed9bb 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -649,12 +649,7 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, if (STRINGP (input_method) && !NILP (Ffboundp (Qactivate_input_method))) call1 (Qactivate_input_method, input_method); - /* Run our hook, but not if it is empty. - (run-hooks would do nothing if it is empty, - but it's important to save time here in the usual case.) */ - if (!NILP (Vminibuffer_setup_hook) && !EQ (Vminibuffer_setup_hook, Qunbound) - && !NILP (Vrun_hooks)) - call1 (Vrun_hooks, Qminibuffer_setup_hook); + Frun_hooks (1, &Qminibuffer_setup_hook); /* Don't allow the user to undo past this point. */ BVAR (current_buffer, undo_list) = Qnil; @@ -806,10 +801,7 @@ get_minibuffer (int depth) static Lisp_Object run_exit_minibuf_hook (Lisp_Object data) { - if (!NILP (Vminibuffer_exit_hook) && !EQ (Vminibuffer_exit_hook, Qunbound) - && !NILP (Vrun_hooks)) safe_run_hooks (Qminibuffer_exit_hook); - return Qnil; } diff --git a/src/term.c b/src/term.c index e84bbe1..b3392df 100644 --- a/src/term.c +++ b/src/term.c @@ -2500,13 +2500,10 @@ A suspended tty may be resumed by calling `resume-tty' on it. */) /* First run `suspend-tty-functions' and then clean up the tty state because `suspend-tty-functions' might need to change the tty state. */ - if (!NILP (Vrun_hooks)) - { Lisp_Object args[2]; args[0] = intern ("suspend-tty-functions"); XSETTERMINAL (args[1], t); Frun_hook_with_args (2, args); - } reset_sys_modes (t->display_info.tty); delete_keyboard_wait_descriptor (fileno (f)); @@ -2596,9 +2593,8 @@ frame's terminal). */) init_sys_modes (t->display_info.tty); - /* Run `resume-tty-functions'. */ - if (!NILP (Vrun_hooks)) { + /* Run `resume-tty-functions'. */ Lisp_Object args[2]; args[0] = intern ("resume-tty-functions"); XSETTERMINAL (args[1], t); diff --git a/src/window.c b/src/window.c index eaa9105..9ab9fab 100644 --- a/src/window.c +++ b/src/window.c @@ -3690,10 +3690,6 @@ temp_output_buffer_show (register Lisp_Object buf) /* Run temp-buffer-show-hook, with the chosen window selected and its buffer current. */ - - if (!NILP (Vrun_hooks) - && !NILP (Fboundp (Qtemp_buffer_show_hook)) - && !NILP (Fsymbol_value (Qtemp_buffer_show_hook))) { int count = SPECPDL_INDEX (); Lisp_Object prev_window, prev_buffer; @@ -3708,7 +3704,7 @@ temp_output_buffer_show (register Lisp_Object buf) record_unwind_protect (select_window_norecord, prev_window); Fselect_window (window, Qt); Fset_buffer (w->buffer); - call1 (Vrun_hooks, Qtemp_buffer_show_hook); + Frun_hooks (1, &Qtemp_buffer_show_hook); unbind_to (count, Qnil); } } -- 1.7.4.1