From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: coccinelle patch suggestion Date: Mon, 02 Jul 2012 14:12:13 -0400 Message-ID: References: <4FEC506D.90408@yandex.ru> <87obo22hz8.fsf@fleche.redhat.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1341252764 20234 80.91.229.3 (2 Jul 2012 18:12:44 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 2 Jul 2012 18:12:44 +0000 (UTC) Cc: Dmitry Antipov , emacs-devel@gnu.org To: Tom Tromey Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jul 02 20:12:41 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Sll71-0000Hb-M3 for ged-emacs-devel@m.gmane.org; Mon, 02 Jul 2012 20:12:40 +0200 Original-Received: from localhost ([::1]:49077 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sll70-00041T-Gk for ged-emacs-devel@m.gmane.org; Mon, 02 Jul 2012 14:12:38 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:59556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sll6r-00041E-2j for emacs-devel@gnu.org; Mon, 02 Jul 2012 14:12:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sll6l-0003ZY-H1 for emacs-devel@gnu.org; Mon, 02 Jul 2012 14:12:28 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:52858) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sll6l-0003ZB-3C for emacs-devel@gnu.org; Mon, 02 Jul 2012 14:12:23 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EAG6Zu09FxKFY/2dsb2JhbABEtBGBCIIVAQEEARoBAwkvIwULCzQSFBgNJBMJiAAFugmLCIU8A6AVgx6BWIMFgToEFg X-IronPort-AV: E=Sophos;i="4.75,637,1330923600"; d="scan'208";a="192490973" Original-Received: from 69-196-161-88.dsl.teksavvy.com (HELO pastel.home) ([69.196.161.88]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 02 Jul 2012 14:12:19 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id B21ED5976E; Mon, 2 Jul 2012 14:12:13 -0400 (EDT) In-Reply-To: <87obo22hz8.fsf@fleche.redhat.com> (Tom Tromey's message of "Fri, 29 Jun 2012 10:36:11 -0600") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:151371 Archived-At: > 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 > * make-docfile.c (enum global_type) : New constant. > (struct global) : 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 > * 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 (); > } > > @@ -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); > > #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); > > 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; > } > > -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 . */ > #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. */