Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
dee091a3
Commit
dee091a3
authored
Mar 23, 2011
by
Julien Danjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use Frun_hooks rather than calling Vrun_hooks manually
parent
904a432c
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
91 additions
and
92 deletions
+91
-92
src/ChangeLog
src/ChangeLog
+18
-0
src/buffer.c
src/buffer.c
+1
-2
src/callint.c
src/callint.c
+1
-2
src/cmds.c
src/cmds.c
+1
-1
src/editfns.c
src/editfns.c
+14
-11
src/emacs.c
src/emacs.c
+3
-2
src/fileio.c
src/fileio.c
+3
-3
src/frame.c
src/frame.c
+1
-1
src/insdel.c
src/insdel.c
+4
-4
src/keyboard.c
src/keyboard.c
+15
-20
src/minibuf.c
src/minibuf.c
+2
-10
src/term.c
src/term.c
+11
-15
src/window.c
src/window.c
+17
-21
No files found.
src/ChangeLog
View file @
dee091a3
2011-03-23 Julien Danjou <julien@danjou.info>
* 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-23 Paul Eggert <eggert@cs.ucla.edu>
Fix more problems found by GCC 4.5.2's static checks.
src/buffer.c
View file @
dee091a3
...
...
@@ -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. */
...
...
src/callint.c
View file @
dee091a3
...
...
@@ -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
);
}
...
...
src/cmds.c
View file @
dee091a3
...
...
@@ -501,7 +501,7 @@ internal_self_insert (int c, EMACS_INT n)
}
/* Run hooks for electric keys. */
call1
(
V
run_hooks
,
Qpost_self_insert_hook
);
F
run_hooks
(
1
,
&
Qpost_self_insert_hook
);
return
hairy
;
}
...
...
src/editfns.c
View file @
dee091a3
...
...
@@ -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
(
tem
))
{
/* 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
(
!
EQ
(
omark
,
nmark
))
call1
(
Vrun_hooks
,
intern
(
"activate-mark-hook"
));
}
/* If mark has ceased to be active, run deactivate hook. */
else
if
(
!
NILP
(
tem1
))
call1
(
Vrun_hooks
,
intern
(
"deactivate-mark-hook"
));
if
(
!
EQ
(
omark
,
nmark
))
{
tem
=
intern
(
"activate-mark-hook"
);
Frun_hooks
(
1
,
&
tem
);
}
}
/* If mark has ceased to be active, run deactivate hook. */
else
if
(
!
NILP
(
tem1
))
{
tem
=
intern
(
"deactivate-mark-hook"
);
Frun_hooks
(
1
,
&
tem
);
}
/* If buffer was visible in a window, and a different window was
...
...
src/emacs.c
View file @
dee091a3
...
...
@@ -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_
hook
s
))
call1
(
Vrun_hooks
,
intern
(
"kill-emacs-
hook
"
)
);
hook
=
intern
(
"kill-emacs-
hook
"
);
Frun_hooks
(
1
,
&
hook
);
UNGCPRO
;
...
...
src/fileio.c
View file @
dee091a3
...
...
@@ -5180,7 +5180,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
;
...
...
@@ -5210,8 +5210,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_
hook
s
))
call1
(
Vrun_hooks
,
intern
(
"auto-save-
hook
"
)
);
hook
=
intern
(
"auto-save-
hook
"
);
Frun_hooks
(
1
,
&
hook
);
if
(
STRINGP
(
Vauto_save_list_file_name
))
{
...
...
src/frame.c
View file @
dee091a3
...
...
@@ -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
(
V
run_hooks
,
Qmouse_leave_buffer_hook
);
F
run_hooks
(
1
,
&
Qmouse_leave_buffer_hook
);
return
do_switch_frame
(
event
,
0
,
0
,
Qnil
);
}
...
...
src/insdel.c
View file @
dee091a3
...
...
@@ -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
(
V
run_hooks
,
Qfirst_change_hook
);
F
run_hooks
(
1
,
&
Qfirst_change_hook
);
}
/* Now run the before-change-functions if any. */
...
...
src/keyboard.c
View file @
dee091a3
...
...
@@ -1492,10 +1492,7 @@ 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);
safe_run_hooks (Qpre_command_hook);
already_adjusted = 0;
...
...
@@ -1541,18 +1538,14 @@ 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);
safe_run_hooks (Qpost_command_hook);
/* If displaying a message, resize the echo area window to fit
that message's size exactly. */
if (!NILP (echo_area_buffer[0]))
resize_echo_area_exactly ();
if (!NILP (Vdeferred_action_list))
safe_run_hooks (Qdeferred_action_function);
safe_run_hooks (Qdeferred_action_function);
/* If there is a prefix argument,
1) We don't want Vlast_command to be ``universal-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 (V
run_hooks, Qdisabled_command_function);
return
F
run_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_
hook
s))
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_
hook
s))
call1 (Vrun_hooks, intern ("suspend-resume-
hook
")
);
hook = intern ("suspend-resume-
hook
");
Frun_hooks (1, &
hook);
UNGCPRO;
return Qnil;
...
...
src/minibuf.c
View file @
dee091a3
...
...
@@ -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
);
safe_run_hooks
(
Qminibuffer_exit_hook
);
return
Qnil
;
}
...
...
src/term.c
View file @
dee091a3
...
...
@@ -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
);
}
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,14 +2593,13 @@ frame's terminal). */)
init_sys_modes
(
t
->
display_info
.
tty
);
/* Run `resume-tty-functions'. */
if
(
!
NILP
(
Vrun_hooks
))
{
Lisp_Object
args
[
2
];
args
[
0
]
=
intern
(
"resume-tty-functions"
);
XSETTERMINAL
(
args
[
1
],
t
);
Frun_hook_with_args
(
2
,
args
);
}
{
/* Run `resume-tty-functions'. */
Lisp_Object
args
[
2
];
args
[
0
]
=
intern
(
"resume-tty-functions"
);
XSETTERMINAL
(
args
[
1
],
t
);
Frun_hook_with_args
(
2
,
args
);
}
}
set_tty_hooks
(
t
);
...
...
src/window.c
View file @
dee091a3
...
...
@@ -3690,27 +3690,23 @@ 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;
prev_window = selected_window;
XSETBUFFER (prev_buffer, old);
/* Select the window that was chosen, for running the hook.
Note: Both Fselect_window and select_window_norecord may
set-buffer to the buffer displayed in the window,
so we need to save the current buffer. --stef */
record_unwind_protect (Fset_buffer, prev_buffer);
record_unwind_protect (select_window_norecord, prev_window);
Fselect_window (window, Qt);
Fset_buffer (w->buffer);
call1 (Vrun_hooks, Qtemp_buffer_show_hook);
unbind_to (count, Qnil);
}
{
int count = SPECPDL_INDEX ();
Lisp_Object prev_window, prev_buffer;
prev_window = selected_window;
XSETBUFFER (prev_buffer, old);
/* Select the window that was chosen, for running the hook.
Note: Both Fselect_window and select_window_norecord may
set-buffer to the buffer displayed in the window,
so we need to save the current buffer. --stef */
record_unwind_protect (Fset_buffer, prev_buffer);
record_unwind_protect (select_window_norecord, prev_window);
Fselect_window (window, Qt);
Fset_buffer (w->buffer);
Frun_hooks (1, &Qtemp_buffer_show_hook);
unbind_to (count, Qnil);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment