From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Tom Tromey <tromey@redhat.com>
Cc: Dmitry Antipov <dmantipov@yandex.ru>, emacs-devel@gnu.org
Subject: Re: coccinelle patch suggestion
Date: Mon, 02 Jul 2012 14:12:13 -0400 [thread overview]
Message-ID: <jwvhatqrq53.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87obo22hz8.fsf@fleche.redhat.com> (Tom Tromey's message of "Fri, 29 Jun 2012 10:36:11 -0600")
> What do you think of the appended?
I think it's going in the right direction. I do wonder/worry about
handling dependencies: for the current globals.h, there's no real
problem since if the vars in it can be pretty much only missing or
extraneous but can't be incorrect (they *very* rarely change type), but
it's slightly less rare to change the type of a DEFUN'd function
(i.e. adding/removing arguments).
Stefan
> It builds for me on x86-64 Fedora 16.
> I didn't try any other platforms; there could be hiccups I suppose.
> The one wrinkle is that this makes some functions non-static.
> Tom
> b/lib-src/ChangeLog:
> 2012-06-29 Tom Tromey <tromey@redhat.com>
> * make-docfile.c (enum global_type) <FUNCTION>: New constant.
> (struct global) <value>: New field.
> (add_global): Add 'value' argument.
> (compare_globals): Sort functions at the end.
> (close_emacs_globals): New function.
> (write_globals): Handle functions.
> (scan_c_file): Call add_global for DEFUN.
> b/src/ChangeLog:
> 2012-06-29 Tom Tromey <tromey@redhat.com>
> * window.c (Fset_window_margins, Fset_window_fringes)
> (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
> * textprop.c (Fprevious_property_change): No longer static.
> * syntax.c (Fsyntax_table_p): No longer static.
> * process.c (Fget_process, Fprocess_datagram_address): No longer
> static.
> * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
> * keyboard.c (Fcommand_execute): No longer static.
> Remove EXFUN.
> * insdel.c (Fcombine_after_change_execute): No longer static.
> * image.c (Finit_image_library): No longer static.
> * fileio.c (Fmake_symbolic_link): No longer static.
> * eval.c (Ffetch_bytecode): No longer static.
> * editfns.c (Fuser_full_name): No longer static.
> * doc.c: (Fdocumentation_property, Fsnarf_documentation): No
> longer static.
> * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
> static.
> * dired.c (Ffile_attributes): No longer static.
> * composite.c (Fcomposition_get_gstring): No longer static.
> * callproc.c (Fgetenv_internal): No longer static.
> * ccl.h: Remove EXFUNs.
> * buffer.h: Remove EXFUNs.
> * dispextern.h: Remove EXFUNs.
> * intervals.h: Remove EXFUNs.
> * fontset.h: Remove EXFUN.
> * font.h: Remove EXFUNs.
> * dosfns.c (system_process_attributes): Remove EXFUN.
> * keymap.h: Remove EXFUNs.
> * lisp.h: Remove EXFUNs.
> * w32term.h: Remove EXFUNs.
> * window.h: Remove EXFUNs.
> * xsettings.h: Remove EXFUN.
> * xterm.h: Remove EXFUN.
> diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
> index 8156db9..2a5f028 100644
> --- a/lib-src/make-docfile.c
> +++ b/lib-src/make-docfile.c
> @@ -564,6 +564,7 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
> /* The types of globals. */
> enum global_type
> {
> + FUNCTION,
> EMACS_INTEGER,
> BOOLEAN,
> LISP_OBJECT,
> @@ -575,6 +576,7 @@ struct global
> {
> enum global_type type;
> char *name;
> + int value;
> };
> /* All the variable names we saw while scanning C sources in `-g'
> @@ -584,7 +586,7 @@ int num_globals_allocated;
> struct global *globals;
> static void
> -add_global (enum global_type type, char *name)
> +add_global (enum global_type type, char *name, int value)
> {
> /* Ignore the one non-symbol that can occur. */
> if (strcmp (name, "..."))
> @@ -605,6 +607,7 @@ add_global (enum global_type type, char *name)
> globals[num_globals - 1].type = type;
> globals[num_globals - 1].name = name;
> + globals[num_globals - 1].value = value;
> }
> }
> @@ -613,13 +616,29 @@ compare_globals (const void *a, const void *b)
> {
> const struct global *ga = a;
> const struct global *gb = b;
> +
> + if (ga->type == FUNCTION)
> + {
> + if (gb->type != FUNCTION)
> + return 1;
> + }
> + else if (gb->type == FUNCTION)
> + return -1;
> +
> return strcmp (ga->name, gb->name);
> }
> static void
> +close_emacs_globals (void)
> +{
> + fprintf (outfile, "};\n");
> + fprintf (outfile, "extern struct emacs_globals globals;\n");
> +}
> +
> +static void
> write_globals (void)
> {
> - int i;
> + int i, seen_defun = 0;
> qsort (globals, num_globals, sizeof (struct global), compare_globals);
> for (i = 0; i < num_globals; ++i)
> {
> @@ -636,20 +655,49 @@ write_globals (void)
> case LISP_OBJECT:
> type = "Lisp_Object";
> break;
> + case FUNCTION:
> + if (!seen_defun)
> + {
> + close_emacs_globals ();
> + fprintf (outfile, "\n");
> + seen_defun = 1;
> + }
> + break;
> default:
> fatal ("not a recognized DEFVAR_", 0);
> }
> - fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
> - fprintf (outfile, "#define %s globals.f_%s\n",
> - globals[i].name, globals[i].name);
> + if (globals[i].type != FUNCTION)
> + {
> + fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
> + fprintf (outfile, "#define %s globals.f_%s\n",
> + globals[i].name, globals[i].name);
> + }
> + else
> + {
> + /* It would be nice to have a cleaner way to deal with these
> + special hacks. */
> + if (strcmp (globals[i].name, "Fthrow") == 0
> + || strcmp (globals[i].name, "Ftop_level") == 0
> + || strcmp (globals[i].name, "Fkill_emacs") == 0)
> + fprintf (outfile, "_Noreturn ");
> + fprintf (outfile, "EXFUN (%s, ", globals[i].name);
> + if (globals[i].value == -1)
> + fprintf (outfile, "MANY");
> + else if (globals[i].value == -2)
> + fprintf (outfile, "UNEVALLED");
> + else
> + fprintf (outfile, "%d", globals[i].value);
> + fprintf (outfile, ");\n");
> + }
> +
> while (i + 1 < num_globals
> && !strcmp (globals[i].name, globals[i + 1].name))
> ++i;
> }
> - fprintf (outfile, "};\n");
> - fprintf (outfile, "extern struct emacs_globals globals;\n");
> + if (!seen_defun)
> + close_emacs_globals ();
> }
> \f
> @@ -699,6 +747,7 @@ scan_c_file (char *filename, const char *mode)
> int defvarperbufferflag = 0;
> int defvarflag = 0;
> enum global_type type = INVALID;
> + char *name;
> if (c != '\n' && c != '\r')
> {
> @@ -764,8 +813,9 @@ scan_c_file (char *filename, const char *mode)
> }
> else continue;
> - if (generate_globals && (!defvarflag || defvarperbufferflag
> - || type == INVALID))
> + if (generate_globals
> + && (!defvarflag || defvarperbufferflag || type == INVALID)
> + && !defunflag)
> continue;
> while (c != '(')
> @@ -784,7 +834,6 @@ scan_c_file (char *filename, const char *mode)
> if (generate_globals)
> {
> int i = 0;
> - char *name;
> /* Skip "," and whitespace. */
> do
> @@ -805,8 +854,12 @@ scan_c_file (char *filename, const char *mode)
> name = xmalloc (i + 1);
> memcpy (name, input_buffer, i + 1);
> - add_global (type, name);
> - continue;
> +
> + if (!defunflag)
> + {
> + add_global (type, name, 0);
> + continue;
> + }
> }
> /* DEFVAR_LISP ("name", addr, "doc")
> @@ -814,7 +867,7 @@ scan_c_file (char *filename, const char *mode)
> DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */
> if (defunflag)
> - commas = 5;
> + commas = generate_globals ? 4 : 5;
> else if (defvarperbufferflag)
> commas = 3;
> else if (defvarflag)
> @@ -841,7 +894,12 @@ scan_c_file (char *filename, const char *mode)
> scanned = fscanf (infile, "%d", &minargs);
> else /* Pick up maxargs. */
> if (c == 'M' || c == 'U') /* MANY || UNEVALLED */
> - maxargs = -1;
> + {
> + if (generate_globals)
> + maxargs = (c == 'M') ? -1 : -2;
> + else
> + maxargs = -1;
> + }
> else
> scanned = fscanf (infile, "%d", &maxargs);
> if (scanned < 0)
> @@ -854,6 +912,12 @@ scan_c_file (char *filename, const char *mode)
> c = getc (infile);
> }
> + if (generate_globals)
> + {
> + add_global (FUNCTION, name, maxargs);
> + continue;
> + }
> +
> while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
> c = getc (infile);
> diff --git a/src/buffer.c b/src/buffer.c
> index 89a4e26..936f1a7 100644
> --- a/src/buffer.c
> +++ b/src/buffer.c
> @@ -107,8 +107,6 @@ static char buffer_permanent_local_flags[MAX_PER_BUFFER_VARS];
> int last_per_buffer_idx;
> -static Lisp_Object Fset_buffer_major_mode (Lisp_Object);
> -static Lisp_Object Fdelete_overlay (Lisp_Object);
> static void call_overlay_mod_hooks (Lisp_Object list, Lisp_Object overlay,
> int after, Lisp_Object arg1,
> Lisp_Object arg2, Lisp_Object arg3);
> diff --git a/src/buffer.h b/src/buffer.h
> index b1ace46..a12406d 100644
> --- a/src/buffer.h
> +++ b/src/buffer.h
> @@ -909,11 +909,6 @@ extern void mmap_set_vars (int);
> } \
> } while (0)
> -EXFUN (Fbuffer_live_p, 1);
> -EXFUN (Fbuffer_name, 1);
> -EXFUN (Fnext_overlay_change, 1);
> -EXFUN (Fbuffer_local_value, 2);
> -
> extern Lisp_Object Qbefore_change_functions;
> extern Lisp_Object Qafter_change_functions;
> extern Lisp_Object Qfirst_change_hook;
> diff --git a/src/callproc.c b/src/callproc.c
> index 804af1e..7078099 100644
> --- a/src/callproc.c
> +++ b/src/callproc.c
> @@ -97,8 +97,6 @@ int synch_process_retcode;
> /* Nonzero if this is termination due to exit. */
> static int call_process_exited;
> -static Lisp_Object Fgetenv_internal (Lisp_Object, Lisp_Object);
> -
> static Lisp_Object
> call_process_kill (Lisp_Object fdpid)
> {
> diff --git a/src/ccl.h b/src/ccl.h
> index f55b295..7113917 100644
> --- a/src/ccl.h
> +++ b/src/ccl.h
> @@ -1,6 +1,6 @@
> /* Header for CCL (Code Conversion Language) interpreter.
> Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
> - 2005, 2006, 2007, 2008, 2009, 2010, 2011
> + 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
> National Institute of Advanced Industrial Science and Technology (AIST)
> Registration Number H14PRO021
> Copyright (C) 2003
> @@ -101,8 +101,6 @@ extern void ccl_driver (struct ccl_program *, int *, int *, int, int,
> extern Lisp_Object Qccl, Qcclp;
> -EXFUN (Fccl_program_p, 1);
> -
> #define CHECK_CCL_PROGRAM(x) \
> do { \
> if (NILP (Fccl_program_p (x))) \
> diff --git a/src/composite.c b/src/composite.c
> index 79942ac..6c24bc8 100644
> --- a/src/composite.c
> +++ b/src/composite.c
> @@ -158,9 +158,6 @@ static Lisp_Object Qauto_composition_function;
> auto-compositions. */
> #define MAX_AUTO_COMPOSITION_LOOKBACK 3
> -static Lisp_Object Fcomposition_get_gstring (Lisp_Object, Lisp_Object,
> - Lisp_Object, Lisp_Object);
> -
> /* Temporary variable used in macros COMPOSITION_XXX. */
> Lisp_Object composition_temp;
> diff --git a/src/dired.c b/src/dired.c
> index b319072..48d3da1 100644
> --- a/src/dired.c
> +++ b/src/dired.c
> @@ -88,7 +88,6 @@ static Lisp_Object Qfile_attributes;
> static Lisp_Object Qfile_attributes_lessp;
> static ptrdiff_t scmp (const char *, const char *, ptrdiff_t);
> -static Lisp_Object Ffile_attributes (Lisp_Object, Lisp_Object);
> \f
> #ifdef WINDOWSNT
> Lisp_Object
> diff --git a/src/dispextern.h b/src/dispextern.h
> index c7adc4d..4672d10 100644
> --- a/src/dispextern.h
> +++ b/src/dispextern.h
> @@ -3244,7 +3244,6 @@ void x_implicitly_set_name (struct frame *, Lisp_Object, Lisp_Object);
> extern Lisp_Object tip_frame;
> extern Window tip_window;
> -EXFUN (Fx_hide_tip, 0);
> extern void start_hourglass (void);
> extern void cancel_hourglass (void);
> extern int hourglass_shown_p;
> @@ -3356,8 +3355,6 @@ extern void produce_special_glyphs (struct it *, enum display_element_type);
> extern int tty_capable_p (struct tty_display_info *, unsigned, unsigned long, unsigned long);
> extern void set_tty_color_mode (struct tty_display_info *, struct frame *);
> extern struct terminal *get_named_tty (const char *);
> -EXFUN (Ftty_type, 1);
> -EXFUN (Fcontrolling_tty_p, 1);
> extern void create_tty_output (struct frame *);
> extern struct terminal *init_tty (const char *, const char *, int);
> extern void tty_append_glyph (struct it *);
> diff --git a/src/doc.c b/src/doc.c
> index cbfeb06..6c532e3 100644
> --- a/src/doc.c
> +++ b/src/doc.c
> @@ -42,9 +42,6 @@ static char *get_doc_string_buffer;
> static ptrdiff_t get_doc_string_buffer_size;
> static unsigned char *read_bytecode_pointer;
> -static Lisp_Object Fdocumentation_property (Lisp_Object, Lisp_Object,
> - Lisp_Object);
> -static Lisp_Object Fsnarf_documentation (Lisp_Object);
> /* readchar in lread.c calls back here to fetch the next byte.
> If UNREADFLAG is 1, we unread a byte. */
> diff --git a/src/dosfns.c b/src/dosfns.c
> index 11d2258..a952215 100644
> --- a/src/dosfns.c
> +++ b/src/dosfns.c
> @@ -540,7 +540,6 @@ system_process_attributes (Lisp_Object pid)
> int i;
> Lisp_Object cmd_str, decoded_cmd, tem;
> double pmem;
> - EXFUN (Fget_internal_run_time, 0);
> #ifndef SYSTEM_MALLOC
> extern unsigned long ret_lim_data ();
> #endif
> diff --git a/src/editfns.c b/src/editfns.c
> index 4c3b80b..8812ed9 100644
> --- a/src/editfns.c
> +++ b/src/editfns.c
> @@ -79,7 +79,6 @@ static int tm_diff (struct tm *, struct tm *);
> static void update_buffer_properties (ptrdiff_t, ptrdiff_t);
> static Lisp_Object Qbuffer_access_fontify_functions;
> -static Lisp_Object Fuser_full_name (Lisp_Object);
> /* Symbol for the text property used to mark fields. */
> diff --git a/src/eval.c b/src/eval.c
> index bff9974..906adb8 100644
> --- a/src/eval.c
> +++ b/src/eval.c
> @@ -133,7 +133,6 @@ Lisp_Object inhibit_lisp_code;
> static Lisp_Object funcall_lambda (Lisp_Object, ptrdiff_t, Lisp_Object *);
> static int interactive_p (int);
> static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args);
> -static Lisp_Object Ffetch_bytecode (Lisp_Object);
> \f
> void
> init_eval_once (void)
> diff --git a/src/fileio.c b/src/fileio.c
> index 824a921..9429570 100644
> --- a/src/fileio.c
> +++ b/src/fileio.c
> @@ -148,7 +148,6 @@ Lisp_Object Qfile_name_history;
> static Lisp_Object Qcar_less_than_car;
> -static Lisp_Object Fmake_symbolic_link (Lisp_Object, Lisp_Object, Lisp_Object);
> static int a_write (int, Lisp_Object, ptrdiff_t, ptrdiff_t,
> Lisp_Object *, struct coding_system *);
> static int e_write (int, Lisp_Object, ptrdiff_t, ptrdiff_t,
> diff --git a/src/font.h b/src/font.h
> index b058be6..adb2566 100644
> --- a/src/font.h
> +++ b/src/font.h
> @@ -734,13 +734,8 @@ struct font_data_list
> struct font_data_list *next;
> };
> -EXFUN (Ffont_spec, MANY);
> extern Lisp_Object copy_font_spec (Lisp_Object);
> extern Lisp_Object merge_font_spec (Lisp_Object, Lisp_Object);
> -EXFUN (Ffont_get, 2);
> -EXFUN (Ffont_put, 3);
> -EXFUN (Flist_fonts, 4);
> -EXFUN (Ffont_xlfd_name, 2);
> extern Lisp_Object font_make_entity (void);
> extern Lisp_Object font_make_object (int, Lisp_Object, int);
> diff --git a/src/fontset.h b/src/fontset.h
> index 6d6ad5d..3eb8d63 100644
> --- a/src/fontset.h
> +++ b/src/fontset.h
> @@ -39,7 +39,6 @@ extern Lisp_Object font_for_char (struct face *, int, int, Lisp_Object);
> extern int make_fontset_for_ascii_face (FRAME_PTR, int, struct face *);
> extern int fontset_from_font (Lisp_Object);
> extern int fs_query_fontset (Lisp_Object, int);
> -EXFUN (Fquery_fontset, 2);
> extern Lisp_Object list_fontsets (struct frame *, Lisp_Object, int);
> extern Lisp_Object Qlatin;
> diff --git a/src/image.c b/src/image.c
> index 9b1c7f1..d67faff 100644
> --- a/src/image.c
> +++ b/src/image.c
> @@ -138,7 +138,6 @@ static unsigned long lookup_rgb_color (struct frame *f, int r, int g, int b);
> static void free_color_table (void);
> static unsigned long *colors_in_color_table (int *n);
> #endif
> -static Lisp_Object Finit_image_library (Lisp_Object, Lisp_Object);
> /* Code to deal with bitmaps. Bitmaps are referenced by their bitmap
> id, which is just an int that this section returns. Bitmaps are
> diff --git a/src/insdel.c b/src/insdel.c
> index 060f83f..2074916 100644
> --- a/src/insdel.c
> +++ b/src/insdel.c
> @@ -41,8 +41,6 @@ static void insert_from_buffer_1 (struct buffer *buf,
> static void gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, int newgap);
> static void gap_right (ptrdiff_t charpos, ptrdiff_t bytepos);
> -static Lisp_Object Fcombine_after_change_execute (void);
> -
> /* List of elements of the form (BEG-UNCHANGED END-UNCHANGED CHANGE-AMOUNT)
> describing changes which happened while combine_after_change_calls
> was nonzero. We use this to decide how to call them
> diff --git a/src/intervals.h b/src/intervals.h
> index 6a2a8c9..8d2ee83 100644
> --- a/src/intervals.h
> +++ b/src/intervals.h
> @@ -308,16 +308,6 @@ extern Lisp_Object Qinvisible, Qintangible;
> /* Sticky properties. */
> extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
> -EXFUN (Fget_char_property, 3);
> -EXFUN (Fget_text_property, 3);
> -EXFUN (Ftext_properties_at, 2);
> -EXFUN (Fnext_property_change, 3);
> -EXFUN (Fadd_text_properties, 4);
> -EXFUN (Fset_text_properties, 4);
> -EXFUN (Fremove_text_properties, 4);
> -EXFUN (Fremove_list_of_text_properties, 4);
> -EXFUN (Ftext_property_any, 5);
> -EXFUN (Fprevious_single_char_property_change, 4);
> extern Lisp_Object copy_text_properties (Lisp_Object, Lisp_Object,
> Lisp_Object, Lisp_Object,
> Lisp_Object, Lisp_Object);
> diff --git a/src/keyboard.c b/src/keyboard.c
> index fccef03..65b7d53 100644
> --- a/src/keyboard.c
> +++ b/src/keyboard.c
> @@ -459,8 +459,6 @@ static void interrupt_signal (int signalnum);
> #ifdef SIGIO
> static void input_available_signal (int signo);
> #endif
> -static Lisp_Object (Fcommand_execute) (Lisp_Object, Lisp_Object, Lisp_Object,
> - Lisp_Object);
> static void handle_interrupt (void);
> static _Noreturn void quit_throw_to_read_char (int);
> static void process_special_events (void);
> @@ -1324,7 +1322,6 @@ cancel_hourglass_unwind (Lisp_Object arg)
> /* FIXME: This is wrong rather than test window-system, we should call
> a new set-selection, which will then dispatch to x-set-selection, or
> tty-set-selection, or w32-set-selection, ... */
> -EXFUN (Fwindow_system, 1);
> Lisp_Object
> command_loop_1 (void)
> diff --git a/src/keymap.c b/src/keymap.c
> index 6c59a4a..db4d5d1 100644
> --- a/src/keymap.c
> +++ b/src/keymap.c
> @@ -92,7 +92,6 @@ static Lisp_Object where_is_cache;
> /* Which keymaps are reverse-stored in the cache. */
> static Lisp_Object where_is_cache_keymaps;
> -static Lisp_Object Flookup_key (Lisp_Object, Lisp_Object, Lisp_Object);
> static Lisp_Object store_in_keymap (Lisp_Object, Lisp_Object, Lisp_Object);
> static Lisp_Object define_as_prefix (Lisp_Object, Lisp_Object);
> @@ -956,8 +955,6 @@ store_in_keymap (Lisp_Object keymap, register Lisp_Object idx, Lisp_Object def)
> return def;
> }
> -static Lisp_Object Fcopy_keymap (Lisp_Object);
> -
> static Lisp_Object
> copy_keymap_item (Lisp_Object elt)
> {
> diff --git a/src/keymap.h b/src/keymap.h
> index d9334cd..5ed70c6 100644
> --- a/src/keymap.h
> +++ b/src/keymap.h
> @@ -34,19 +34,9 @@ extern Lisp_Object Qkeymap, Qmenu_bar;
> extern Lisp_Object Qremap;
> extern Lisp_Object Qmenu_item;
> extern Lisp_Object current_global_map;
> -EXFUN (Fmake_sparse_keymap, 1);
> -EXFUN (Fkeymap_prompt, 1);
> -EXFUN (Fdefine_key, 3);
> -EXFUN (Fcommand_remapping, 3);
> -EXFUN (Fkey_binding, 4);
> -EXFUN (Fkey_description, 2);
> extern char *push_key_description (EMACS_INT, char *, int);
> -EXFUN (Fsingle_key_description, 2);
> -EXFUN (Fwhere_is_internal, 5);
> -EXFUN (Fcurrent_active_maps, 2);
> extern Lisp_Object access_keymap (Lisp_Object, Lisp_Object, int, int, int);
> extern Lisp_Object get_keymap (Lisp_Object, int, int);
> -EXFUN (Fset_keymap_parent, 2);
> extern void describe_map_tree (Lisp_Object, int, Lisp_Object, Lisp_Object,
> const char *, int, int, int, int);
> extern ptrdiff_t current_minor_maps (Lisp_Object **, Lisp_Object **);
> diff --git a/src/lisp.h b/src/lisp.h
> index cac5370..ed7b69a 100644
> --- a/src/lisp.h
> +++ b/src/lisp.h
> @@ -2308,56 +2308,12 @@ extern Lisp_Object Qinteger;
> extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
> -EXFUN (Finteractive_form, 1);
> -EXFUN (Fbyteorder, 0);
> -
> /* Defined in frame.c */
> extern Lisp_Object Qframep;
> /* Defined in data.c */
> -EXFUN (Fcar, 1);
> -EXFUN (Fcar_safe, 1);
> -EXFUN (Fcdr, 1);
> -EXFUN (Fcdr_safe, 1);
> -EXFUN (Fsetcar, 2);
> -EXFUN (Fsetcdr, 2);
> -EXFUN (Fboundp, 1);
> -EXFUN (Ffboundp, 1);
> -EXFUN (Fsymbol_function, 1);
> -EXFUN (Fsymbol_name, 1);
> extern Lisp_Object indirect_function (Lisp_Object);
> -EXFUN (Findirect_function, 2);
> -EXFUN (Ffset, 2);
> -EXFUN (Fsymbol_value, 1);
> extern Lisp_Object find_symbol_value (Lisp_Object);
> -EXFUN (Fset, 2);
> -EXFUN (Fdefault_value, 1);
> -EXFUN (Fset_default, 2);
> -EXFUN (Fdefault_boundp, 1);
> -EXFUN (Fmake_local_variable, 1);
> -EXFUN (Flocal_variable_p, 2);
> -
> -EXFUN (Faref, 2);
> -EXFUN (Faset, 3);
> -
> -EXFUN (Fstring_to_number, 2);
> -EXFUN (Fnumber_to_string, 1);
> -EXFUN (Fgtr, 2);
> -EXFUN (Flss, 2);
> -EXFUN (Fgeq, 2);
> -EXFUN (Fleq, 2);
> -EXFUN (Fzerop, 1);
> -EXFUN (Fplus, MANY);
> -EXFUN (Fminus, MANY);
> -EXFUN (Ftimes, MANY);
> -EXFUN (Fquo, MANY);
> -EXFUN (Frem, 2);
> -EXFUN (Fmax, MANY);
> -EXFUN (Fmin, MANY);
> -
> -EXFUN (Fadd1, 1);
> -EXFUN (Fsub1, 1);
> -EXFUN (Fmake_variable_buffer_local, 1);
> /* Convert the integer I to an Emacs representation, either the integer
> itself, or a cons of two or three integers, or if all else fails a float.
> @@ -2399,22 +2355,11 @@ extern void init_data (void);
> extern void swap_in_global_binding (struct Lisp_Symbol *);
> /* Defined in cmds.c */
> -EXFUN (Fend_of_line, 1);
> -EXFUN (Fforward_char, 1);
> -EXFUN (Fforward_line, 1);
> extern void syms_of_cmds (void);
> extern void keys_of_cmds (void);
> /* Defined in coding.c */
> extern Lisp_Object Qcharset;
> -EXFUN (Fcoding_system_p, 1);
> -EXFUN (Fcoding_system_base, 1);
> -EXFUN (Fcoding_system_eol_type, 1);
> -EXFUN (Fcheck_coding_system, 1);
> -EXFUN (Fread_coding_system, 2);
> -EXFUN (Fread_non_nil_coding_system, 1);
> -EXFUN (Ffind_operation_coding_system, MANY);
> -EXFUN (Fdecode_coding_string, 4);
> extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t,
> ptrdiff_t, int, int, Lisp_Object);
> extern void init_coding (void);
> @@ -2422,8 +2367,6 @@ extern void init_coding_once (void);
> extern void syms_of_coding (void);
> /* Defined in character.c */
> -EXFUN (Fchar_width, 1);
> -EXFUN (Fstring, MANY);
> extern ptrdiff_t chars_in_text (const unsigned char *, ptrdiff_t);
> extern ptrdiff_t multibyte_chars_in_text (const unsigned char *, ptrdiff_t);
> extern int multibyte_char_to_unibyte (int);
> @@ -2442,9 +2385,6 @@ struct charset;
> extern void syms_of_composite (void);
> /* Defined in syntax.c */
> -EXFUN (Fforward_word, 1);
> -EXFUN (Fskip_chars_forward, 2);
> -EXFUN (Fskip_chars_backward, 2);
> extern void init_syntax_once (void);
> extern void syms_of_syntax (void);
> @@ -2467,46 +2407,10 @@ ptrdiff_t hash_put (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object,
> EMACS_UINT);
> void init_weak_hash_tables (void);
> extern void init_fns (void);
> -EXFUN (Fmake_hash_table, MANY);
> -EXFUN (Fgethash, 3);
> -EXFUN (Fputhash, 3);
> -EXFUN (Fremhash, 2);
> -
> -EXFUN (Fidentity, 1);
> -EXFUN (Flength, 1);
> -EXFUN (Fappend, MANY);
> -EXFUN (Fconcat, MANY);
> -EXFUN (Fvconcat, MANY);
> -EXFUN (Fcopy_sequence, 1);
> -EXFUN (Fstring_make_multibyte, 1);
> -EXFUN (Fstring_make_unibyte, 1);
> -EXFUN (Fstring_as_multibyte, 1);
> -EXFUN (Fstring_as_unibyte, 1);
> -EXFUN (Fstring_to_multibyte, 1);
> -EXFUN (Fsubstring, 3);
> +
> extern Lisp_Object substring_both (Lisp_Object, ptrdiff_t, ptrdiff_t,
> ptrdiff_t, ptrdiff_t);
> -EXFUN (Fnth, 2);
> -EXFUN (Fnthcdr, 2);
> -EXFUN (Fmemq, 2);
> -EXFUN (Fassq, 2);
> -EXFUN (Fassoc, 2);
> -EXFUN (Felt, 2);
> -EXFUN (Fmember, 2);
> -EXFUN (Frassq, 2);
> -EXFUN (Fdelq, 2);
> -EXFUN (Fdelete, 2);
> -EXFUN (Fsort, 2);
> -EXFUN (Freverse, 1);
> -EXFUN (Fnreverse, 1);
> -EXFUN (Fget, 2);
> -EXFUN (Fput, 3);
> -EXFUN (Fequal, 2);
> -EXFUN (Fnconc, MANY);
> -EXFUN (Fmapcar, 2);
> -EXFUN (Fmapconcat, 3);
> extern Lisp_Object do_yes_or_no_p (Lisp_Object);
> -EXFUN (Fprovide, 2);
> extern Lisp_Object concat2 (Lisp_Object, Lisp_Object);
> extern Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object nconc2 (Lisp_Object, Lisp_Object);
> @@ -2517,20 +2421,10 @@ extern ptrdiff_t string_char_to_byte (Lisp_Object, ptrdiff_t);
> extern ptrdiff_t string_byte_to_char (Lisp_Object, ptrdiff_t);
> extern Lisp_Object string_to_multibyte (Lisp_Object);
> extern Lisp_Object string_make_unibyte (Lisp_Object);
> -EXFUN (Fcopy_alist, 1);
> -EXFUN (Fplist_get, 2);
> -EXFUN (Fplist_put, 3);
> -EXFUN (Fplist_member, 2);
> -EXFUN (Frassoc, 2);
> -EXFUN (Fstring_equal, 2);
> -EXFUN (Fcompare_strings, 7);
> -EXFUN (Fstring_lessp, 2);
> extern void syms_of_fns (void);
> /* Defined in floatfns.c */
> extern double extract_float (Lisp_Object);
> -EXFUN (Ffloat, 1);
> -EXFUN (Ftruncate, 2);
> extern void init_floatfns (void);
> extern void syms_of_floatfns (void);
> extern Lisp_Object fmod_float (Lisp_Object x, Lisp_Object y);
> @@ -2603,11 +2497,7 @@ _Noreturn void __executable_start (void);
> #endif
> extern Lisp_Object selected_frame;
> extern Lisp_Object Vwindow_system;
> -EXFUN (Fding, 1);
> -EXFUN (Fredraw_frame, 1);
> void duration_to_sec_usec (double, int *, int *);
> -EXFUN (Fsleep_for, 2);
> -EXFUN (Fredisplay, 1);
> extern Lisp_Object sit_for (Lisp_Object, int, int);
> extern void init_display (void);
> extern void syms_of_display (void);
> @@ -2684,22 +2574,14 @@ extern void refill_memory_reserve (void);
> #endif
> extern const char *pending_malloc_warning;
> extern Lisp_Object *stack_base;
> -EXFUN (Fcons, 2);
> extern Lisp_Object list1 (Lisp_Object);
> extern Lisp_Object list2 (Lisp_Object, Lisp_Object);
> extern Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
> Lisp_Object);
> -EXFUN (Flist, MANY);
> -EXFUN (Fmake_list, 2);
> extern Lisp_Object allocate_misc (void);
> -EXFUN (Fmake_vector, 2);
> -EXFUN (Fvector, MANY);
> -EXFUN (Fmake_symbol, 1);
> -EXFUN (Fmake_marker, 0);
> extern _Noreturn void string_overflow (void);
> -EXFUN (Fmake_string, 2);
> extern Lisp_Object make_string (const char *, ptrdiff_t);
> extern Lisp_Object make_unibyte_string (const char *, ptrdiff_t);
> extern Lisp_Object make_multibyte_string (const char *, ptrdiff_t, ptrdiff_t);
> @@ -2709,7 +2591,6 @@ extern Lisp_Object make_uninit_multibyte_string (EMACS_INT, EMACS_INT);
> extern Lisp_Object make_string_from_bytes (const char *, ptrdiff_t, ptrdiff_t);
> extern Lisp_Object make_specified_string (const char *,
> ptrdiff_t, ptrdiff_t, int);
> -EXFUN (Fpurecopy, 1);
> extern Lisp_Object make_pure_string (const char *, ptrdiff_t, ptrdiff_t, int);
> extern Lisp_Object make_pure_c_string (const char *data);
> @@ -2723,10 +2604,7 @@ build_string (const char *str)
> }
> extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
> -EXFUN (Fgarbage_collect, 0);
> extern void make_byte_code (struct Lisp_Vector *);
> -EXFUN (Fmake_byte_code, MANY);
> -EXFUN (Fmake_bool_vector, 2);
> extern Lisp_Object Qchar_table_extra_slots;
> extern struct Lisp_Vector *allocate_vector (EMACS_INT);
> extern struct Lisp_Vector *allocate_pseudovector (int memlen, int lisplen, int tag);
> @@ -2763,12 +2641,6 @@ extern void r_alloc_inhibit_buffer_relocation (int);
> #endif
> /* Defined in chartab.c */
> -EXFUN (Fmake_char_table, 2);
> -EXFUN (Fset_char_table_parent, 2);
> -EXFUN (Fchar_table_extra_slot, 2);
> -EXFUN (Fset_char_table_extra_slot, 3);
> -EXFUN (Fset_char_table_range, 3);
> -EXFUN (Foptimize_char_table, 2);
> extern Lisp_Object copy_char_table (Lisp_Object);
> extern Lisp_Object char_table_ref (Lisp_Object, int);
> extern Lisp_Object char_table_ref_and_range (Lisp_Object, int,
> @@ -2790,11 +2662,6 @@ extern void syms_of_chartab (void);
> /* Defined in print.c */
> extern Lisp_Object Vprin1_to_string_buffer;
> extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
> -EXFUN (Fprin1, 2);
> -EXFUN (Fprin1_to_string, 2);
> -EXFUN (Fterpri, 1);
> -EXFUN (Fprint, 2);
> -EXFUN (Ferror_message_string, 1);
> extern Lisp_Object Qstandard_output;
> extern Lisp_Object Qexternal_debugging_output;
> extern void temp_output_buffer_setup (const char *);
> @@ -2824,15 +2691,6 @@ extern ptrdiff_t evxprintf (char **, ptrdiff_t *, char const *, ptrdiff_t,
> /* Defined in lread.c. */
> extern Lisp_Object Qvariable_documentation, Qstandard_input;
> extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
> -EXFUN (Fread, 1);
> -EXFUN (Fread_from_string, 3);
> -EXFUN (Fintern, 2);
> -EXFUN (Fintern_soft, 2);
> -EXFUN (Funintern, 2);
> -EXFUN (Fload, 5);
> -EXFUN (Fget_load_suffixes, 0);
> -EXFUN (Fread_char, 3);
> -EXFUN (Fread_event, 3);
> extern Lisp_Object check_obarray (Lisp_Object);
> extern Lisp_Object intern (const char *);
> extern Lisp_Object intern_c_string (const char *);
> @@ -2872,17 +2730,10 @@ extern struct handler *handlerlist;
> should no longer be used. */
> extern Lisp_Object Vrun_hooks;
> -EXFUN (Frun_hooks, MANY);
> -EXFUN (Frun_hook_with_args, MANY);
> -EXFUN (Frun_hook_with_args_until_failure, MANY);
> extern void run_hook_with_args_2 (Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args,
> Lisp_Object (*funcall)
> (ptrdiff_t nargs, Lisp_Object *args));
> -EXFUN (Fprogn, UNEVALLED);
> -EXFUN (Finteractive_p, 0);
> -_Noreturn EXFUN (Fthrow, 2);
> -EXFUN (Fsignal, 2);
> extern _Noreturn void xsignal (Lisp_Object, Lisp_Object);
> extern _Noreturn void xsignal0 (Lisp_Object);
> extern _Noreturn void xsignal1 (Lisp_Object, Lisp_Object);
> @@ -2890,12 +2741,7 @@ extern _Noreturn void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object);
> extern _Noreturn void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object,
> Lisp_Object);
> extern _Noreturn void signal_error (const char *, Lisp_Object);
> -EXFUN (Fcommandp, 2);
> -EXFUN (Ffunctionp, 1);
> -EXFUN (Feval, 2);
> extern Lisp_Object eval_sub (Lisp_Object form);
> -EXFUN (Fapply, MANY);
> -EXFUN (Ffuncall, MANY);
> extern Lisp_Object apply1 (Lisp_Object, Lisp_Object);
> extern Lisp_Object call0 (Lisp_Object);
> extern Lisp_Object call1 (Lisp_Object, Lisp_Object);
> @@ -2905,7 +2751,6 @@ extern Lisp_Object call4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Li
> extern Lisp_Object call5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object call6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object call7 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
> -EXFUN (Fdo_auto_save, 2);
> extern Lisp_Object internal_catch (Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object);
> extern Lisp_Object internal_lisp_condition_case (Lisp_Object, Lisp_Object, Lisp_Object);
> extern Lisp_Object internal_condition_case (Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object));
> @@ -2932,57 +2777,24 @@ extern void syms_of_eval (void);
> /* Defined in editfns.c */
> extern Lisp_Object Qfield;
> -EXFUN (Fcurrent_message, 0);
> -EXFUN (Fgoto_char, 1);
> -EXFUN (Fpoint_max_marker, 0);
> -EXFUN (Fpoint, 0);
> -EXFUN (Fpoint_marker, 0);
> -EXFUN (Fline_beginning_position, 1);
> -EXFUN (Fline_end_position, 1);
> -EXFUN (Ffollowing_char, 0);
> -EXFUN (Fprevious_char, 0);
> -EXFUN (Fchar_after, 1);
> -EXFUN (Finsert, MANY);
> -EXFUN (Finsert_char, 3);
> extern void insert1 (Lisp_Object);
> -EXFUN (Feolp, 0);
> -EXFUN (Feobp, 0);
> -EXFUN (Fbolp, 0);
> -EXFUN (Fbobp, 0);
> -EXFUN (Fformat, MANY);
> -EXFUN (Fmessage, MANY);
> extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object);
> -EXFUN (Fbuffer_substring, 2);
> -EXFUN (Fbuffer_string, 0);
> extern Lisp_Object save_excursion_save (void);
> extern Lisp_Object save_restriction_save (void);
> extern Lisp_Object save_excursion_restore (Lisp_Object);
> extern Lisp_Object save_restriction_restore (Lisp_Object);
> -EXFUN (Fchar_to_string, 1);
> -EXFUN (Fdelete_region, 2);
> -EXFUN (Fnarrow_to_region, 2);
> -EXFUN (Fwiden, 0);
> -EXFUN (Fuser_login_name, 1);
> -EXFUN (Fsystem_name, 0);
> extern _Noreturn void time_overflow (void);
> -EXFUN (Fcurrent_time, 0);
> -EXFUN (Fget_internal_run_time, 0);
> extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, int);
> extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t,
> ptrdiff_t, int);
> extern void init_editfns (void);
> const char *get_system_name (void);
> extern void syms_of_editfns (void);
> -EXFUN (Fconstrain_to_field, 5);
> -EXFUN (Ffield_end, 3);
> extern void set_time_zone_rule (const char *);
> /* Defined in buffer.c */
> extern int mouse_face_overlay_overlaps (Lisp_Object);
> extern _Noreturn void nsberror (Lisp_Object);
> -EXFUN (Fset_buffer_multibyte, 1);
> -EXFUN (Foverlay_start, 1);
> -EXFUN (Foverlay_end, 1);
> extern void adjust_overlays_for_insert (ptrdiff_t, ptrdiff_t);
> extern void adjust_overlays_for_delete (ptrdiff_t, ptrdiff_t);
> extern void fix_start_end_in_overlays (ptrdiff_t, ptrdiff_t);
> @@ -2990,27 +2802,11 @@ extern void report_overlay_modification (Lisp_Object, Lisp_Object, int,
> Lisp_Object, Lisp_Object, Lisp_Object);
> extern int overlay_touches_p (ptrdiff_t);
> extern Lisp_Object Vbuffer_alist;
> -EXFUN (Fget_buffer, 1);
> -EXFUN (Fget_buffer_create, 1);
> -EXFUN (Fgenerate_new_buffer_name, 2);
> -EXFUN (Fset_buffer, 1);
> extern Lisp_Object set_buffer_if_live (Lisp_Object);
> -EXFUN (Fbarf_if_buffer_read_only, 0);
> -EXFUN (Fcurrent_buffer, 0);
> -EXFUN (Fother_buffer, 3);
> extern Lisp_Object other_buffer_safely (Lisp_Object);
> -EXFUN (Foverlay_get, 2);
> -EXFUN (Fbuffer_modified_p, 1);
> -EXFUN (Fset_buffer_modified_p, 1);
> -EXFUN (Fkill_buffer, 1);
> -EXFUN (Fkill_all_local_variables, 0);
> -EXFUN (Fbuffer_enable_undo, 1);
> -EXFUN (Ferase_buffer, 0);
> extern Lisp_Object Qpriority, Qwindow, Qbefore_string, Qafter_string;
> extern Lisp_Object get_truename_buffer (Lisp_Object);
> extern struct buffer *all_buffers;
> -EXFUN (Fprevious_overlay_change, 1);
> -EXFUN (Fbuffer_file_name, 1);
> extern void init_buffer_once (void);
> extern void init_buffer (void);
> extern void syms_of_buffer (void);
> @@ -3018,10 +2814,6 @@ extern void keys_of_buffer (void);
> /* Defined in marker.c */
> -EXFUN (Fmarker_position, 1);
> -EXFUN (Fmarker_buffer, 1);
> -EXFUN (Fcopy_marker, 2);
> -EXFUN (Fset_marker, 3);
> extern ptrdiff_t marker_position (Lisp_Object);
> extern ptrdiff_t marker_byte_position (Lisp_Object);
> extern void clear_charpos_cache (struct buffer *);
> @@ -3042,24 +2834,7 @@ extern Lisp_Object Qfile_exists_p;
> extern Lisp_Object Qfile_directory_p;
> extern Lisp_Object Qinsert_file_contents;
> extern Lisp_Object Qfile_name_history;
> -EXFUN (Ffind_file_name_handler, 2);
> -EXFUN (Ffile_name_as_directory, 1);
> -EXFUN (Fexpand_file_name, 2);
> -EXFUN (Ffile_name_nondirectory, 1);
> -EXFUN (Fsubstitute_in_file_name, 1);
> -EXFUN (Ffile_symlink_p, 1);
> -EXFUN (Fverify_visited_file_modtime, 1);
> -EXFUN (Ffile_exists_p, 1);
> -EXFUN (Ffile_name_absolute_p, 1);
> -EXFUN (Fdirectory_file_name, 1);
> -EXFUN (Ffile_name_directory, 1);
> extern Lisp_Object expand_and_dir_to_file (Lisp_Object, Lisp_Object);
> -EXFUN (Ffile_accessible_directory_p, 1);
> -EXFUN (Funhandled_file_name_directory, 1);
> -EXFUN (Ffile_directory_p, 1);
> -EXFUN (Fwrite_region, 7);
> -EXFUN (Ffile_readable_p, 1);
> -EXFUN (Fread_file_name, 6);
> extern Lisp_Object close_file_unwind (Lisp_Object);
> extern Lisp_Object restore_point_unwind (Lisp_Object);
> extern _Noreturn void report_file_error (const char *, Lisp_Object);
> @@ -3070,12 +2845,7 @@ extern Lisp_Object Qdelete_file;
> /* Defined in search.c */
> extern void shrink_regexp_cache (void);
> -EXFUN (Fstring_match, 3);
> extern void restore_search_regs (void);
> -EXFUN (Fmatch_data, 3);
> -EXFUN (Fset_match_data, 2);
> -EXFUN (Fmatch_beginning, 1);
> -EXFUN (Fmatch_end, 1);
> extern void record_unwind_save_match_data (void);
> struct re_registers;
> extern struct re_pattern_buffer *compile_pattern (Lisp_Object,
> @@ -3101,14 +2871,6 @@ extern void clear_regexp_cache (void);
> extern Lisp_Object Qcompletion_ignore_case;
> extern Lisp_Object Vminibuffer_list;
> extern Lisp_Object last_minibuf_string;
> -EXFUN (Fcompleting_read, 8);
> -EXFUN (Fread_from_minibuffer, 7);
> -EXFUN (Fread_variable, 2);
> -EXFUN (Fread_buffer, 3);
> -EXFUN (Fread_minibuffer, 2);
> -EXFUN (Feval_minibuffer, 2);
> -EXFUN (Fread_string, 5);
> -EXFUN (Fassoc_string, 3);
> extern Lisp_Object get_minibuffer (EMACS_INT);
> extern void init_minibuf_once (void);
> extern void syms_of_minibuf (void);
> @@ -3118,24 +2880,16 @@ extern void syms_of_minibuf (void);
> extern Lisp_Object Qminus, Qplus;
> extern Lisp_Object Qwhen;
> extern Lisp_Object Qcall_interactively, Qmouse_leave_buffer_hook;
> -EXFUN (Fprefix_numeric_value, 1);
> extern void syms_of_callint (void);
> /* Defined in casefiddle.c */
> extern Lisp_Object Qidentity;
> -EXFUN (Fdowncase, 1);
> -EXFUN (Fupcase, 1);
> -EXFUN (Fupcase_region, 2);
> -EXFUN (Fupcase_initials, 1);
> -EXFUN (Fupcase_initials_region, 2);
> extern void syms_of_casefiddle (void);
> extern void keys_of_casefiddle (void);
> /* Defined in casetab.c */
> -EXFUN (Fset_case_table, 1);
> -EXFUN (Fset_standard_case_table, 1);
> extern void init_casetab_once (void);
> extern void syms_of_casetab (void);
> @@ -3148,16 +2902,9 @@ extern Lisp_Object Qdisabled, QCfilter;
> extern Lisp_Object Qup, Qdown, Qbottom;
> extern Lisp_Object Qtop;
> extern int input_pending;
> -EXFUN (Fdiscard_input, 0);
> -EXFUN (Frecursive_edit, 0);
> -_Noreturn EXFUN (Ftop_level, 0);
> extern Lisp_Object menu_bar_items (Lisp_Object);
> extern Lisp_Object tool_bar_items (Lisp_Object, int *);
> extern void discard_mouse_events (void);
> -EXFUN (Fevent_convert_list, 1);
> -EXFUN (Fread_key_sequence, 5);
> -EXFUN (Fset_input_interrupt_mode, 1);
> -EXFUN (Fset_input_mode, 4);
> extern Lisp_Object pending_funcalls;
> extern int detect_input_pending (void);
> extern int detect_input_pending_ignore_squeezables (void);
> @@ -3175,9 +2922,6 @@ extern void syms_of_keyboard (void);
> extern void keys_of_keyboard (void);
> /* Defined in indent.c */
> -EXFUN (Fvertical_motion, 2);
> -EXFUN (Findent_to, 2);
> -EXFUN (Fmove_to_column, 2);
> extern ptrdiff_t current_column (void);
> extern void invalidate_current_column (void);
> extern int indented_beyond_p (ptrdiff_t, ptrdiff_t, EMACS_INT);
> @@ -3195,14 +2939,6 @@ extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object);
> extern Lisp_Object get_frame_param (struct frame *, Lisp_Object);
> #endif
> extern Lisp_Object frame_buffer_predicate (Lisp_Object);
> -EXFUN (Fselect_frame, 2);
> -EXFUN (Fselected_frame, 0);
> -EXFUN (Fmake_frame_visible, 1);
> -EXFUN (Ficonify_frame, 1);
> -EXFUN (Fframe_parameter, 2);
> -EXFUN (Fmodify_frame_parameters, 2);
> -EXFUN (Fraise_frame, 1);
> -EXFUN (Fredirect_frame_focus, 2);
> extern void frames_discard_buffer (Lisp_Object);
> extern void syms_of_frame (void);
> @@ -3219,7 +2955,6 @@ extern Lisp_Object Qfile_name_handler_alist;
> extern void fatal_error_signal (int);
> #endif
> extern Lisp_Object Qkill_emacs;
> -_Noreturn EXFUN (Fkill_emacs, 1);
> #if HAVE_SETLOCALE
> void fixup_locale (void);
> void synchronize_system_messages_locale (void);
> @@ -3249,10 +2984,6 @@ extern int running_asynch_code;
> /* Defined in process.c. */
> extern Lisp_Object QCtype, Qlocal;
> -EXFUN (Fget_buffer_process, 1);
> -EXFUN (Fprocess_status, 1);
> -EXFUN (Fkill_process, 2);
> -EXFUN (Fwaiting_for_user_input_p, 0);
> extern Lisp_Object Qprocessp;
> extern void kill_buffer_processes (Lisp_Object);
> extern int wait_reading_process_output (intmax_t, int, int, int,
> @@ -3278,7 +3009,6 @@ extern void init_process (void);
> extern void syms_of_process (void);
> extern void setup_process_coding_systems (Lisp_Object);
> -EXFUN (Fcall_process, MANY);
> #ifndef DOS_NT
> _Noreturn
> #endif
> @@ -3290,7 +3020,6 @@ extern void syms_of_callproc (void);
> /* Defined in doc.c */
> extern Lisp_Object Qfunction_documentation;
> -EXFUN (Fsubstitute_command_keys, 1);
> extern Lisp_Object read_doc_string (Lisp_Object);
> extern Lisp_Object get_doc_string (Lisp_Object, int, int);
> extern void syms_of_doc (void);
> @@ -3309,15 +3038,12 @@ extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object,
> /* Defined in macros.c */
> extern Lisp_Object Qexecute_kbd_macro;
> -EXFUN (Fexecute_kbd_macro, 3);
> -EXFUN (Fcancel_kbd_macro_events, 0);
> extern void init_macros (void);
> extern void syms_of_macros (void);
> /* Defined in undo.c */
> extern Lisp_Object Qapply;
> extern Lisp_Object Qinhibit_read_only;
> -EXFUN (Fundo_boundary, 0);
> extern void truncate_undo_list (struct buffer *);
> extern void record_marker_adjustment (Lisp_Object, ptrdiff_t);
> extern void record_insert (ptrdiff_t, ptrdiff_t);
> @@ -3334,21 +3060,12 @@ extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
> extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
> extern Lisp_Object Qminibuffer_prompt;
> -EXFUN (Fnext_single_property_change, 4);
> -EXFUN (Fnext_single_char_property_change, 4);
> -EXFUN (Fprevious_single_property_change, 4);
> -EXFUN (Fget_text_property, 3);
> -EXFUN (Fput_text_property, 5);
> -EXFUN (Fprevious_char_property_change, 2);
> -EXFUN (Fnext_char_property_change, 2);
> extern void report_interval_modification (Lisp_Object, Lisp_Object);
> /* Defined in menu.c */
> extern void syms_of_menu (void);
> /* Defined in xmenu.c */
> -EXFUN (Fx_popup_menu, 2);
> -EXFUN (Fx_popup_dialog, 3);
> extern void syms_of_xmenu (void);
> /* Defined in termchar.h */
> @@ -3385,7 +3102,6 @@ extern ptrdiff_t emacs_write (int, const char *, ptrdiff_t);
> enum { READLINK_BUFSIZE = 1024 };
> extern char *emacs_readlink (const char *, char [READLINK_BUFSIZE]);
> -EXFUN (Funlock_buffer, 0);
> extern void unlock_all_files (void);
> extern void lock_file (Lisp_Object);
> extern void unlock_file (Lisp_Object);
> @@ -3419,8 +3135,6 @@ extern _Noreturn void fatal (const char *msgid, ...)
> ATTRIBUTE_FORMAT_PRINTF (1, 2);
> /* Defined in terminal.c */
> -EXFUN (Fframe_terminal, 1);
> -EXFUN (Fdelete_terminal, 2);
> extern void syms_of_terminal (void);
> /* Defined in font.c */
> @@ -3433,8 +3147,6 @@ extern void syms_of_fontset (void);
> /* Defined in xfns.c, w32fns.c, or macfns.c */
> extern Lisp_Object Qfont_param;
> -EXFUN (Fxw_display_color_p, 1);
> -EXFUN (Fx_focus_frame, 1);
> #endif
> /* Defined in xfaces.c */
> @@ -3447,8 +3159,6 @@ extern Lisp_Object QCfamily, QCweight, QCslant;
> extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground;
> extern Lisp_Object Vface_alternative_font_family_alist;
> extern Lisp_Object Vface_alternative_font_registry_alist;
> -EXFUN (Fclear_face_cache, 1);
> -EXFUN (Fx_load_color_file, 1);
> extern void syms_of_xfaces (void);
> #ifdef HAVE_X_WINDOWS
> @@ -3470,11 +3180,6 @@ extern void syms_of_xterm (void);
> extern char *x_get_keysym_name (int);
> #endif /* HAVE_WINDOW_SYSTEM */
> -#ifdef MSDOS
> -/* Defined in msdos.c */
> -EXFUN (Fmsdos_downcase_filename, 1);
> -#endif
> -
> #ifdef HAVE_LIBXML2
> /* Defined in xml.c */
> extern void syms_of_xml (void);
> diff --git a/src/nsterm.h b/src/nsterm.h
> index 9158b78..80d25d6 100644
> --- a/src/nsterm.h
> +++ b/src/nsterm.h
> @@ -707,8 +707,6 @@ extern void ns_term_shutdown (int sig);
> #define NS_DUMPGLYPH_MOUSEFACE 3
> -EXFUN (Fx_display_grayscale_p, 1);
> -EXFUN (Fx_display_planes, 1);
> /* In nsfont, called from fontset.c */
> extern void nsfont_make_fontset_for_font (Lisp_Object name,
> diff --git a/src/process.c b/src/process.c
> index de7fc14..b30e87c 100644
> --- a/src/process.c
> +++ b/src/process.c
> @@ -249,7 +249,6 @@ static int process_output_skip;
> #define process_output_delay_count 0
> #endif
> -static Lisp_Object Fget_process (Lisp_Object);
> static void create_process (Lisp_Object, char **, Lisp_Object);
> #ifdef SIGIO
> static int keyboard_bit_set (SELECT_TYPE *);
> @@ -1089,10 +1088,6 @@ DEFUN ("process-query-on-exit-flag",
> return (XPROCESS (process)->kill_without_query ? Qnil : Qt);
> }
> -#ifdef DATAGRAM_SOCKETS
> -static Lisp_Object Fprocess_datagram_address (Lisp_Object);
> -#endif
> -
> DEFUN ("process-contact", Fprocess_contact, Sprocess_contact,
> 1, 2, 0,
> doc: /* Return the contact info of PROCESS; t for a real child.
> diff --git a/src/syntax.c b/src/syntax.c
> index 1ad6683..e7e68e2 100644
> --- a/src/syntax.c
> +++ b/src/syntax.c
> @@ -143,7 +143,6 @@ static ptrdiff_t find_start_begv;
> static EMACS_INT find_start_modiff;
> -static Lisp_Object Fsyntax_table_p (Lisp_Object);
> static Lisp_Object skip_chars (int, Lisp_Object, Lisp_Object, int);
> static Lisp_Object skip_syntaxes (int, Lisp_Object, Lisp_Object);
> static Lisp_Object scan_lists (EMACS_INT, EMACS_INT, EMACS_INT, int);
> diff --git a/src/textprop.c b/src/textprop.c
> index fb58f8e..4562cc0 100644
> --- a/src/textprop.c
> +++ b/src/textprop.c
> @@ -72,9 +72,6 @@ Lisp_Object Qfront_sticky, Qrear_nonsticky;
> static Lisp_Object interval_insert_behind_hooks;
> static Lisp_Object interval_insert_in_front_hooks;
> -static Lisp_Object Fprevious_property_change (Lisp_Object, Lisp_Object,
> - Lisp_Object);
> -
> /* Signal a `text-read-only' error. This function makes it easier
> to capture that error in GDB by putting a breakpoint on it. */
> diff --git a/src/w32term.h b/src/w32term.h
> index 68e62b2..4fdf560 100644
> --- a/src/w32term.h
> +++ b/src/w32term.h
> @@ -688,9 +688,6 @@ struct face;
> XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *);
> struct frame * check_x_frame (Lisp_Object);
> -EXFUN (Fx_display_color_p, 1);
> -EXFUN (Fx_display_grayscale_p, 1);
> -
> typedef DWORD (WINAPI * ClipboardSequence_Proc) (void);
> typedef BOOL (WINAPI * AppendMenuW_Proc) (
> IN HMENU,
> diff --git a/src/window.c b/src/window.c
> index 9d78a3e..dc8539f 100644
> --- a/src/window.c
> +++ b/src/window.c
> @@ -2873,13 +2873,6 @@ adjust_window_margins (struct window *w)
> return 1;
> }
> \f
> -static Lisp_Object Fset_window_margins (Lisp_Object, Lisp_Object, Lisp_Object);
> -static Lisp_Object Fset_window_fringes (Lisp_Object, Lisp_Object, Lisp_Object,
> - Lisp_Object);
> -static Lisp_Object Fset_window_scroll_bars (Lisp_Object, Lisp_Object,
> - Lisp_Object, Lisp_Object);
> -static Lisp_Object Fset_window_vscroll (Lisp_Object, Lisp_Object, Lisp_Object);
> -
> /* The following three routines are needed for running a window's
> configuration change hook. */
> static void
> diff --git a/src/window.h b/src/window.h
> index 50bd713..fd4f755 100644
> --- a/src/window.h
> +++ b/src/window.h
> @@ -814,14 +814,9 @@ extern Lisp_Object Vmouse_window;
> extern Lisp_Object Vmouse_event;
> -EXFUN (Fnext_window, 3);
> -EXFUN (Fselect_window, 2);
> -EXFUN (Fset_window_buffer, 3);
> -EXFUN (Fset_window_point, 2);
> extern Lisp_Object make_window (void);
> extern Lisp_Object window_from_coordinates (struct frame *, int, int,
> enum window_part *, int);
> -EXFUN (Fwindow_dedicated_p, 1);
> extern void resize_frame_windows (struct frame *, int, int);
> extern void delete_all_child_windows (Lisp_Object);
> extern void freeze_window_starts (struct frame *, int);
> @@ -892,21 +887,10 @@ struct glyph *get_phys_cursor_glyph (struct window *w);
> extern Lisp_Object Qwindowp, Qwindow_live_p;
> extern Lisp_Object Vwindow_list;
> -EXFUN (Fwindow_buffer, 1);
> -EXFUN (Fget_buffer_window, 2);
> -EXFUN (Fwindow_minibuffer_p, 1);
> -EXFUN (Fselected_window, 0);
> -EXFUN (Fframe_root_window, 1);
> -EXFUN (Fframe_first_window, 1);
> -EXFUN (Fset_frame_selected_window, 3);
> -EXFUN (Fset_window_configuration, 1);
> -EXFUN (Fcurrent_window_configuration, 1);
> extern int compare_window_configurations (Lisp_Object, Lisp_Object, int);
> -EXFUN (Fpos_visible_in_window_p, 3);
> extern void mark_window_cursors_off (struct window *);
> extern int window_internal_height (struct window *);
> extern int window_body_cols (struct window *w);
> -EXFUN (Frecenter, 1);
> extern void temp_output_buffer_show (Lisp_Object);
> extern void replace_buffer_in_windows (Lisp_Object);
> extern void replace_buffer_in_windows_safely (Lisp_Object);
> diff --git a/src/xsettings.h b/src/xsettings.h
> index d6b0c09..10dc7ef 100644
> --- a/src/xsettings.h
> +++ b/src/xsettings.h
> @@ -20,8 +20,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
> #ifndef XSETTINGS_H
> #define XSETTINGS_H
> -EXFUN (Ftool_bar_get_system_style, 0);
> -
> extern void xsettings_initialize (struct x_display_info *dpyinfo);
> extern void xft_settings_event (struct x_display_info *dpyinfo,
> XEvent *);
> diff --git a/src/xterm.h b/src/xterm.h
> index 68e0372..573d8bf 100644
> --- a/src/xterm.h
> +++ b/src/xterm.h
> @@ -937,7 +937,6 @@ void x_handle_property_notify (XPropertyEvent *);
> /* From xfns.c. */
> struct frame *check_x_frame (Lisp_Object);
> -EXFUN (Fx_display_grayscale_p, 1);
> extern void x_free_gcs (struct frame *);
> /* From xrdb.c. */
next prev parent reply other threads:[~2012-07-02 18:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-27 17:12 coccinelle patch suggestion Dan Nicolaescu
2012-06-27 21:03 ` Andreas Schwab
2012-06-28 0:06 ` John Wiegley
2012-06-28 12:39 ` Dmitry Antipov
2012-06-28 18:05 ` Stefan Monnier
2012-06-29 16:36 ` Tom Tromey
2012-07-02 18:12 ` Stefan Monnier [this message]
2012-07-02 19:05 ` Tom Tromey
2012-07-03 13:24 ` Stefan Monnier
2012-07-02 15:40 ` Samuel Bronson
2012-07-02 17:11 ` Tom Tromey
2012-06-27 21:24 ` Stefan Monnier
2012-06-27 21:45 ` Dan Nicolaescu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvhatqrq53.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=dmantipov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.