From a3689d3c661fe36df971c875760f8d500b5ae994 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 25 Jan 2015 08:33:41 -0800 Subject: 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 --- src/minibuf.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'src/minibuf.c') diff --git a/src/minibuf.c b/src/minibuf.c index 0d6e2c79813..3408bb995c6 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1131,9 +1131,8 @@ function, instead of the usual behavior. */) } AUTO_STRING (format, "%s (default %s): "); - prompt = Fformat (3, ((Lisp_Object []) - {format, prompt, - CONSP (def) ? XCAR (def) : def})); + prompt = CALLN (Fformat, format, prompt, + CONSP (def) ? XCAR (def) : def); } result = Fcompleting_read (prompt, intern ("internal-complete-buffer"), @@ -1141,8 +1140,7 @@ function, instead of the usual behavior. */) Qbuffer_name_history, def, Qnil); } else - result = Ffuncall (4, ((Lisp_Object []) - { Vread_buffer_function, prompt, def, require_match })); + result = call3 (Vread_buffer_function, prompt, def, require_match); return unbind_to (count, result); } @@ -1662,17 +1660,10 @@ Completion ignores case if the ambient value of See also `completing-read-function'. */) (Lisp_Object prompt, Lisp_Object collection, Lisp_Object predicate, Lisp_Object require_match, Lisp_Object initial_input, Lisp_Object hist, Lisp_Object def, Lisp_Object inherit_input_method) { - Lisp_Object args[9]; - args[0] = Fsymbol_value (intern ("completing-read-function")); - args[1] = prompt; - args[2] = collection; - args[3] = predicate; - args[4] = require_match; - args[5] = initial_input; - args[6] = hist; - args[7] = def; - args[8] = inherit_input_method; - return Ffuncall (9, args); + return CALLN (Ffuncall, + Fsymbol_value (intern ("completing-read-function")), + prompt, collection, predicate, require_match, initial_input, + hist, def, inherit_input_method); } /* Test whether TXT is an exact completion. */ -- cgit v1.2.1