aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2012-09-02 09:56:31 -0700
committerPaul Eggert2012-09-02 09:56:31 -0700
commita411ac43d3667d042fa36361275eccbe9aca80af (patch)
tree84dce13f623718359f808b9c1b088ce6ad23e7bb /src
parentc04889f8e34e69ed496fcaaab285eac34e96acc1 (diff)
downloademacs-a411ac43d3667d042fa36361275eccbe9aca80af.tar.gz
emacs-a411ac43d3667d042fa36361275eccbe9aca80af.zip
Clean up some extern decls.
Mostly, this hoists extern decls out of .c files and into .h files. That way, we're more likely to catch errors if the interfaces change. * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not declare xg_mark_data. * dispextern.h (x_frame_parm_handlers): * font.h (Qxft): * lisp.h (Qlexical_binding, Qinternal_interpreter_environment) (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold) (Qultra_bold, Qoblique, Qitalic): Move extern decl here from .c file. * alloc.c (xg_mark_data) [USE_GTK]: * doc.c (Qclosure): * eval.c (Qlexical_binding): * fns.c (time) [!HAVE_UNISTD_H]: * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light) (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic): * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]: * lread.c (Qinternal_interpreter_environment): * minibuf.c (Qbuffer): * process.c (QCfamily, QCfilter): * widget.c (free_frame_faces): * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]: * xfont.c (x_clear_errors): * xterm.c (x_frame_parm_handlers): Remove now-redundant extern decls. * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]: * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic): Now static. * xfaces.c: Remove unnecessary static decls. * xterm.c (updating_frame): Remove decl of nonexistent object.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog32
-rw-r--r--src/alloc.c8
-rw-r--r--src/dispextern.h3
-rw-r--r--src/doc.c1
-rw-r--r--src/eval.c1
-rw-r--r--src/fns.c4
-rw-r--r--src/font.h1
-rw-r--r--src/gtkutil.c5
-rw-r--r--src/image.c1
-rw-r--r--src/keyboard.c2
-rw-r--r--src/keyboard.h2
-rw-r--r--src/lisp.h6
-rw-r--r--src/lread.c2
-rw-r--r--src/minibuf.c1
-rw-r--r--src/process.c10
-rw-r--r--src/widget.c2
-rw-r--r--src/xfaces.c43
-rw-r--r--src/xfont.c1
-rw-r--r--src/xterm.c9
19 files changed, 50 insertions, 84 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4986726d7c8..a5978e6456b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,37 @@
12012-09-02 Paul Eggert <eggert@cs.ucla.edu> 12012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Clean up some extern decls.
4 Mostly, this hoists extern decls out of .c files and into .h files.
5 That way, we're more likely to catch errors if the interfaces change.
6 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
7 declare xg_mark_data.
8 * dispextern.h (x_frame_parm_handlers):
9 * font.h (Qxft):
10 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
11 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
12 (Qultra_bold, Qoblique, Qitalic):
13 Move extern decl here from .c file.
14 * alloc.c (xg_mark_data) [USE_GTK]:
15 * doc.c (Qclosure):
16 * eval.c (Qlexical_binding):
17 * fns.c (time) [!HAVE_UNISTD_H]:
18 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
19 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
20 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
21 * lread.c (Qinternal_interpreter_environment):
22 * minibuf.c (Qbuffer):
23 * process.c (QCfamily, QCfilter):
24 * widget.c (free_frame_faces):
25 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
26 * xfont.c (x_clear_errors):
27 * xterm.c (x_frame_parm_handlers):
28 Remove now-redundant extern decls.
29 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
30 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
31 Now static.
32 * xfaces.c: Remove unnecessary static decls.
33 * xterm.c (updating_frame): Remove decl of nonexistent object.
34
3 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS) 35 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
4 when building globals.h, as the objects that are not built on 36 when building globals.h, as the objects that are not built on
5 this host are not needed to compile C files on this host. 37 this host are not needed to compile C files on this host.
diff --git a/src/alloc.c b/src/alloc.c
index e8637471bc7..188a514376d 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -69,6 +69,9 @@ extern void *sbrk ();
69 69
70#include <fcntl.h> 70#include <fcntl.h>
71 71
72#ifdef USE_GTK
73# include "gtkutil.h"
74#endif
72#ifdef WINDOWSNT 75#ifdef WINDOWSNT
73#include "w32.h" 76#include "w32.h"
74#endif 77#endif
@@ -5478,10 +5481,7 @@ See Info node `(elisp)Garbage Collection'. */)
5478 mark_kboards (); 5481 mark_kboards ();
5479 5482
5480#ifdef USE_GTK 5483#ifdef USE_GTK
5481 { 5484 xg_mark_data ();
5482 extern void xg_mark_data (void);
5483 xg_mark_data ();
5484 }
5485#endif 5485#endif
5486 5486
5487#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ 5487#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \
diff --git a/src/dispextern.h b/src/dispextern.h
index 1140d98f8a7..e74e7deb591 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3251,9 +3251,12 @@ void x_implicitly_set_name (struct frame *, Lisp_Object, Lisp_Object);
3251 3251
3252extern Lisp_Object tip_frame; 3252extern Lisp_Object tip_frame;
3253extern Window tip_window; 3253extern Window tip_window;
3254extern frame_parm_handler x_frame_parm_handlers[];
3255
3254extern void start_hourglass (void); 3256extern void start_hourglass (void);
3255extern void cancel_hourglass (void); 3257extern void cancel_hourglass (void);
3256extern int hourglass_shown_p; 3258extern int hourglass_shown_p;
3259
3257struct atimer; /* Defined in atimer.h. */ 3260struct atimer; /* Defined in atimer.h. */
3258/* If non-null, an asynchronous timer that, when it expires, displays 3261/* If non-null, an asynchronous timer that, when it expires, displays
3259 an hourglass cursor on all frames. */ 3262 an hourglass cursor on all frames. */
diff --git a/src/doc.c b/src/doc.c
index b4eadfff875..02a5b4b8143 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -37,7 +37,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
37 37
38Lisp_Object Qfunction_documentation; 38Lisp_Object Qfunction_documentation;
39 39
40extern Lisp_Object Qclosure;
41/* Buffer used for reading from documentation file. */ 40/* Buffer used for reading from documentation file. */
42static char *get_doc_string_buffer; 41static char *get_doc_string_buffer;
43static ptrdiff_t get_doc_string_buffer_size; 42static ptrdiff_t get_doc_string_buffer_size;
diff --git a/src/eval.c b/src/eval.c
index c56be10c5a0..ad1daf721b8 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2232,7 +2232,6 @@ eval_sub (Lisp_Object form)
2232 if (EQ (funcar, Qmacro)) 2232 if (EQ (funcar, Qmacro))
2233 { 2233 {
2234 ptrdiff_t count = SPECPDL_INDEX (); 2234 ptrdiff_t count = SPECPDL_INDEX ();
2235 extern Lisp_Object Qlexical_binding;
2236 Lisp_Object exp; 2235 Lisp_Object exp;
2237 /* Bind lexical-binding during expansion of the macro, so the 2236 /* Bind lexical-binding during expansion of the macro, so the
2238 macro can know reliably if the code it outputs will be 2237 macro can know reliably if the code it outputs will be
diff --git a/src/fns.c b/src/fns.c
index 2dee8515799..4d82e4e6e1d 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -52,10 +52,6 @@ static Lisp_Object Qcodeset, Qdays, Qmonths, Qpaper;
52static Lisp_Object Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512; 52static Lisp_Object Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512;
53 53
54static int internal_equal (Lisp_Object , Lisp_Object, int, int); 54static int internal_equal (Lisp_Object , Lisp_Object, int, int);
55
56#ifndef HAVE_UNISTD_H
57extern long time ();
58#endif
59 55
60DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, 56DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0,
61 doc: /* Return the argument unchanged. */) 57 doc: /* Return the argument unchanged. */)
diff --git a/src/font.h b/src/font.h
index 6e9387f7632..3b90bc2ab8a 100644
--- a/src/font.h
+++ b/src/font.h
@@ -817,6 +817,7 @@ extern struct font_driver xfont_driver;
817extern void syms_of_xfont (void); 817extern void syms_of_xfont (void);
818extern void syms_of_ftxfont (void); 818extern void syms_of_ftxfont (void);
819#ifdef HAVE_XFT 819#ifdef HAVE_XFT
820extern Lisp_Object Qxft;
820extern struct font_driver xftfont_driver; 821extern struct font_driver xftfont_driver;
821extern void syms_of_xftfont (void); 822extern void syms_of_xftfont (void);
822#elif defined HAVE_FREETYPE 823#elif defined HAVE_FREETYPE
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 939e472d6d2..48a83725fd9 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -2019,11 +2019,6 @@ xg_get_file_name (FRAME_PTR f,
2019 2019
2020#if USE_NEW_GTK_FONT_CHOOSER 2020#if USE_NEW_GTK_FONT_CHOOSER
2021 2021
2022extern Lisp_Object Qxft, Qnormal;
2023extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold;
2024extern Lisp_Object Qbold, Qextra_bold, Qultra_bold;
2025extern Lisp_Object Qoblique, Qitalic;
2026
2027#define XG_WEIGHT_TO_SYMBOL(w) \ 2022#define XG_WEIGHT_TO_SYMBOL(w) \
2028 (w <= PANGO_WEIGHT_THIN ? Qextra_light \ 2023 (w <= PANGO_WEIGHT_THIN ? Qextra_light \
2029 : w <= PANGO_WEIGHT_ULTRALIGHT ? Qlight \ 2024 : w <= PANGO_WEIGHT_ULTRALIGHT ? Qlight \
diff --git a/src/image.c b/src/image.c
index d4e78d41000..a067dae7737 100644
--- a/src/image.c
+++ b/src/image.c
@@ -570,7 +570,6 @@ static void x_emboss (struct frame *, struct image *);
570static int x_build_heuristic_mask (struct frame *, struct image *, 570static int x_build_heuristic_mask (struct frame *, struct image *,
571 Lisp_Object); 571 Lisp_Object);
572#ifdef HAVE_NTGUI 572#ifdef HAVE_NTGUI
573extern Lisp_Object Vlibrary_cache, QCloaded_from;
574#define CACHE_IMAGE_TYPE(type, status) \ 573#define CACHE_IMAGE_TYPE(type, status) \
575 do { Vlibrary_cache = Fcons (Fcons (type, status), Vlibrary_cache); } while (0) 574 do { Vlibrary_cache = Fcons (Fcons (type, status), Vlibrary_cache); } while (0)
576#else 575#else
diff --git a/src/keyboard.c b/src/keyboard.c
index ff2b75e351c..464c3ae0d66 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1315,7 +1315,7 @@ usage: (track-mouse BODY...) */)
1315 If ignore_mouse_drag_p is non-zero, ignore (implicit) mouse movement 1315 If ignore_mouse_drag_p is non-zero, ignore (implicit) mouse movement
1316 after resizing the tool-bar window. */ 1316 after resizing the tool-bar window. */
1317 1317
1318#if !defined HAVE_WINDOW_SYSTEM 1318#if !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS
1319static 1319static
1320#endif 1320#endif
1321int ignore_mouse_drag_p; 1321int ignore_mouse_drag_p;
diff --git a/src/keyboard.h b/src/keyboard.h
index 98b1933f3f9..91484b3649b 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -469,7 +469,7 @@ extern int waiting_for_input;
469 happens. */ 469 happens. */
470extern EMACS_TIME *input_available_clear_time; 470extern EMACS_TIME *input_available_clear_time;
471 471
472#if defined HAVE_WINDOW_SYSTEM 472#if defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS
473extern int ignore_mouse_drag_p; 473extern int ignore_mouse_drag_p;
474#endif 474#endif
475 475
diff --git a/src/lisp.h b/src/lisp.h
index b906e4a1dfd..75f1b5e802d 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2988,6 +2988,7 @@ extern ptrdiff_t evxprintf (char **, ptrdiff_t *, char const *, ptrdiff_t,
2988/* Defined in lread.c. */ 2988/* Defined in lread.c. */
2989extern Lisp_Object Qvariable_documentation, Qstandard_input; 2989extern Lisp_Object Qvariable_documentation, Qstandard_input;
2990extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction; 2990extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
2991extern Lisp_Object Qlexical_binding;
2991extern Lisp_Object check_obarray (Lisp_Object); 2992extern Lisp_Object check_obarray (Lisp_Object);
2992extern Lisp_Object intern_1 (const char *, ptrdiff_t); 2993extern Lisp_Object intern_1 (const char *, ptrdiff_t);
2993extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t); 2994extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t);
@@ -3021,7 +3022,7 @@ intern_c_string (const char *str)
3021 3022
3022/* Defined in eval.c. */ 3023/* Defined in eval.c. */
3023extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro; 3024extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro;
3024extern Lisp_Object Qinhibit_quit, Qclosure; 3025extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure;
3025extern Lisp_Object Qand_rest; 3026extern Lisp_Object Qand_rest;
3026extern Lisp_Object Vautoload_queue; 3027extern Lisp_Object Vautoload_queue;
3027extern Lisp_Object Vsignaling_function; 3028extern Lisp_Object Vsignaling_function;
@@ -3466,6 +3467,9 @@ extern Lisp_Object Qface;
3466extern Lisp_Object Qnormal; 3467extern Lisp_Object Qnormal;
3467extern Lisp_Object QCfamily, QCweight, QCslant; 3468extern Lisp_Object QCfamily, QCweight, QCslant;
3468extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground; 3469extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground;
3470extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold;
3471extern Lisp_Object Qbold, Qextra_bold, Qultra_bold;
3472extern Lisp_Object Qoblique, Qitalic;
3469extern Lisp_Object Vface_alternative_font_family_alist; 3473extern Lisp_Object Vface_alternative_font_family_alist;
3470extern Lisp_Object Vface_alternative_font_registry_alist; 3474extern Lisp_Object Vface_alternative_font_registry_alist;
3471extern void syms_of_xfaces (void); 3475extern void syms_of_xfaces (void);
diff --git a/src/lread.c b/src/lread.c
index aa3e0cfc5b8..1dd6275684b 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -89,8 +89,6 @@ static Lisp_Object Qget_emacs_mule_file_char;
89 89
90static Lisp_Object Qload_force_doc_strings; 90static Lisp_Object Qload_force_doc_strings;
91 91
92extern Lisp_Object Qinternal_interpreter_environment;
93
94static Lisp_Object Qload_in_progress; 92static Lisp_Object Qload_in_progress;
95 93
96/* The association list of objects read with the #n=object form. 94/* The association list of objects read with the #n=object form.
diff --git a/src/minibuf.c b/src/minibuf.c
index 41cc48017eb..2035a3e3985 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1860,7 +1860,6 @@ the values STRING, PREDICATE and `lambda'. */)
1860} 1860}
1861 1861
1862static Lisp_Object Qmetadata; 1862static Lisp_Object Qmetadata;
1863extern Lisp_Object Qbuffer;
1864 1863
1865DEFUN ("internal-complete-buffer", Finternal_complete_buffer, Sinternal_complete_buffer, 3, 3, 0, 1864DEFUN ("internal-complete-buffer", Finternal_complete_buffer, Sinternal_complete_buffer, 3, 3, 0,
1866 doc: /* Perform completion on buffer names. 1865 doc: /* Perform completion on buffer names.
diff --git a/src/process.c b/src/process.c
index bfac054c3c2..81fa98a028d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -165,16 +165,6 @@ static Lisp_Object QClocal, QCremote, QCcoding;
165static Lisp_Object QCserver, QCnowait, QCnoquery, QCstop; 165static Lisp_Object QCserver, QCnowait, QCnoquery, QCstop;
166static Lisp_Object QCsentinel, QClog, QCoptions, QCplist; 166static Lisp_Object QCsentinel, QClog, QCoptions, QCplist;
167static Lisp_Object Qlast_nonmenu_event; 167static Lisp_Object Qlast_nonmenu_event;
168/* QCfamily is declared and initialized in xfaces.c,
169 QCfilter in keyboard.c. */
170extern Lisp_Object QCfamily, QCfilter;
171
172/* Qexit is declared and initialized in eval.c. */
173
174/* QCfamily is defined in xfaces.c. */
175extern Lisp_Object QCfamily;
176/* QCfilter is defined in keyboard.c. */
177extern Lisp_Object QCfilter;
178 168
179#define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork)) 169#define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork))
180#define NETCONN1_P(p) (EQ (p->type, Qnetwork)) 170#define NETCONN1_P(p) (EQ (p->type, Qnetwork))
diff --git a/src/widget.c b/src/widget.c
index b94c30f4e9c..ea9bdb61b13 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -671,8 +671,6 @@ EmacsFrameRealize (Widget widget, XtValueMask *mask, XSetWindowAttributes *attrs
671 update_wm_hints (ew); 671 update_wm_hints (ew);
672} 672}
673 673
674extern void free_frame_faces (struct frame *);
675
676static void 674static void
677EmacsFrameDestroy (Widget widget) 675EmacsFrameDestroy (Widget widget)
678{ 676{
diff --git a/src/xfaces.c b/src/xfaces.c
index 5554c4aa705..4df5caf6f2a 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -315,9 +315,10 @@ static Lisp_Object QCfontset;
315Lisp_Object Qnormal; 315Lisp_Object Qnormal;
316Lisp_Object Qbold; 316Lisp_Object Qbold;
317static Lisp_Object Qline, Qwave; 317static Lisp_Object Qline, Qwave;
318Lisp_Object Qultra_light, Qextra_light, Qlight; 318static Lisp_Object Qultra_light, Qreverse_oblique, Qreverse_italic;
319Lisp_Object Qextra_light, Qlight;
319Lisp_Object Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold; 320Lisp_Object Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold;
320Lisp_Object Qoblique, Qreverse_oblique, Qreverse_italic; 321Lisp_Object Qoblique;
321Lisp_Object Qitalic; 322Lisp_Object Qitalic;
322static Lisp_Object Qultra_condensed, Qextra_condensed; 323static Lisp_Object Qultra_condensed, Qextra_condensed;
323Lisp_Object Qcondensed; 324Lisp_Object Qcondensed;
@@ -452,18 +453,7 @@ static int menu_face_changed_default;
452struct table_entry; 453struct table_entry;
453struct named_merge_point; 454struct named_merge_point;
454 455
455static void map_tty_color (struct frame *, struct face *,
456 enum lface_attribute_index, int *);
457static Lisp_Object resolve_face_name (Lisp_Object, int);
458static void set_font_frame_param (Lisp_Object, Lisp_Object); 456static void set_font_frame_param (Lisp_Object, Lisp_Object);
459static int get_lface_attributes (struct frame *, Lisp_Object, Lisp_Object *,
460 int, struct named_merge_point *);
461static ptrdiff_t load_pixmap (struct frame *, Lisp_Object,
462 unsigned *, unsigned *);
463static struct frame *frame_or_selected_frame (Lisp_Object, int);
464static void load_face_colors (struct frame *, struct face *, Lisp_Object *);
465static void free_face_colors (struct frame *, struct face *);
466static int face_color_gray_p (struct frame *, const char *);
467static struct face *realize_face (struct face_cache *, Lisp_Object *, 457static struct face *realize_face (struct face_cache *, Lisp_Object *,
468 int); 458 int);
469static struct face *realize_non_ascii_face (struct frame *, Lisp_Object, 459static struct face *realize_non_ascii_face (struct frame *, Lisp_Object,
@@ -473,38 +463,11 @@ static struct face *realize_tty_face (struct face_cache *, Lisp_Object *);
473static int realize_basic_faces (struct frame *); 463static int realize_basic_faces (struct frame *);
474static int realize_default_face (struct frame *); 464static int realize_default_face (struct frame *);
475static void realize_named_face (struct frame *, Lisp_Object, int); 465static void realize_named_face (struct frame *, Lisp_Object, int);
476static int lface_fully_specified_p (Lisp_Object *);
477static int lface_equal_p (Lisp_Object *, Lisp_Object *);
478static unsigned hash_string_case_insensitive (Lisp_Object);
479static unsigned lface_hash (Lisp_Object *);
480static int lface_same_font_attributes_p (Lisp_Object *, Lisp_Object *);
481static struct face_cache *make_face_cache (struct frame *); 466static struct face_cache *make_face_cache (struct frame *);
482static void clear_face_gcs (struct face_cache *); 467static void clear_face_gcs (struct face_cache *);
483static void free_face_cache (struct face_cache *); 468static void free_face_cache (struct face_cache *);
484static int face_fontset (Lisp_Object *);
485static void merge_face_vectors (struct frame *, Lisp_Object *, Lisp_Object*,
486 struct named_merge_point *);
487static int merge_face_ref (struct frame *, Lisp_Object, Lisp_Object *, 469static int merge_face_ref (struct frame *, Lisp_Object, Lisp_Object *,
488 int, struct named_merge_point *); 470 int, struct named_merge_point *);
489static int set_lface_from_font (struct frame *, Lisp_Object, Lisp_Object,
490 int);
491static Lisp_Object lface_from_face_name (struct frame *, Lisp_Object, int);
492static struct face *make_realized_face (Lisp_Object *);
493static void cache_face (struct face_cache *, struct face *, unsigned);
494static void uncache_face (struct face_cache *, struct face *);
495
496#ifdef HAVE_WINDOW_SYSTEM
497
498static GC x_create_gc (struct frame *, unsigned long, XGCValues *);
499static void x_free_gc (struct frame *, GC);
500
501#ifdef USE_X_TOOLKIT
502static void x_update_menu_appearance (struct frame *);
503
504extern void free_frame_menubar (struct frame *);
505#endif /* USE_X_TOOLKIT */
506
507#endif /* HAVE_WINDOW_SYSTEM */
508 471
509 472
510/*********************************************************************** 473/***********************************************************************
diff --git a/src/xfont.c b/src/xfont.c
index cbb24622ae9..be9556d585a 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -46,7 +46,6 @@ struct xfont_info
46}; 46};
47 47
48/* Prototypes of support functions. */ 48/* Prototypes of support functions. */
49extern void x_clear_errors (Display *);
50 49
51static XCharStruct *xfont_get_pcm (XFontStruct *, XChar2b *); 50static XCharStruct *xfont_get_pcm (XFontStruct *, XChar2b *);
52 51
diff --git a/src/xterm.c b/src/xterm.c
index 7e61cc4d8ea..052db0f3e63 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -165,13 +165,6 @@ struct x_display_info *x_display_list;
165 165
166Lisp_Object x_display_name_list; 166Lisp_Object x_display_name_list;
167 167
168/* Frame being updated by update_frame. This is declared in term.c.
169 This is set by update_begin and looked at by all the XT functions.
170 It is zero while not inside an update. In that case, the XT
171 functions assume that `selected_frame' is the frame to apply to. */
172
173extern struct frame *updating_frame;
174
175/* This is a frame waiting to be auto-raised, within XTread_socket. */ 168/* This is a frame waiting to be auto-raised, within XTread_socket. */
176 169
177static struct frame *pending_autoraise_frame; 170static struct frame *pending_autoraise_frame;
@@ -10609,8 +10602,6 @@ x_activate_timeout_atimer (void)
10609 10602
10610/* Set up use of X before we make the first connection. */ 10603/* Set up use of X before we make the first connection. */
10611 10604
10612extern frame_parm_handler x_frame_parm_handlers[];
10613
10614static struct redisplay_interface x_redisplay_interface = 10605static struct redisplay_interface x_redisplay_interface =
10615 { 10606 {
10616 x_frame_parm_handlers, 10607 x_frame_parm_handlers,