aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2014-06-17 09:09:19 -0700
committerPaul Eggert2014-06-17 09:09:19 -0700
commit73bfe891e2cf3e9b693938fe94c1ead1bc9b318d (patch)
treeb666e09276fdb67e80bdf05fa94649d98edb2b2f /src
parent319e8ddc53c72c94b570318adbb9726f1ae0418a (diff)
downloademacs-73bfe891e2cf3e9b693938fe94c1ead1bc9b318d.tar.gz
emacs-73bfe891e2cf3e9b693938fe94c1ead1bc9b318d.zip
Omit redundant extern decls.
Most of this patch is from Dmitry Antipov, in: http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html * configure.ac (WERROR_CFLAGS): Add -Wredundant-decls. * lib-src/emacsclient.c (getenv): Remove decl. * lib-src/make-docfile.c (write_globals): Add ATTRIBUTE_CONST for Fbyteorder, Ftool_bar_height, Fmax_char, Fidentity. * lwlib/lwlib-Xm.c (lw_motif_widget_p, xm_update_one_value) (xm_create_dialog, xm_destroy_instance, xm_popup_menu) (xm_set_keyboard_focus, xm_set_main_areas): Remove decls. * src/commands.h (update_mode_lines): * src/frame.h (Qbackground_color, Qforeground_color) (x_set_menu_bar_lines): * src/ftfont.c (ftfont_font_format): * src/intervals.h (Qkeymap, Qfont): * src/keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function): * src/lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump) (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp) (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p) (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object) (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite) (Fidentity, extract_float, init_display, syms_of_display, Qdisplay): (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref) (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop) (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio) (Qtool_bar, Qheader_line): * src/macros.c (Fexecute_kbd_macro): * src/xdisp.c (Ftool_bar_height, Ftool_bar_height): * src/xterm.c (x_delete_terminal, XSetIMValues): * src/xterm.h (x_set_window_size, x_query_color, x_get_focus_frame) (x_implicitly_set_name, popup_activated) (widget_store_internal_border): Remove redundant decls. * src/frame.c [USE_X_TOOLKIT]: Include widget.h. * src/keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit): Remove _Noreturn, as make-docfile now does that for us. * src/lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile. (Qregion_extract_function): New decl. * src/window.c, src/xfns.c: Include menu.h.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog35
-rw-r--r--src/commands.h4
-rw-r--r--src/frame.c3
-rw-r--r--src/frame.h2
-rw-r--r--src/ftfont.c2
-rw-r--r--src/intervals.h2
-rw-r--r--src/keyboard.c8
-rw-r--r--src/lisp.h60
-rw-r--r--src/macros.c2
-rw-r--r--src/window.c1
-rw-r--r--src/xdisp.c5
-rw-r--r--src/xfns.c1
-rw-r--r--src/xterm.c14
-rw-r--r--src/xterm.h14
14 files changed, 62 insertions, 91 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7917953d09a..142415622ff 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,38 @@
12014-06-17 Paul Eggert <eggert@cs.ucla.edu>
2
3 Omit redundant extern decls.
4 Most of this patch is from Dmitry Antipov, in:
5 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
6 * commands.h (update_mode_lines):
7 * frame.h (Qbackground_color, Qforeground_color)
8 (x_set_menu_bar_lines):
9 * ftfont.c (ftfont_font_format):
10 * intervals.h (Qkeymap, Qfont):
11 * keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
12 * lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
13 (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
14 (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
15 (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
16 (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
17 (Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
18 (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
19 (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
20 (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
21 (Qtool_bar, Qheader_line):
22 * macros.c (Fexecute_kbd_macro):
23 * xdisp.c (Ftool_bar_height, Ftool_bar_height):
24 * xterm.c (x_delete_terminal, XSetIMValues):
25 * xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
26 (x_implicitly_set_name, popup_activated)
27 (widget_store_internal_border):
28 Remove redundant decls.
29 * frame.c [USE_X_TOOLKIT]: Include widget.h.
30 * keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
31 Remove _Noreturn, as make-docfile now does that for us.
32 * lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
33 (Qregion_extract_function): New decl.
34 * window.c, xfns.c: Include menu.h.
35
12014-06-17 Stefan Monnier <monnier@iro.umontreal.ca> 362014-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
2 37
3 * callint.c (Fcall_interactively): Fix up last change (bug#17701). 38 * callint.c (Fcall_interactively): Fix up last change (bug#17701).
diff --git a/src/commands.h b/src/commands.h
index 36e3518b5ea..1a09f683563 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -39,7 +39,3 @@ extern Lisp_Object unread_switch_frame;
39/* Nonzero if input is coming from the keyboard. */ 39/* Nonzero if input is coming from the keyboard. */
40 40
41#define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) 41#define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive)
42
43/* Set this nonzero to force reconsideration of mode line. */
44
45extern int update_mode_lines;
diff --git a/src/frame.c b/src/frame.c
index af2d3c39164..c67a233f099 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -50,6 +50,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
50#include "msdos.h" 50#include "msdos.h"
51#include "dosfns.h" 51#include "dosfns.h"
52#endif 52#endif
53#ifdef USE_X_TOOLKIT
54#include "widget.h"
55#endif
53 56
54#ifdef HAVE_NS 57#ifdef HAVE_NS
55Lisp_Object Qns_parse_geometry; 58Lisp_Object Qns_parse_geometry;
diff --git a/src/frame.h b/src/frame.h
index 44b113e3416..2da9fff2d4a 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1224,7 +1224,6 @@ extern Lisp_Object Qborder_color, Qborder_width;
1224extern Lisp_Object Qbuffer_predicate; 1224extern Lisp_Object Qbuffer_predicate;
1225extern Lisp_Object Qcursor_color, Qcursor_type; 1225extern Lisp_Object Qcursor_color, Qcursor_type;
1226extern Lisp_Object Qfont; 1226extern Lisp_Object Qfont;
1227extern Lisp_Object Qbackground_color, Qforeground_color;
1228extern Lisp_Object Qicon, Qicon_name, Qicon_type, Qicon_left, Qicon_top; 1227extern Lisp_Object Qicon, Qicon_name, Qicon_type, Qicon_left, Qicon_top;
1229extern Lisp_Object Qinternal_border_width; 1228extern Lisp_Object Qinternal_border_width;
1230extern Lisp_Object Qright_divider_width, Qbottom_divider_width; 1229extern Lisp_Object Qright_divider_width, Qbottom_divider_width;
@@ -1325,7 +1324,6 @@ extern void x_make_frame_visible (struct frame *f);
1325extern void x_make_frame_invisible (struct frame *f); 1324extern void x_make_frame_invisible (struct frame *f);
1326extern void x_iconify_frame (struct frame *f); 1325extern void x_iconify_frame (struct frame *f);
1327extern void x_set_frame_alpha (struct frame *f); 1326extern void x_set_frame_alpha (struct frame *f);
1328extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
1329extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object); 1327extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
1330extern void x_activate_menubar (struct frame *); 1328extern void x_activate_menubar (struct frame *);
1331extern void x_real_positions (struct frame *, int *, int *); 1329extern void x_real_positions (struct frame *, int *, int *);
diff --git a/src/ftfont.c b/src/ftfont.c
index 112adad8a10..0f23b086cf5 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -87,8 +87,6 @@ static Lisp_Object ftfont_lookup_cache (Lisp_Object,
87 87
88static void ftfont_filter_properties (Lisp_Object font, Lisp_Object alist); 88static void ftfont_filter_properties (Lisp_Object font, Lisp_Object alist);
89 89
90Lisp_Object ftfont_font_format (FcPattern *, Lisp_Object);
91
92#define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM)) 90#define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM))
93 91
94static struct 92static struct
diff --git a/src/intervals.h b/src/intervals.h
index e901f99747d..4e7a177140e 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -278,10 +278,8 @@ extern Lisp_Object Qpoint_entered;
278extern Lisp_Object Qmodification_hooks; 278extern Lisp_Object Qmodification_hooks;
279extern Lisp_Object Qcategory; 279extern Lisp_Object Qcategory;
280extern Lisp_Object Qlocal_map; 280extern Lisp_Object Qlocal_map;
281extern Lisp_Object Qkeymap;
282 281
283/* Visual properties text (including strings) may have. */ 282/* Visual properties text (including strings) may have. */
284extern Lisp_Object Qfont;
285extern Lisp_Object Qinvisible, Qintangible; 283extern Lisp_Object Qinvisible, Qintangible;
286 284
287/* Sticky properties. */ 285/* Sticky properties. */
diff --git a/src/keyboard.c b/src/keyboard.c
index 23f05407508..3e5e405d66e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -356,7 +356,6 @@ static Lisp_Object Qecho_keystrokes;
356static void recursive_edit_unwind (Lisp_Object buffer); 356static void recursive_edit_unwind (Lisp_Object buffer);
357static Lisp_Object command_loop (void); 357static Lisp_Object command_loop (void);
358static Lisp_Object Qcommand_execute; 358static Lisp_Object Qcommand_execute;
359struct timespec timer_check (void);
360 359
361static void echo_now (void); 360static void echo_now (void);
362static ptrdiff_t echo_length (void); 361static ptrdiff_t echo_length (void);
@@ -1216,7 +1215,7 @@ user_error (const char *msg)
1216 xsignal1 (Quser_error, build_string (msg)); 1215 xsignal1 (Quser_error, build_string (msg));
1217} 1216}
1218 1217
1219_Noreturn 1218/* _Noreturn will be added to prototype by make-docfile. */
1220DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "", 1219DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "",
1221 doc: /* Exit from the innermost recursive edit or minibuffer. */) 1220 doc: /* Exit from the innermost recursive edit or minibuffer. */)
1222 (void) 1221 (void)
@@ -1227,7 +1226,7 @@ DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0,
1227 user_error ("No recursive edit is in progress"); 1226 user_error ("No recursive edit is in progress");
1228} 1227}
1229 1228
1230_Noreturn 1229/* _Noreturn will be added to prototype by make-docfile. */
1231DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_edit, 0, 0, "", 1230DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_edit, 0, 0, "",
1232 doc: /* Abort the command that requested this recursive edit or minibuffer input. */) 1231 doc: /* Abort the command that requested this recursive edit or minibuffer input. */)
1233 (void) 1232 (void)
@@ -1314,14 +1313,11 @@ some_mouse_moved (void)
1314 1313
1315static int read_key_sequence (Lisp_Object *, int, Lisp_Object, 1314static int read_key_sequence (Lisp_Object *, int, Lisp_Object,
1316 bool, bool, bool, bool); 1315 bool, bool, bool, bool);
1317void safe_run_hooks (Lisp_Object);
1318static void adjust_point_for_property (ptrdiff_t, bool); 1316static void adjust_point_for_property (ptrdiff_t, bool);
1319 1317
1320/* The last boundary auto-added to buffer-undo-list. */ 1318/* The last boundary auto-added to buffer-undo-list. */
1321Lisp_Object last_undo_boundary; 1319Lisp_Object last_undo_boundary;
1322 1320
1323extern Lisp_Object Qregion_extract_function;
1324
1325/* FIXME: This is wrong rather than test window-system, we should call 1321/* FIXME: This is wrong rather than test window-system, we should call
1326 a new set-selection, which will then dispatch to x-set-selection, or 1322 a new set-selection, which will then dispatch to x-set-selection, or
1327 tty-set-selection, or w32-set-selection, ... */ 1323 tty-set-selection, or w32-set-selection, ... */
diff --git a/src/lisp.h b/src/lisp.h
index 72ae5a1afda..8ad8e80da4b 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -832,12 +832,13 @@ extern Lisp_Object Qnumberp, Qstringp, Qsymbolp, Qt, Qvectorp;
832extern Lisp_Object Qbool_vector_p; 832extern Lisp_Object Qbool_vector_p;
833extern Lisp_Object Qvector_or_char_table_p, Qwholenump; 833extern Lisp_Object Qvector_or_char_table_p, Qwholenump;
834extern Lisp_Object Qwindow; 834extern Lisp_Object Qwindow;
835extern Lisp_Object Ffboundp (Lisp_Object);
836extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); 835extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object);
837 836
838/* Defined in emacs.c. */ 837/* Defined in emacs.c. */
839extern bool initialized;
840extern bool might_dump; 838extern bool might_dump;
839/* True means Emacs has already been initialized.
840 Used during startup to detect startup of dumped Emacs. */
841extern bool initialized;
841 842
842/* Defined in eval.c. */ 843/* Defined in eval.c. */
843extern Lisp_Object Qautoload; 844extern Lisp_Object Qautoload;
@@ -2681,7 +2682,6 @@ CHECK_NUMBER_CDR (Lisp_Object x)
2681 Lisp_Object fnname 2682 Lisp_Object fnname
2682#else /* not _MSC_VER */ 2683#else /* not _MSC_VER */
2683#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \ 2684#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \
2684 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \
2685 static struct Lisp_Subr alignas (GCALIGNMENT) sname = \ 2685 static struct Lisp_Subr alignas (GCALIGNMENT) sname = \
2686 { { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS }, \ 2686 { { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS }, \
2687 { .a ## maxargs = fnname }, \ 2687 { .a ## maxargs = fnname }, \
@@ -3344,7 +3344,7 @@ set_sub_char_table_contents (Lisp_Object table, ptrdiff_t idx, Lisp_Object val)
3344} 3344}
3345 3345
3346/* Defined in data.c. */ 3346/* Defined in data.c. */
3347extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound; 3347extern Lisp_Object Qquote, Qunbound;
3348extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level; 3348extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
3349extern Lisp_Object Qerror, Qquit, Qargs_out_of_range; 3349extern Lisp_Object Qerror, Qquit, Qargs_out_of_range;
3350extern Lisp_Object Qvoid_variable, Qvoid_function; 3350extern Lisp_Object Qvoid_variable, Qvoid_function;
@@ -3355,26 +3355,18 @@ extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
3355extern Lisp_Object Qtext_read_only; 3355extern Lisp_Object Qtext_read_only;
3356extern Lisp_Object Qinteractive_form; 3356extern Lisp_Object Qinteractive_form;
3357extern Lisp_Object Qcircular_list; 3357extern Lisp_Object Qcircular_list;
3358extern Lisp_Object Qintegerp, Qwholenump, Qsymbolp, Qlistp, Qconsp; 3358extern Lisp_Object Qsequencep;
3359extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; 3359extern Lisp_Object Qchar_or_string_p, Qinteger_or_marker_p;
3360extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
3361extern Lisp_Object Qbuffer_or_string_p;
3362extern Lisp_Object Qfboundp; 3360extern Lisp_Object Qfboundp;
3363extern Lisp_Object Qchar_table_p, Qvector_or_char_table_p;
3364 3361
3365extern Lisp_Object Qcdr; 3362extern Lisp_Object Qcdr;
3366 3363
3367extern Lisp_Object Qrange_error, Qoverflow_error; 3364extern Lisp_Object Qrange_error, Qoverflow_error;
3368 3365
3369extern Lisp_Object Qfloatp; 3366extern Lisp_Object Qnumber_or_marker_p;
3370extern Lisp_Object Qnumberp, Qnumber_or_marker_p;
3371 3367
3372extern Lisp_Object Qbuffer, Qinteger, Qsymbol; 3368extern Lisp_Object Qbuffer, Qinteger, Qsymbol;
3373 3369
3374extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
3375
3376EXFUN (Fbyteorder, 0) ATTRIBUTE_CONST;
3377
3378/* Defined in data.c. */ 3370/* Defined in data.c. */
3379extern Lisp_Object indirect_function (Lisp_Object); 3371extern Lisp_Object indirect_function (Lisp_Object);
3380extern Lisp_Object find_symbol_value (Lisp_Object); 3372extern Lisp_Object find_symbol_value (Lisp_Object);
@@ -3421,7 +3413,6 @@ extern struct Lisp_Symbol *indirect_variable (struct Lisp_Symbol *);
3421extern _Noreturn void args_out_of_range (Lisp_Object, Lisp_Object); 3413extern _Noreturn void args_out_of_range (Lisp_Object, Lisp_Object);
3422extern _Noreturn void args_out_of_range_3 (Lisp_Object, Lisp_Object, 3414extern _Noreturn void args_out_of_range_3 (Lisp_Object, Lisp_Object,
3423 Lisp_Object); 3415 Lisp_Object);
3424extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object);
3425extern Lisp_Object do_symval_forwarding (union Lisp_Fwd *); 3416extern Lisp_Object do_symval_forwarding (union Lisp_Fwd *);
3426extern void set_internal (Lisp_Object, Lisp_Object, Lisp_Object, bool); 3417extern void set_internal (Lisp_Object, Lisp_Object, Lisp_Object, bool);
3427extern void syms_of_data (void); 3418extern void syms_of_data (void);
@@ -3440,7 +3431,6 @@ extern void init_coding_once (void);
3440extern void syms_of_coding (void); 3431extern void syms_of_coding (void);
3441 3432
3442/* Defined in character.c. */ 3433/* Defined in character.c. */
3443EXFUN (Fmax_char, 0) ATTRIBUTE_CONST;
3444extern ptrdiff_t chars_in_text (const unsigned char *, ptrdiff_t); 3434extern ptrdiff_t chars_in_text (const unsigned char *, ptrdiff_t);
3445extern ptrdiff_t multibyte_chars_in_text (const unsigned char *, ptrdiff_t); 3435extern ptrdiff_t multibyte_chars_in_text (const unsigned char *, ptrdiff_t);
3446extern int multibyte_char_to_unibyte (int) ATTRIBUTE_CONST; 3436extern int multibyte_char_to_unibyte (int) ATTRIBUTE_CONST;
@@ -3454,9 +3444,6 @@ extern void syms_of_charset (void);
3454/* Structure forward declarations. */ 3444/* Structure forward declarations. */
3455struct charset; 3445struct charset;
3456 3446
3457/* Defined in composite.c. */
3458extern void syms_of_composite (void);
3459
3460/* Defined in syntax.c. */ 3447/* Defined in syntax.c. */
3461extern void init_syntax_once (void); 3448extern void init_syntax_once (void);
3462extern void syms_of_syntax (void); 3449extern void syms_of_syntax (void);
@@ -3464,7 +3451,6 @@ extern void syms_of_syntax (void);
3464/* Defined in fns.c. */ 3451/* Defined in fns.c. */
3465extern Lisp_Object QCrehash_size, QCrehash_threshold; 3452extern Lisp_Object QCrehash_size, QCrehash_threshold;
3466enum { NEXT_ALMOST_PRIME_LIMIT = 11 }; 3453enum { NEXT_ALMOST_PRIME_LIMIT = 11 };
3467EXFUN (Fidentity, 1) ATTRIBUTE_CONST;
3468extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST; 3454extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST;
3469extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t); 3455extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t);
3470extern void sweep_weak_hash_tables (void); 3456extern void sweep_weak_hash_tables (void);
@@ -3497,7 +3483,6 @@ extern Lisp_Object string_make_unibyte (Lisp_Object);
3497extern void syms_of_fns (void); 3483extern void syms_of_fns (void);
3498 3484
3499/* Defined in floatfns.c. */ 3485/* Defined in floatfns.c. */
3500extern double extract_float (Lisp_Object);
3501extern void syms_of_floatfns (void); 3486extern void syms_of_floatfns (void);
3502extern Lisp_Object fmod_float (Lisp_Object x, Lisp_Object y); 3487extern Lisp_Object fmod_float (Lisp_Object x, Lisp_Object y);
3503 3488
@@ -3518,6 +3503,7 @@ extern void syms_of_image (void);
3518 3503
3519/* Defined in insdel.c. */ 3504/* Defined in insdel.c. */
3520extern Lisp_Object Qinhibit_modification_hooks; 3505extern Lisp_Object Qinhibit_modification_hooks;
3506extern Lisp_Object Qregion_extract_function;
3521extern void move_gap_both (ptrdiff_t, ptrdiff_t); 3507extern void move_gap_both (ptrdiff_t, ptrdiff_t);
3522extern _Noreturn void buffer_overflow (void); 3508extern _Noreturn void buffer_overflow (void);
3523extern void make_gap (ptrdiff_t); 3509extern void make_gap (ptrdiff_t);
@@ -3570,18 +3556,16 @@ _Noreturn void __executable_start (void);
3570#endif 3556#endif
3571extern Lisp_Object Vwindow_system; 3557extern Lisp_Object Vwindow_system;
3572extern Lisp_Object sit_for (Lisp_Object, bool, int); 3558extern Lisp_Object sit_for (Lisp_Object, bool, int);
3573extern void init_display (void);
3574extern void syms_of_display (void);
3575 3559
3576/* Defined in xdisp.c. */ 3560/* Defined in xdisp.c. */
3577extern Lisp_Object Qinhibit_point_motion_hooks; 3561extern Lisp_Object Qinhibit_point_motion_hooks;
3578extern Lisp_Object Qinhibit_redisplay, Qdisplay; 3562extern Lisp_Object Qinhibit_redisplay;
3579extern Lisp_Object Qmenu_bar_update_hook; 3563extern Lisp_Object Qmenu_bar_update_hook;
3580extern Lisp_Object Qwindow_scroll_functions; 3564extern Lisp_Object Qwindow_scroll_functions;
3581extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map; 3565extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
3582extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz; 3566extern Lisp_Object Qtext, Qboth, Qboth_horiz, Qtext_image_horiz;
3583extern Lisp_Object Qspace, Qcenter, QCalign_to; 3567extern Lisp_Object Qspace, Qcenter, QCalign_to;
3584extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow; 3568extern Lisp_Object Qbar, Qhbar, Qhollow;
3585extern Lisp_Object Qleft_margin, Qright_margin; 3569extern Lisp_Object Qleft_margin, Qright_margin;
3586extern Lisp_Object QCdata, QCfile; 3570extern Lisp_Object QCdata, QCfile;
3587extern Lisp_Object QCmap; 3571extern Lisp_Object QCmap;
@@ -3608,7 +3592,6 @@ extern void message_log_maybe_newline (void);
3608extern void update_echo_area (void); 3592extern void update_echo_area (void);
3609extern void truncate_echo_area (ptrdiff_t); 3593extern void truncate_echo_area (ptrdiff_t);
3610extern void redisplay (void); 3594extern void redisplay (void);
3611extern void redisplay_preserve_echo_area (int);
3612 3595
3613void set_frame_cursor_types (struct frame *, Lisp_Object); 3596void set_frame_cursor_types (struct frame *, Lisp_Object);
3614extern void syms_of_xdisp (void); 3597extern void syms_of_xdisp (void);
@@ -3791,12 +3774,9 @@ extern void r_alloc_inhibit_buffer_relocation (int);
3791 3774
3792/* Defined in chartab.c. */ 3775/* Defined in chartab.c. */
3793extern Lisp_Object copy_char_table (Lisp_Object); 3776extern Lisp_Object copy_char_table (Lisp_Object);
3794extern Lisp_Object char_table_ref (Lisp_Object, int);
3795extern Lisp_Object char_table_ref_and_range (Lisp_Object, int, 3777extern Lisp_Object char_table_ref_and_range (Lisp_Object, int,
3796 int *, int *); 3778 int *, int *);
3797extern void char_table_set (Lisp_Object, int, Lisp_Object);
3798extern void char_table_set_range (Lisp_Object, int, int, Lisp_Object); 3779extern void char_table_set_range (Lisp_Object, int, int, Lisp_Object);
3799extern int char_table_translate (Lisp_Object, int);
3800extern void map_char_table (void (*) (Lisp_Object, Lisp_Object, 3780extern void map_char_table (void (*) (Lisp_Object, Lisp_Object,
3801 Lisp_Object), 3781 Lisp_Object),
3802 Lisp_Object, Lisp_Object, Lisp_Object); 3782 Lisp_Object, Lisp_Object, Lisp_Object);
@@ -3874,7 +3854,7 @@ intern_c_string (const char *str)
3874} 3854}
3875 3855
3876/* Defined in eval.c. */ 3856/* Defined in eval.c. */
3877extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro; 3857extern Lisp_Object Qexit, Qinteractive, Qcommandp, Qmacro;
3878extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure; 3858extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure;
3879extern Lisp_Object Qand_rest; 3859extern Lisp_Object Qand_rest;
3880extern Lisp_Object Vautoload_queue; 3860extern Lisp_Object Vautoload_queue;
@@ -4082,8 +4062,7 @@ extern Lisp_Object echo_message_buffer;
4082extern struct kboard *echo_kboard; 4062extern struct kboard *echo_kboard;
4083extern void cancel_echoing (void); 4063extern void cancel_echoing (void);
4084extern Lisp_Object Qdisabled, QCfilter; 4064extern Lisp_Object Qdisabled, QCfilter;
4085extern Lisp_Object Qup, Qdown, Qbottom; 4065extern Lisp_Object Qup, Qdown;
4086extern Lisp_Object Qtop;
4087extern Lisp_Object last_undo_boundary; 4066extern Lisp_Object last_undo_boundary;
4088extern bool input_pending; 4067extern bool input_pending;
4089extern Lisp_Object menu_bar_items (Lisp_Object); 4068extern Lisp_Object menu_bar_items (Lisp_Object);
@@ -4115,7 +4094,6 @@ extern void syms_of_indent (void);
4115 4094
4116/* Defined in frame.c. */ 4095/* Defined in frame.c. */
4117extern Lisp_Object Qonly, Qnone; 4096extern Lisp_Object Qonly, Qnone;
4118extern Lisp_Object Qvisible;
4119extern void set_frame_param (struct frame *, Lisp_Object, Lisp_Object); 4097extern void set_frame_param (struct frame *, Lisp_Object, Lisp_Object);
4120extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object); 4098extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
4121extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object); 4099extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
@@ -4235,9 +4213,8 @@ extern void record_property_change (ptrdiff_t, ptrdiff_t,
4235 Lisp_Object); 4213 Lisp_Object);
4236extern void syms_of_undo (void); 4214extern void syms_of_undo (void);
4237/* Defined in textprop.c. */ 4215/* Defined in textprop.c. */
4238extern Lisp_Object Qfont, Qmouse_face; 4216extern Lisp_Object Qmouse_face;
4239extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks; 4217extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
4240extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
4241extern Lisp_Object Qminibuffer_prompt; 4218extern Lisp_Object Qminibuffer_prompt;
4242 4219
4243extern void report_interval_modification (Lisp_Object, Lisp_Object); 4220extern void report_interval_modification (Lisp_Object, Lisp_Object);
@@ -4260,7 +4237,6 @@ extern char *get_current_dir_name (void);
4260#endif 4237#endif
4261extern void stuff_char (char c); 4238extern void stuff_char (char c);
4262extern void init_foreground_group (void); 4239extern void init_foreground_group (void);
4263extern void init_sigio (int);
4264extern void sys_subshell (void); 4240extern void sys_subshell (void);
4265extern void sys_suspend (void); 4241extern void sys_suspend (void);
4266extern void discard_tty_input (void); 4242extern void discard_tty_input (void);
@@ -4345,8 +4321,8 @@ extern void syms_of_w32notify (void);
4345#endif 4321#endif
4346 4322
4347/* Defined in xfaces.c. */ 4323/* Defined in xfaces.c. */
4348extern Lisp_Object Qdefault, Qtool_bar, Qfringe; 4324extern Lisp_Object Qdefault, Qfringe;
4349extern Lisp_Object Qheader_line, Qscroll_bar, Qcursor; 4325extern Lisp_Object Qscroll_bar, Qcursor;
4350extern Lisp_Object Qmode_line_inactive; 4326extern Lisp_Object Qmode_line_inactive;
4351extern Lisp_Object Qface; 4327extern Lisp_Object Qface;
4352extern Lisp_Object Qnormal; 4328extern Lisp_Object Qnormal;
@@ -4405,10 +4381,6 @@ extern void syms_of_profiler (void);
4405/* Defined in msdos.c, w32.c. */ 4381/* Defined in msdos.c, w32.c. */
4406extern char *emacs_root_dir (void); 4382extern char *emacs_root_dir (void);
4407#endif /* DOS_NT */ 4383#endif /* DOS_NT */
4408
4409/* True means Emacs has already been initialized.
4410 Used during startup to detect startup of dumped Emacs. */
4411extern bool initialized;
4412 4384
4413/* True means ^G can quit instantly. */ 4385/* True means ^G can quit instantly. */
4414extern bool immediate_quit; 4386extern bool immediate_quit;
diff --git a/src/macros.c b/src/macros.c
index d0cf3c2c58d..acba125edc5 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -45,8 +45,6 @@ EMACS_INT executing_kbd_macro_iterations;
45 45
46Lisp_Object executing_kbd_macro; 46Lisp_Object executing_kbd_macro;
47 47
48Lisp_Object Fexecute_kbd_macro (Lisp_Object macro, Lisp_Object count, Lisp_Object loopfunc);
49
50DEFUN ("start-kbd-macro", Fstart_kbd_macro, Sstart_kbd_macro, 1, 2, "P", 48DEFUN ("start-kbd-macro", Fstart_kbd_macro, Sstart_kbd_macro, 1, 2, "P",
51 doc: /* Record subsequent keyboard input, defining a keyboard macro. 49 doc: /* Record subsequent keyboard input, defining a keyboard macro.
52The commands are recorded even as they are executed. 50The commands are recorded even as they are executed.
diff --git a/src/window.c b/src/window.c
index 46024614179..8a608433ed7 100644
--- a/src/window.c
+++ b/src/window.c
@@ -27,6 +27,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
27#include "buffer.h" 27#include "buffer.h"
28#include "keyboard.h" 28#include "keyboard.h"
29#include "keymap.h" 29#include "keymap.h"
30#include "menu.h"
30#include "frame.h" 31#include "frame.h"
31#include "window.h" 32#include "window.h"
32#include "commands.h" 33#include "commands.h"
diff --git a/src/xdisp.c b/src/xdisp.c
index d7368c7c0c4..70e4d1b5e59 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -12279,11 +12279,6 @@ tool_bar_height (struct frame *f, int *n_rows, bool pixelwise)
12279 12279
12280#endif /* !USE_GTK && !HAVE_NS */ 12280#endif /* !USE_GTK && !HAVE_NS */
12281 12281
12282#if defined USE_GTK || defined HAVE_NS
12283EXFUN (Ftool_bar_height, 2) ATTRIBUTE_CONST;
12284EXFUN (Ftool_bar_lines_needed, 1) ATTRIBUTE_CONST;
12285#endif
12286
12287DEFUN ("tool-bar-height", Ftool_bar_height, Stool_bar_height, 12282DEFUN ("tool-bar-height", Ftool_bar_height, Stool_bar_height,
12288 0, 2, 0, 12283 0, 2, 0,
12289 doc: /* Return the number of lines occupied by the tool bar of FRAME. 12284 doc: /* Return the number of lines occupied by the tool bar of FRAME.
diff --git a/src/xfns.c b/src/xfns.c
index dc3211e4d6b..a7caa53e522 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -24,6 +24,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24 24
25#include "lisp.h" 25#include "lisp.h"
26#include "xterm.h" 26#include "xterm.h"
27#include "menu.h"
27#include "frame.h" 28#include "frame.h"
28#include "window.h" 29#include "window.h"
29#include "character.h" 30#include "character.h"
diff --git a/src/xterm.c b/src/xterm.c
index 530bfe63dcb..c817174bb3f 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -226,7 +226,6 @@ static void x_lower_frame (struct frame *);
226static const XColor *x_color_cells (Display *, int *); 226static const XColor *x_color_cells (Display *, int *);
227static int x_io_error_quitter (Display *); 227static int x_io_error_quitter (Display *);
228static struct terminal *x_create_terminal (struct x_display_info *); 228static struct terminal *x_create_terminal (struct x_display_info *);
229void x_delete_terminal (struct terminal *);
230static void x_update_end (struct frame *); 229static void x_update_end (struct frame *);
231static void XTframe_up_to_date (struct frame *); 230static void XTframe_up_to_date (struct frame *);
232static void x_clear_frame (struct frame *); 231static void x_clear_frame (struct frame *);
@@ -7859,11 +7858,6 @@ xim_destroy_callback (XIM xim, XPointer client_data, XPointer call_data)
7859 7858
7860#endif /* HAVE_X11R6 */ 7859#endif /* HAVE_X11R6 */
7861 7860
7862#ifdef HAVE_X11R6
7863/* This isn't prototyped in OSF 5.0 or 5.1a. */
7864extern char *XSetIMValues (XIM, ...);
7865#endif
7866
7867/* Open the connection to the XIM server on display DPYINFO. 7861/* Open the connection to the XIM server on display DPYINFO.
7868 RESOURCE_NAME is the resource name Emacs uses. */ 7862 RESOURCE_NAME is the resource name Emacs uses. */
7869 7863
@@ -9779,7 +9773,7 @@ x_toggle_visible_pointer (struct frame *f, bool invisible)
9779 else 9773 else
9780 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), 9774 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
9781 f->output_data.x->current_cursor); 9775 f->output_data.x->current_cursor);
9782 f->pointer_invisible = invisible; 9776 f->pointer_invisible = invisible;
9783} 9777}
9784 9778
9785/* Setup pointer blanking, prefer Xfixes if available. */ 9779/* Setup pointer blanking, prefer Xfixes if available. */
@@ -10111,7 +10105,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
10111 10105
10112 XRenderQueryExtension (dpyinfo->display, &event_base, &error_base); 10106 XRenderQueryExtension (dpyinfo->display, &event_base, &error_base);
10113 10107
10114 v = XGetDefault (dpyinfo->display, "Xft", "dpi"); 10108 v = XGetDefault (dpyinfo->display, "Xft", "dpi");
10115 if (v != NULL && sscanf (v, "%lf", &d) == 1) 10109 if (v != NULL && sscanf (v, "%lf", &d) == 1)
10116 dpyinfo->resy = dpyinfo->resx = d; 10110 dpyinfo->resy = dpyinfo->resx = d;
10117 } 10111 }
@@ -10240,7 +10234,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
10240 1, 0, 1); 10234 1, 0, 1);
10241 10235
10242 x_setup_pointer_blanking (dpyinfo); 10236 x_setup_pointer_blanking (dpyinfo);
10243 10237
10244#ifdef HAVE_X_I18N 10238#ifdef HAVE_X_I18N
10245 xim_initialize (dpyinfo, resource_name); 10239 xim_initialize (dpyinfo, resource_name);
10246#endif 10240#endif
@@ -10556,7 +10550,7 @@ x_create_terminal (struct x_display_info *dpyinfo)
10556 terminal->menu_show_hook = x_menu_show; 10550 terminal->menu_show_hook = x_menu_show;
10557#if defined (USE_X_TOOLKIT) || defined (USE_GTK) 10551#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
10558 terminal->popup_dialog_hook = xw_popup_dialog; 10552 terminal->popup_dialog_hook = xw_popup_dialog;
10559#endif 10553#endif
10560 terminal->set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar; 10554 terminal->set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
10561 terminal->condemn_scroll_bars_hook = XTcondemn_scroll_bars; 10555 terminal->condemn_scroll_bars_hook = XTcondemn_scroll_bars;
10562 terminal->redeem_scroll_bar_hook = XTredeem_scroll_bar; 10556 terminal->redeem_scroll_bar_hook = XTredeem_scroll_bar;
diff --git a/src/xterm.h b/src/xterm.h
index 9daa478c964..6f6441a7f68 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -929,7 +929,6 @@ extern void x_check_errors (Display *, const char *)
929extern bool x_had_errors_p (Display *); 929extern bool x_had_errors_p (Display *);
930extern void x_uncatch_errors (void); 930extern void x_uncatch_errors (void);
931extern void x_clear_errors (Display *); 931extern void x_clear_errors (Display *);
932extern void x_set_window_size (struct frame *, int, int, int, bool);
933extern void xembed_request_focus (struct frame *); 932extern void xembed_request_focus (struct frame *);
934extern void x_ewmh_activate_frame (struct frame *); 933extern void x_ewmh_activate_frame (struct frame *);
935extern void x_delete_terminal (struct terminal *terminal); 934extern void x_delete_terminal (struct terminal *terminal);
@@ -944,7 +943,6 @@ extern bool x_alloc_lighter_color_for_widget (Widget, Display *, Colormap,
944 double, int); 943 double, int);
945#endif 944#endif
946extern bool x_alloc_nearest_color (struct frame *, Colormap, XColor *); 945extern bool x_alloc_nearest_color (struct frame *, Colormap, XColor *);
947extern void x_query_color (struct frame *f, XColor *);
948extern void x_clear_area (Display *, Window, int, int, int, int); 946extern void x_clear_area (Display *, Window, int, int, int, int);
949#if !defined USE_X_TOOLKIT && !defined USE_GTK 947#if !defined USE_X_TOOLKIT && !defined USE_GTK
950extern void x_mouse_leave (struct x_display_info *); 948extern void x_mouse_leave (struct x_display_info *);
@@ -991,16 +989,11 @@ extern Lisp_Object x_property_data_to_lisp (struct frame *,
991extern void x_clipboard_manager_save_frame (Lisp_Object); 989extern void x_clipboard_manager_save_frame (Lisp_Object);
992extern void x_clipboard_manager_save_all (void); 990extern void x_clipboard_manager_save_all (void);
993 991
994/* Defined in xfns.c */
995
996extern Lisp_Object x_get_focus_frame (struct frame *);
997
998#ifdef USE_GTK 992#ifdef USE_GTK
999extern int xg_set_icon (struct frame *, Lisp_Object); 993extern int xg_set_icon (struct frame *, Lisp_Object);
1000extern int xg_set_icon_from_xpm_data (struct frame *, const char **); 994extern int xg_set_icon_from_xpm_data (struct frame *, const char **);
1001#endif /* USE_GTK */ 995#endif /* USE_GTK */
1002 996
1003extern void x_implicitly_set_name (struct frame *, Lisp_Object, Lisp_Object);
1004extern void xic_free_xfontset (struct frame *); 997extern void xic_free_xfontset (struct frame *);
1005extern void create_frame_xic (struct frame *); 998extern void create_frame_xic (struct frame *);
1006extern void destroy_frame_xic (struct frame *); 999extern void destroy_frame_xic (struct frame *);
@@ -1032,15 +1025,8 @@ extern Lisp_Object xw_popup_dialog (struct frame *, Lisp_Object, Lisp_Object);
1032extern void x_menu_set_in_use (int); 1025extern void x_menu_set_in_use (int);
1033#endif 1026#endif
1034extern void x_menu_wait_for_event (void *data); 1027extern void x_menu_wait_for_event (void *data);
1035extern int popup_activated (void);
1036extern void initialize_frame_menubar (struct frame *); 1028extern void initialize_frame_menubar (struct frame *);
1037 1029
1038/* Defined in widget.c */
1039
1040#ifdef USE_X_TOOLKIT
1041extern void widget_store_internal_border (Widget);
1042#endif
1043
1044/* Defined in xsmfns.c */ 1030/* Defined in xsmfns.c */
1045#ifdef HAVE_X_SM 1031#ifdef HAVE_X_SM
1046extern void x_session_initialize (struct x_display_info *dpyinfo); 1032extern void x_session_initialize (struct x_display_info *dpyinfo);