diff options
| author | Paul Eggert | 2015-01-25 08:33:41 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-01-25 09:11:25 -0800 |
| commit | a3689d3c661fe36df971c875760f8d500b5ae994 (patch) | |
| tree | 80521f91ec481457cb7f8fcb9f88b3a42e557c8e /src/buffer.c | |
| parent | c4e54f962714056df6c57c21f694544f237d5f4c (diff) | |
| download | emacs-a3689d3c661fe36df971c875760f8d500b5ae994.tar.gz emacs-a3689d3c661fe36df971c875760f8d500b5ae994.zip | |
Count MANY function args more reliably
* alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
* buffer.c (Fbuffer_list, Fkill_buffer):
* callint.c (read_file_name, Fcall_interactively):
* charset.c (Fset_charset_priority, syms_of_charset):
* chartab.c (uniprop_encode_value_numeric):
* coding.c (syms_of_coding):
* composite.c (syms_of_composite):
* data.c (wrong_range):
* dbusbind.c (syms_of_dbusbind):
* dired.c (file_attributes):
* editfns.c (Fdecode_time, update_buffer_properties, format2):
* eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
(call4, call5, call6, call7):
* fileio.c (Finsert_file_contents, choose_write_coding_system)
(Fcar_less_than_car, build_annotations, auto_save_error):
* filelock.c (get_boot_time):
* fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
(maybe_resize_hash_table, secure_hash):
* font.c (font_style_to_value, font_open_by_name, Flist_fonts):
* fontset.c (fontset_add, Fset_fontset_font):
* ftfont.c (ftfont_lookup_cache):
* gtkutil.c (xg_get_font):
* insdel.c (signal_before_change, signal_after_change):
* keymap.c (append_key):
* lread.c (load_warn_old_style_backquotes, Fload, init_lread):
* minibuf.c (Fread_buffer):
* print.c (print_preprocess):
* process.c (Fformat_network_address, Fmake_network_process)
(server_accept_connection):
* sound.c (Fplay_sound_internal):
* term.c (Fsuspend_tty, Fresume_tty):
* window.c (window_list):
* xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
(message_with_string):
* xfaces.c (Fx_list_fonts):
* xfont.c (syms_of_xfont):
* xselect.c (x_handle_selection_request)
(x_handle_selection_clear, x_clear_frame_selections)
(x_clipboard_manager_error_1):
Prefer CALLMANY and CALLN to counting args by hand.
* doc.c (reread_doc_file): Remove unused code.
* fns.c (concat2, concat3): Redo to avoid need for local-var vector.
(cmpfn_user_defined, hashfn_user_defined, Fmaphash):
Prefer call1 and call2 to Ffuncall.
* keyboard.c (safe_run_hook_funcall, safe_run_hooks):
Use struct literal rather than a local var, for simplicity.
* keymap.c (where_is_internal): Use NULL rather than a pointer
to unused args.
* lisp.h (CALLMANY, CALLN): New macros.
* sound.c (Fplay_sound_internal): Coalesce duplicate code.
Fixes: bug#19634
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/buffer.c b/src/buffer.c index d0ffe67d954..67eda3ee89e 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -387,7 +387,6 @@ followed by the rest of the buffers. */) | |||
| 387 | if (FRAMEP (frame)) | 387 | if (FRAMEP (frame)) |
| 388 | { | 388 | { |
| 389 | Lisp_Object framelist, prevlist, tail; | 389 | Lisp_Object framelist, prevlist, tail; |
| 390 | Lisp_Object args[3]; | ||
| 391 | 390 | ||
| 392 | framelist = Fcopy_sequence (XFRAME (frame)->buffer_list); | 391 | framelist = Fcopy_sequence (XFRAME (frame)->buffer_list); |
| 393 | prevlist = Fnreverse (Fcopy_sequence | 392 | prevlist = Fnreverse (Fcopy_sequence |
| @@ -408,10 +407,7 @@ followed by the rest of the buffers. */) | |||
| 408 | tail = XCDR (tail); | 407 | tail = XCDR (tail); |
| 409 | } | 408 | } |
| 410 | 409 | ||
| 411 | args[0] = framelist; | 410 | return CALLN (Fnconc, framelist, general, prevlist); |
| 412 | args[1] = general; | ||
| 413 | args[2] = prevlist; | ||
| 414 | return Fnconc (3, args); | ||
| 415 | } | 411 | } |
| 416 | else | 412 | else |
| 417 | return general; | 413 | return general; |
| @@ -1654,15 +1650,14 @@ cleaning up all windows currently displaying the buffer to be killed. */) | |||
| 1654 | /* Run hooks with the buffer to be killed the current buffer. */ | 1650 | /* Run hooks with the buffer to be killed the current buffer. */ |
| 1655 | { | 1651 | { |
| 1656 | ptrdiff_t count = SPECPDL_INDEX (); | 1652 | ptrdiff_t count = SPECPDL_INDEX (); |
| 1657 | Lisp_Object arglist[1]; | ||
| 1658 | 1653 | ||
| 1659 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); | 1654 | record_unwind_protect (save_excursion_restore, save_excursion_save ()); |
| 1660 | set_buffer_internal (b); | 1655 | set_buffer_internal (b); |
| 1661 | 1656 | ||
| 1662 | /* First run the query functions; if any query is answered no, | 1657 | /* First run the query functions; if any query is answered no, |
| 1663 | don't kill the buffer. */ | 1658 | don't kill the buffer. */ |
| 1664 | arglist[0] = Qkill_buffer_query_functions; | 1659 | tem = CALLN (Frun_hook_with_args_until_failure, |
| 1665 | tem = Frun_hook_with_args_until_failure (1, arglist); | 1660 | Qkill_buffer_query_functions); |
| 1666 | if (NILP (tem)) | 1661 | if (NILP (tem)) |
| 1667 | return unbind_to (count, Qnil); | 1662 | return unbind_to (count, Qnil); |
| 1668 | 1663 | ||