changeset 109647:113e8def9dc3

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Fri, 06 Aug 2010 00:26:44 +0000
parents 77eca36a3f0b (current diff) 8ee3605b9d8a (diff)
children 2eaef8962aef
files
diffstat 40 files changed, 191 insertions(+), 265 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/ChangeLog	Fri Aug 06 00:26:44 2010 +0000
@@ -1,5 +1,91 @@
+2010-08-06  Juanma Barranquero  <lekktu@gmail.com>
+
+	Fix changes in revnos 100982..100984 for Windows build.
+
+	* xmenu.c [USE_X_TOOLKIT || USE_GTK]:
+	Don't declare xmalloc_widget_value and digest_single_submenu.
+
+	* w32font.c (Qlatin): Remove declaration.
+
+	* menu.h (xmalloc_widget_value, digest_single_submenu): Declare.
+
+	* dired.c (compile_pattern):
+	* syssignal.h (signal_handler_t): Restore declarations.
+
 2010-08-05  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	Remove extern declarations in .c files, .h files have them.
+	* data.c:
+	* dired.c:
+	* editfns.c:
+	* filelock.c:
+	* fns.c:
+	* font.c:
+	* fontset.c:
+	* frame.c:
+	* fringe.c:
+	* ftfont.c:
+	* gtkutil.c:
+	* indent.c:
+	* keyboard.c:
+	* keymap.c:
+	* lread.c:
+	* menu.c:
+	* print.c:
+	* search.c:
+	* sound.c:
+	* window.c:
+	* xdisp.c:
+	* xfaces.c:
+	* xfns.c:
+	* xfont.c:
+	* xftfont.c:
+	* xmenu.c:
+	* xterm.c: Remove declarations.
+
+	Cleanup syssignal.h.
+	* syssignal.h (sighold, sigrelse, RETSIGTYPE): Remove, unused.
+	(main_thread): Move down to remove #ifdef.
+	(SIGMASKTYPE, SIGEMPTYMASK, SIGFULLMASK, sigmask, sigunblock):
+	Remove conditional definition following unconditional ones.
+
+	* lisp.h: Remove HAVE_SHM code, unused.
+	(QCmap, QCrehash_size, QCrehash_threshold, QCsize, QCtest)
+	(QCweakness, Qabove_handle, Qbackquote, Qbar, Qbelow_handle)
+	(Qborder, Qbottom, Qbox, Qcircular_list, Qcomma, Qcomma_at)
+	(Qcomma_dot, Qcursor, Qdefault, Qdown, Qend_scroll, Qeq, Qeql)
+	(Qequal, Qfile_exists_p, Qfont_param, Qfringe, Qfunction)
+	(Qfunction_documentation, Qhandle, Qhbar, Qheader_line, Qhollow)
+	(Qidentity, Qleft_margin, Qmenu, Qmenu_bar_update_hook)
+	(Qmode_line_inactive, Qmouse, Qoverriding_local_map)
+	(Qoverriding_terminal_local_map, Qratio, Qregion, Qright_margin)
+	(Qscroll_bar, Qtool_bar, Qtop, Qup, Qvertical_border, Qwhen)
+	(Qwindow_scroll_functions, Vafter_load_alist)
+	(Vauto_save_list_file_name, Vface_alternative_font_family_alist)
+	(Vface_alternative_font_registry_alist, Vface_font_rescale_alist)
+	(Vface_ignored_fonts, Vinhibit_redisplay, Vminibuffer_list)
+	(Vprint_length, Vprint_level, Vscalable_fonts_allowed)
+	(Vshell_file_name, Vsystem_name, Vwindow_scroll_functions)
+	(Vwindow_system_version, Vx_no_window_manager, initial_argc)
+	(initial_argv, last_nonmenu_event, load_in_progress)
+	(noninteractive_need_newline, scroll_margin): Add declarations.
+
+	* keyboard.h (xmalloc_widget_value, digest_single_submenu): Remove
+	declarations, menu.h has them.
+	(QCbutton, QCtoggle, QCradio, QClabel, extra_keyboard_modifiers)
+	(Vinput_method_function, Qinput_method_function)
+	(Qevent_symbol_element_mask, last_event_timestamp):
+	* dispextern.h (Voverflow_newline_into_fringe):
+	* font.h (QCantialias, Qp, syms_of_ftfont, syms_of_xfns)
+	(syms_of_ftxfont, syms_of_xftfont, syms_of_bdffont)
+	(syms_of_w32font, syms_of_nsfont):
+	* fontset.h (find_font_encoding, Qlatin):
+	* frame.h (Qtooltip, Qrun_hook_with_args, Vmenu_bar_mode)
+	(Vtool_bar_mode, set_frame_menubar):
+	* ftfont.h (ftfont_font_format, ftfont_get_fc_charset):
+	* xterm.h (Qx_gtk_map_stock):
+	* keymap.h (meta_prefix_char): Add declarations.
+
 	* term.c: Remove dead code.
 
 	Fix emacs -Q -f server-start & emacsclient -t on GNU/Linux.
--- a/src/data.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/data.c	Fri Aug 06 00:26:44 2010 +0000
@@ -665,8 +665,6 @@
   return definition;
 }
 
-extern Lisp_Object Qfunction_documentation;
-
 DEFUN ("defalias", Fdefalias, Sdefalias, 2, 3, 0,
        doc: /* Set SYMBOL's function definition to DEFINITION, and return DEFINITION.
 Associates the function with the current load file, if any.
@@ -2503,8 +2501,6 @@
 
 static Lisp_Object float_arith_driver (double, int, enum arithop,
                                        int, Lisp_Object *);
-extern Lisp_Object fmod_float (Lisp_Object, Lisp_Object);
-
 Lisp_Object
 arith_driver (enum arithop code, int nargs, register Lisp_Object *args)
 {
--- a/src/dired.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/dired.c	Fri Aug 06 00:26:44 2010 +0000
@@ -83,7 +83,9 @@
 #include "blockinput.h"
 
 /* Returns a search buffer, with a fastmap allocated and ready to go.  */
-extern struct re_pattern_buffer *compile_pattern (Lisp_Object, struct re_registers *, Lisp_Object, int, int);
+extern struct re_pattern_buffer *compile_pattern (Lisp_Object,
+						  struct re_registers *,
+						  Lisp_Object, int, int);
 
 /* From filemode.c.  Can't go in Lisp.h because of `stat'.  */
 extern void filemodestring (struct stat *, char *);
--- a/src/dispextern.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/dispextern.h	Fri Aug 06 00:26:44 2010 +0000
@@ -3031,6 +3031,7 @@
 
 /* Defined in fringe.c */
 
+extern Lisp_Object Voverflow_newline_into_fringe;
 int lookup_fringe_bitmap (Lisp_Object);
 void draw_fringe_bitmap (struct window *, struct glyph_row *, int);
 void draw_row_fringe_bitmaps (struct window *, struct glyph_row *);
--- a/src/editfns.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/editfns.c	Fri Aug 06 00:26:44 2010 +0000
@@ -3380,9 +3380,6 @@
       return val;
     }
 }
-#ifdef HAVE_MENUS
-extern Lisp_Object last_nonmenu_event;
-#endif
 
 DEFUN ("message-or-box", Fmessage_or_box, Smessage_or_box, 1, MANY, 0,
        doc: /* Display a message in a dialog box or in the echo area.
--- a/src/filelock.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/filelock.c	Fri Aug 06 00:26:44 2010 +0000
@@ -117,8 +117,6 @@
 static time_t boot_time;
 static int boot_time_initialized;
 
-extern Lisp_Object Vshell_file_name;
-
 #ifdef BOOT_TIME
 static void get_boot_time_1 (char *, int);
 #endif
--- a/src/fns.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/fns.c	Fri Aug 06 00:26:44 2010 +0000
@@ -61,18 +61,12 @@
    questions asked by mouse commands.  */
 int use_file_dialog;
 
-extern Lisp_Object minibuf_window;
-extern Lisp_Object Vlocale_coding_system;
-extern int load_in_progress;
-
 Lisp_Object Qstring_lessp, Qprovide, Qrequire;
 Lisp_Object Qyes_or_no_p_history;
 Lisp_Object Qcursor_in_echo_area;
 Lisp_Object Qwidget_type;
 Lisp_Object Qcodeset, Qdays, Qmonths, Qpaper;
 
-extern Lisp_Object Qinput_method_function;
-
 static int internal_equal (Lisp_Object , Lisp_Object, int, int);
 
 extern long get_random (void);
@@ -2706,7 +2700,6 @@
 }
 
 Lisp_Object Vfeatures, Qsubfeatures;
-extern Lisp_Object Vafter_load_alist;
 
 DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0,
        doc: /* Returns t if FEATURE is present in this Emacs.
--- a/src/font.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/font.c	Fri Aug 06 00:26:44 2010 +0000
@@ -48,10 +48,6 @@
 #include "nsterm.h"
 #endif /* HAVE_NS */
 
-#ifdef HAVE_NS
-extern Lisp_Object Qfontsize;
-#endif
-
 Lisp_Object Qopentype;
 
 /* Important character set strings.  */
@@ -394,11 +390,6 @@
   return (for_face ? AREF (elt, 1) : AREF (elt, (i & 0xF) + 1));
 }
 
-extern Lisp_Object Vface_alternative_font_family_alist;
-
-extern Lisp_Object find_font_encoding (Lisp_Object);
-
-
 /* Return ENCODING or a cons of ENCODING and REPERTORY of the font
    FONTNAME.  ENCODING is a charset symbol that specifies the encoding
    of the font.  REPERTORY is a charset symbol or nil.  */
@@ -603,7 +594,7 @@
 
 /* Structure of known font property keys and validater of the
    values.  */
-struct
+static const struct
 {
   /* Pointer to the key symbol.  */
   Lisp_Object *key;
@@ -2138,9 +2129,6 @@
 static Lisp_Object font_sort_entities (Lisp_Object, Lisp_Object,
                                        Lisp_Object, int);
 
-/* Return a rescaling ratio of FONT_ENTITY.  */
-extern Lisp_Object Vface_font_rescale_alist;
-
 static double
 font_rescale_ratio (Lisp_Object font_entity)
 {
@@ -2723,8 +2711,6 @@
      (2) doesn't match with any regexps in Vface_ignored_fonts (if non-nil).
 */
 
-extern Lisp_Object Vface_ignored_fonts;
-
 Lisp_Object
 font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size)
 {
@@ -5169,15 +5155,6 @@
   ASET (Vfont_log_deferred, 2, result);
 }
 
-extern void syms_of_ftfont (void);
-extern void syms_of_xfont (void);
-extern void syms_of_xftfont (void);
-extern void syms_of_ftxfont (void);
-extern void syms_of_bdffont (void);
-extern void syms_of_w32font (void);
-extern void syms_of_atmfont (void);
-extern void syms_of_nsfont (void);
-
 void
 syms_of_font (void)
 {
--- a/src/font.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/font.h	Fri Aug 06 00:26:44 2010 +0000
@@ -239,7 +239,9 @@
   ASET ((font), prop, make_number (font_style_to_value (prop, val, 1)))
 
 extern Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClang, QCscript;
-extern Lisp_Object QCavgwidth, QCfont_entity, QCfc_unknown_spec;
+extern Lisp_Object QCavgwidth, QCantialias, QCfont_entity, QCfc_unknown_spec;
+extern Lisp_Object Qp;
+
 
 /* Important character set symbols.  */
 extern Lisp_Object Qascii_0;
@@ -821,26 +823,38 @@
 
 #ifdef HAVE_FREETYPE
 extern struct font_driver ftfont_driver;
+extern void syms_of_ftfont (void);
 #endif	/* HAVE_FREETYPE */
 #ifdef HAVE_X_WINDOWS
 extern struct font_driver xfont_driver;
 extern struct font_driver ftxfont_driver;
+extern void syms_of_xfont (void);
+extern void syms_of_ftxfont (void);
 #ifdef HAVE_XFT
 extern struct font_driver xftfont_driver;
+extern void syms_of_xftfont (void);
 #endif	/* HAVE_XFT */
+#ifdef HAVE_BDFFONT
+extern void syms_of_bdffont (void);
+#endif	/* HAVE_BDFFONT */
 #endif	/* HAVE_X_WINDOWS */
 #ifdef WINDOWSNT
 extern struct font_driver w32font_driver;
 extern struct font_driver uniscribe_font_driver;
+extern void syms_of_w32font (void);
 #endif	/* WINDOWSNT */
 #ifdef HAVE_NS
+extern Lisp_Object Qfontsize;
 extern struct font_driver nsfont_driver;
+extern void syms_of_nsfont (void);
 #endif	/* HAVE_NS */
 
 #ifndef FONT_DEBUG
 #define FONT_DEBUG
 #endif
 
+extern Lisp_Object QCfoundry, QCadstyle, QCregistry;
+
 extern Lisp_Object Vfont_log;
 extern void font_add_log (char *, Lisp_Object, Lisp_Object);
 extern void font_deferred_log (char *, Lisp_Object, Lisp_Object);
--- a/src/fontset.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/fontset.c	Fri Aug 06 00:26:44 2010 +0000
@@ -177,7 +177,6 @@
 
 /********** VARIABLES and FUNCTION PROTOTYPES **********/
 
-extern Lisp_Object Qfont;
 static Lisp_Object Qfontset;
 static Lisp_Object Qfontset_info;
 static Lisp_Object Qprepend, Qappend;
@@ -388,8 +387,6 @@
    If PREFERRED_FAMILY is not nil, that family has the higher priority
    if the encoding charsets or languages in font-specs are the same.  */
 
-extern Lisp_Object Fassoc_string (Lisp_Object, Lisp_Object, Lisp_Object);
-
 static void
 reorder_font_vector (Lisp_Object font_group, struct font *font)
 {
@@ -1395,7 +1392,6 @@
   ASET (arg, 4, script_range_list);
 }
 
-extern Lisp_Object QCfamily, QCregistry;
 static void update_auto_fontset_alist (Lisp_Object, Lisp_Object);
 
 
--- a/src/fontset.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/fontset.h	Fri Aug 06 00:26:44 2010 +0000
@@ -44,7 +44,9 @@
 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 find_font_encoding (Lisp_Object);
 
+extern Lisp_Object Qlatin;
 extern Lisp_Object Vuse_default_ascent;
 extern Lisp_Object Vignore_relative_composition;
 extern Lisp_Object Valternate_fontname_alist;
--- a/src/frame.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/frame.c	Fri Aug 06 00:26:44 2010 +0000
@@ -198,13 +198,6 @@
 
 Lisp_Object Vframe_list;
 
-extern Lisp_Object Vminibuffer_list;
-extern Lisp_Object get_minibuffer (int);
-extern Lisp_Object Fhandle_switch_frame (Lisp_Object event);
-extern Lisp_Object Fredirect_frame_focus (Lisp_Object frame, Lisp_Object focus_frame);
-extern Lisp_Object x_get_focus_frame (struct frame *frame);
-extern Lisp_Object QCname, Qfont_param;
-
 
 DEFUN ("framep", Fframep, Sframep, 1, 1, 0,
        doc: /* Return non-nil if OBJECT is a frame.
@@ -1281,8 +1274,6 @@
   return 1;
 }
 
-extern Lisp_Object Qrun_hook_with_args;
-
 /* Delete FRAME.  When FORCE equals Qnoelisp, delete FRAME
   unconditionally.  x_connection_closed and delete_terminal use
   this.  Any other value of FORCE implements the semantics
@@ -2822,9 +2813,6 @@
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-extern Lisp_Object Qbox;
-extern Lisp_Object Qtop;
-
 /* Calculate fullscreen size.  Return in *TOP_POS and *LEFT_POS the
    wanted positions of the WM window (not Emacs window).
    Return in *WIDTH and *HEIGHT the wanted width and height of Emacs
--- a/src/frame.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/frame.h	Fri Aug 06 00:26:44 2010 +0000
@@ -1049,6 +1049,7 @@
 extern Lisp_Object Qbackground_color, Qforeground_color;
 extern Lisp_Object Qicon, Qicon_name, Qicon_type, Qicon_left, Qicon_top;
 extern Lisp_Object Qinternal_border_width;
+extern Lisp_Object Qtooltip;
 extern Lisp_Object Qmenu_bar_lines, Qtool_bar_lines;
 extern Lisp_Object Qmouse_color;
 extern Lisp_Object Qname, Qtitle;
@@ -1078,6 +1079,8 @@
 extern Lisp_Object Qleft, Qright, Qtop, Qbox, Qbottom;
 extern Lisp_Object Qdisplay;
 
+extern Lisp_Object Qrun_hook_with_args;
+
 #ifdef HAVE_WINDOW_SYSTEM
 
 /* The class of this X application.  */
@@ -1095,6 +1098,7 @@
 
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
+extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
 
 
 extern Lisp_Object Qface_set_after_frame_default;
@@ -1138,6 +1142,9 @@
 					   Lisp_Object component,
 					   Lisp_Object subclass);
 
+/* In xmenu.c */
+extern void set_frame_menubar (FRAME_PTR, int, int);
+
 #endif /* HAVE_WINDOW_SYSTEM */
 
 #endif /* not EMACS_FRAME_H */
--- a/src/fringe.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/fringe.c	Fri Aug 06 00:26:44 2010 +0000
@@ -32,10 +32,6 @@
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-extern Lisp_Object Qfringe;
-extern Lisp_Object Qtop, Qbottom, Qcenter;
-extern Lisp_Object Qup, Qdown, Qleft, Qright;
-
 /* Non-nil means that newline may flow into the right fringe.  */
 
 Lisp_Object Voverflow_newline_into_fringe;
@@ -83,10 +79,8 @@
    must specify physical bitmap symbols.
 */
 
-extern Lisp_Object Qunknown;
 Lisp_Object Qtruncation, Qcontinuation, Qoverlay_arrow;
 Lisp_Object Qempty_line, Qtop_bottom;
-extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
 Lisp_Object Qhollow_small;
 
 enum fringe_bitmap_align
--- a/src/ftfont.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/ftfont.c	Fri Aug 06 00:26:44 2010 +0000
@@ -144,8 +144,6 @@
     { NULL }
   };
 
-extern Lisp_Object Qc, Qm, Qp, Qd;
-
 /* Dirty hack for handing ADSTYLE property.
 
    Fontconfig (actually the underlying FreeType) gives such ADSTYLE
@@ -548,8 +546,6 @@
     ftfont_filter_properties, /* filter_properties */
   };
 
-extern Lisp_Object QCname;
-
 static Lisp_Object
 ftfont_get_cache (FRAME_PTR f)
 {
@@ -2333,8 +2329,6 @@
 
 static int m17n_flt_initialized;
 
-extern Lisp_Object QCfamily;
-
 static Lisp_Object
 ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font,
 		     FT_Face ft_face, OTF *otf, FT_Matrix *matrix)
--- a/src/ftfont.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/ftfont.h	Fri Aug 06 00:26:44 2010 +0000
@@ -36,6 +36,9 @@
 #endif	/* HAVE_M17N_FLT */
 #endif	/* HAVE_LIBOTF */
 
+extern Lisp_Object ftfont_font_format (FcPattern *, Lisp_Object);
+extern FcCharSet *ftfont_get_fc_charset (Lisp_Object);
+
 #endif	/* EMACS_FTFONT_H */
 
 /* arch-tag: cec13d1c-7156-4997-9ebd-e989040c3d78
--- a/src/gtkutil.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/gtkutil.c	Fri Aug 06 00:26:44 2010 +0000
@@ -4156,8 +4156,6 @@
 
 /* Update the tool bar for frame F.  Add new buttons and remove old.  */
 
-extern Lisp_Object Qx_gtk_map_stock;
-
 void
 update_frame_tool_bar (FRAME_PTR f)
 {
--- a/src/indent.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/indent.c	Fri Aug 06 00:26:44 2010 +0000
@@ -469,7 +469,6 @@
   return col;
 }
 
-extern Lisp_Object Qspace, QCwidth, QCalign_to;
 
 /* Check the presence of a display property and compute its width.
    If a property was found and its width was found as well, return
--- a/src/keyboard.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/keyboard.c	Fri Aug 06 00:26:44 2010 +0000
@@ -465,8 +465,6 @@
 Lisp_Object Qselect_window;
 Lisp_Object Qhelp_echo;
 
-extern Lisp_Object Qremap;
-
 #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
 Lisp_Object Qmouse_fixup_help_message;
 #endif
@@ -513,9 +511,6 @@
 Lisp_Object Qvertical_line;
 Lisp_Object Qvertical_scroll_bar;
 Lisp_Object Qmenu_bar;
-extern Lisp_Object Qleft_margin, Qright_margin;
-extern Lisp_Object Qleft_fringe, Qright_fringe;
-extern Lisp_Object QCmap;
 
 Lisp_Object recursive_edit_unwind (Lisp_Object buffer), command_loop (void);
 Lisp_Object Fthis_command_keys (void);
@@ -536,8 +531,6 @@
 /* Incremented whenever a timer is run.  */
 int timers_run;
 
-extern Lisp_Object Vprint_level, Vprint_length;
-
 /* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
    happens.  */
 EMACS_TIME *input_available_clear_time;
@@ -644,7 +637,6 @@
    to support it.  */
 static int cannot_suspend;
 
-extern Lisp_Object Qidentity, Qonly;
 
 /* Install the string STR as the beginning of the string of echoing,
    so that it serves as a prompt for the next character.
@@ -1835,8 +1827,6 @@
    `composition', `display' and `invisible' properties.
    LAST_PT is the last position of point.  */
 
-extern Lisp_Object get_pos_property (Lisp_Object, Lisp_Object, Lisp_Object);
-
 static void
 adjust_point_for_property (int last_pt, int modified)
 {
@@ -4363,8 +4353,6 @@
    ...).  Each element has the form (FUN . ARGS).  */
 Lisp_Object pending_funcalls;
 
-extern Lisp_Object Qapply;
-
 /* Check whether a timer has fired.  To prevent larger problems we simply
    disregard elements that are not proper timers.  Do not make a circular
    timer list for the time being.
@@ -8007,9 +7995,8 @@
 
 static int ntool_bar_items;
 
-/* The symbols `tool-bar', `:image' and `:rtl'.  */
-
-extern Lisp_Object Qtool_bar;
+/* The symbols `:image' and `:rtl'.  */
+
 Lisp_Object QCimage;
 Lisp_Object Qrtl;
 
@@ -10233,7 +10220,6 @@
   register Lisp_Object final;
   register Lisp_Object tem;
   Lisp_Object prefixarg;
-  extern int debug_on_next_call;
 
   debug_on_next_call = 0;
 
--- a/src/keyboard.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/keyboard.h	Fri Aug 06 00:26:44 2010 +0000
@@ -366,8 +366,6 @@
   struct _widget_value*	next;
 } widget_value;
 
-extern widget_value *xmalloc_widget_value (void);
-extern widget_value *digest_single_submenu (int, int, int);
 #endif /* HAVE_NS || HAVE_NTGUI */
 
 
@@ -465,6 +463,28 @@
    command is stored in this-original-command.  It is nil otherwise.  */
 extern Lisp_Object Vthis_original_command;
 
+/* Non-nil disable property on a command means
+   do not execute it; call disabled-command-function's value instead.  */
+extern Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
+
+/* A mask of extra modifier bits to put into every keyboard char.  */
+extern EMACS_INT extra_keyboard_modifiers;
+
+/* If non-nil, this implements the current input method.  */
+extern Lisp_Object Vinput_method_function;
+extern Lisp_Object Qinput_method_function;
+
+/* An event header symbol HEAD may have a property named
+   Qevent_symbol_element_mask, which is of the form (BASE MODIFIERS);
+   BASE is the base, unmodified version of HEAD, and MODIFIERS is the
+   mask of modifiers applied to it.  If present, this is used to help
+   speed up parse_modifiers.  */
+extern Lisp_Object Qevent_symbol_element_mask;
+
+/* The timestamp of the last input event we received from the X server.
+   X Windows wants this for selection ownership.  */
+extern unsigned long last_event_timestamp;
+
 extern int parse_menu_item (Lisp_Object, int);
 
 extern void echo_now (void);
--- a/src/keymap.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/keymap.c	Fri Aug 06 00:26:44 2010 +0000
@@ -103,11 +103,6 @@
 /* Pre-allocated 2-element vector for Fcommand_remapping to use.  */
 static Lisp_Object command_remapping_vector;
 
-/* A char with the CHAR_META bit set in a vector or the 0200 bit set
-   in a string key sequence is equivalent to prefixing with this
-   character.  */
-extern Lisp_Object meta_prefix_char;
-
 /* Hash table used to cache a reverse-map to speed up calls to where-is.  */
 static Lisp_Object where_is_cache;
 /* Which keymaps are reverse-stored in the cache.  */
--- a/src/keymap.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/keymap.h	Fri Aug 06 00:26:44 2010 +0000
@@ -24,6 +24,7 @@
 extern Lisp_Object Qkeymap, Qmenu_bar;
 extern Lisp_Object Qremap;
 extern Lisp_Object Qmenu_item;
+extern Lisp_Object meta_prefix_char;
 extern Lisp_Object Voverriding_local_map;
 extern Lisp_Object Voverriding_local_map_menu_flag;
 extern Lisp_Object current_global_map;
--- a/src/lisp.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/lisp.h	Fri Aug 06 00:26:44 2010 +0000
@@ -508,12 +508,6 @@
 #define EQ(x, y) (XHASH (x) == XHASH (y))
 
 #ifndef XPNTR
-#ifdef HAVE_SHM
-/* In this representation, data is found in two widely separated segments.  */
-extern size_t pure_size;
-#define XPNTR(a) \
-  (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS))
-#else /* not HAVE_SHM */
 #ifdef DATA_SEG_BITS
 /* This case is used for the rt-pc.
    In the diffs I was given, it checked for ptr = 0
@@ -528,7 +522,6 @@
    size.  */
 #define XPNTR(a) ((EMACS_INT) XUINT (a))
 #endif
-#endif /* not HAVE_SHM */
 #endif /* no XPNTR */
 
 /* Largest and smallest representable fixnum values.  These are the C
@@ -2270,7 +2263,7 @@
 extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
 extern Lisp_Object Qtext_read_only;
 extern Lisp_Object Qinteractive_form;
-
+extern Lisp_Object Qcircular_list;
 extern Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp;
 extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
 extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
@@ -2449,6 +2442,7 @@
 extern void syms_of_syntax (void);
 
 /* Defined in fns.c */
+extern Lisp_Object QCrehash_size, QCrehash_threshold;
 extern int use_dialog_box;
 extern int use_file_dialog;
 extern int next_almost_prime (int);
@@ -2457,7 +2451,7 @@
 extern Lisp_Object Qcursor_in_echo_area;
 extern Lisp_Object Qstring_lessp;
 extern Lisp_Object Vfeatures;
-extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq;
+extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq, Qeql;
 unsigned sxhash (Lisp_Object, int);
 Lisp_Object make_hash_table (Lisp_Object, Lisp_Object, Lisp_Object,
                              Lisp_Object, Lisp_Object, Lisp_Object,
@@ -2622,6 +2616,7 @@
 
 /* Defined in dispnew.c */
 extern Lisp_Object selected_frame;
+extern Lisp_Object Vwindow_system_version;
 extern EMACS_INT baud_rate;
 EXFUN (Fding, 1);
 EXFUN (Fredraw_frame, 1);
@@ -2637,12 +2632,21 @@
 extern Lisp_Object Qinhibit_redisplay, Qdisplay;
 extern Lisp_Object Qinhibit_eval_during_redisplay;
 extern Lisp_Object Qmessage_truncate_lines;
+extern Lisp_Object Qmenu_bar_update_hook;
+extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
+extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz;
 extern Lisp_Object Qspace, Qcenter, QCalign_to;
+extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
+extern Lisp_Object Qleft_margin, Qright_margin;
 extern Lisp_Object Vmessage_log_max;
 extern Lisp_Object QCdata, QCfile;
+extern Lisp_Object QCmap;
 extern Lisp_Object Qrisky_local_variable;
+extern Lisp_Object Vinhibit_redisplay;
 extern int message_enable_multibyte;
+extern int noninteractive_need_newline;
+extern EMACS_INT scroll_margin;
 extern Lisp_Object echo_area_buffer[2];
 extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
 extern void check_message_stack (void);
@@ -2789,7 +2793,7 @@
 
 /* Defined in print.c */
 extern Lisp_Object Vprin1_to_string_buffer;
-extern Lisp_Object Vprint_level;
+extern Lisp_Object Vprint_level, Vprint_length;
 extern void debug_print (Lisp_Object);
 EXFUN (Fprin1, 2);
 EXFUN (Fprin1_to_string, 2);
@@ -2815,9 +2819,12 @@
 extern int doprnt (char *, int, const char *, const char *, va_list);
 
 /* Defined in lread.c */
+extern Lisp_Object Vafter_load_alist;
 extern Lisp_Object Qvariable_documentation, Qstandard_input;
 extern Lisp_Object Qfunction;
+extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
 extern Lisp_Object Vobarray, initial_obarray, Vstandard_input;
+extern int load_in_progress;
 EXFUN (Fread, 1);
 EXFUN (Fread_from_string, 3);
 EXFUN (Fintern, 2);
@@ -2939,8 +2946,10 @@
 extern void syms_of_eval (void);
 
 /* Defined in editfns.c */
+extern Lisp_Object last_nonmenu_event;
 extern Lisp_Object Qfield;
 extern Lisp_Object Vinhibit_field_text_motion;
+extern Lisp_Object Vsystem_name;
 extern Lisp_Object Vuser_login_name;
 EXFUN (Fpropertize, MANY);
 EXFUN (Fcurrent_message, 0);
@@ -3061,8 +3070,10 @@
 /* Defined in fileio.c */
 
 extern Lisp_Object Qfile_error;
+extern Lisp_Object Qfile_exists_p;
 extern Lisp_Object Qfile_directory_p;
 extern Lisp_Object Qinsert_file_contents;
+extern Lisp_Object Vauto_save_list_file_name;
 EXFUN (Ffind_file_name_handler, 2);
 EXFUN (Ffile_name_as_directory, 1);
 EXFUN (Fmake_temp_name, 1);
@@ -3126,6 +3137,7 @@
 extern Lisp_Object Qcompletion_ignore_case;
 extern Lisp_Object Vcompletion_regexp_list;
 extern Lisp_Object Vhistory_length;
+extern Lisp_Object Vminibuffer_list;
 extern Lisp_Object last_minibuf_string;
 extern int completion_ignore_case;
 extern int history_delete_duplicates;
@@ -3148,6 +3160,7 @@
 /* Defined in callint.c */
 
 extern Lisp_Object Qminus, Qplus, Vcurrent_prefix_arg;
+extern Lisp_Object Qwhen;
 extern Lisp_Object Vcommand_history;
 extern Lisp_Object Vmark_even_if_inactive;
 extern Lisp_Object Qcall_interactively, Qmouse_leave_buffer_hook;
@@ -3157,6 +3170,7 @@
 
 /* Defined in casefiddle.c */
 
+extern Lisp_Object Qidentity;
 EXFUN (Fdowncase, 1);
 EXFUN (Fupcase, 1);
 EXFUN (Fcapitalize, 1);
@@ -3180,6 +3194,9 @@
 extern struct kboard *echo_kboard;
 extern void cancel_echoing (void);
 extern Lisp_Object Qdisabled, QCfilter;
+extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle;
+extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll;
+extern Lisp_Object Qtop, Qratio;
 extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level;
 extern Lisp_Object Vthrow_on_input;
 extern int input_pending;
@@ -3271,6 +3288,8 @@
 extern void syms_of_frame (void);
 
 /* Defined in emacs.c */
+extern char **initial_argv;
+extern int initial_argc;
 #if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
 extern int display_arg;
 #endif
@@ -3336,6 +3355,7 @@
 extern Lisp_Object Vexec_path, Vexec_suffixes,
                    Vexec_directory, Vdata_directory;
 extern Lisp_Object Vdoc_directory;
+extern Lisp_Object Vshell_file_name;
 EXFUN (Fcall_process, MANY);
 extern int child_setup (int, int, int, char **, int, Lisp_Object);
 extern void init_callproc_1 (void);
@@ -3344,6 +3364,7 @@
 extern void syms_of_callproc (void);
 
 /* Defined in doc.c */
+extern Lisp_Object Qfunction_documentation;
 extern Lisp_Object Vdoc_file_name;
 EXFUN (Fsubstitute_command_keys, 1);
 EXFUN (Fdocumentation, 2);
@@ -3504,16 +3525,26 @@
 EXFUN (Fnew_fontset, 2);
 
 /* Defined in xfns.c, w32fns.c, or macfns.c */
+extern Lisp_Object Qfont_param;
+extern Lisp_Object Vx_no_window_manager;
 EXFUN (Fxw_display_color_p, 1);
 EXFUN (Fx_file_dialog, 5);
 EXFUN (Fx_focus_frame, 1);
 #endif
 
 /* Defined in xfaces.c */
+extern Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe;
+extern Lisp_Object Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse, Qmenu;
+extern Lisp_Object Qmode_line_inactive, Qvertical_border;
 extern Lisp_Object Qface;
 extern Lisp_Object Qnormal;
 extern Lisp_Object QCfamily, QCweight, QCslant, QCwidth;
 extern Lisp_Object QCheight, QCsize, QCname, QCwidth, QCforeground, QCbackground;
+extern Lisp_Object Vface_alternative_font_family_alist;
+extern Lisp_Object Vface_font_rescale_alist;
+extern Lisp_Object Vface_ignored_fonts;
+extern Lisp_Object Vface_alternative_font_registry_alist;
+extern Lisp_Object Vscalable_fonts_allowed;
 EXFUN (Fclear_face_cache, 1);
 EXFUN (Fx_load_color_file, 1);
 extern void syms_of_xfaces (void);
--- a/src/lread.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/lread.c	Fri Aug 06 00:26:44 2010 +0000
@@ -75,7 +75,6 @@
 Lisp_Object Qweakness;
 Lisp_Object Qrehash_size;
 Lisp_Object Qrehash_threshold;
-extern Lisp_Object QCtest, QCsize, QCrehash_size, QCrehash_threshold, QCweakness;
 
 Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list;
 Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist;
@@ -91,9 +90,6 @@
 
 static Lisp_Object Qload_force_doc_strings;
 
-extern Lisp_Object Qevent_symbol_element_mask;
-extern Lisp_Object Qfile_exists_p;
-
 /* non-zero if inside `load' */
 int load_in_progress;
 static Lisp_Object Qload_in_progress;
--- a/src/menu.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/menu.c	Fri Aug 06 00:26:44 2010 +0000
@@ -61,12 +61,6 @@
 #define HAVE_BOXES 1
 #endif
 
-/* The timestamp of the last input event Emacs received from the X server.  */
-/* Defined in keyboard.c.  */
-extern unsigned long last_event_timestamp;
-
-extern Lisp_Object QCtoggle, QCradio;
-
 Lisp_Object menu_items;
 
 /* If non-nil, means that the global vars defined here are already in use.
--- a/src/menu.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/menu.h	Fri Aug 06 00:26:44 2010 +0000
@@ -32,6 +32,8 @@
 extern void update_submenu_strings (widget_value *);
 extern void find_and_call_menu_selection (FRAME_PTR, int,
                                           Lisp_Object, void *);
+extern widget_value *xmalloc_widget_value (void);
+extern widget_value *digest_single_submenu (int, int, int);
 #endif
 
 #ifdef HAVE_X_WINDOWS
--- a/src/print.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/print.c	Fri Aug 06 00:26:44 2010 +0000
@@ -42,7 +42,6 @@
 Lisp_Object Qtemp_buffer_setup_hook;
 
 /* These are used to print like we read.  */
-extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
 
 Lisp_Object Vfloat_output_format, Qfloat_output_format;
 
@@ -161,11 +160,6 @@
 #define PRINT_NUMBER_OBJECT(table,i) XVECTOR ((table))->contents[(i) * 2]
 #define PRINT_NUMBER_STATUS(table,i) XVECTOR ((table))->contents[(i) * 2 + 1]
 
-/* Nonzero means print newline to stdout before next minibuffer message.
-   Defined in xdisp.c */
-
-extern int noninteractive_need_newline;
-
 void print_interval (INTERVAL interval, Lisp_Object printcharfun);
 
 /* GDB resets this to zero on W32 to disable OutputDebugString calls.  */
@@ -1401,7 +1395,6 @@
 /* A flag to control printing of `charset' text property.
    The default value is Qdefault. */
 Lisp_Object Vprint_charset_text_property;
-extern Lisp_Object Qdefault;
 
 static void print_check_string_charset_prop (INTERVAL interval, Lisp_Object string);
 
--- a/src/search.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/search.c	Fri Aug 06 00:26:44 2010 +0000
@@ -504,8 +504,6 @@
    This does not clobber the match data.
    We assume that STRING contains single-byte characters.  */
 
-extern Lisp_Object Vascii_downcase_table;
-
 int
 fast_c_string_match_ignore_case (Lisp_Object regexp, const char *string)
 {
--- a/src/sound.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/sound.c	Fri Aug 06 00:26:44 2010 +0000
@@ -99,7 +99,6 @@
 
 /* Symbols.  */
 
-extern Lisp_Object QCfile, QCdata;
 Lisp_Object QCvolume, QCdevice;
 Lisp_Object Qsound;
 Lisp_Object Qplay_sound_functions;
--- a/src/syssignal.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/syssignal.h	Fri Aug 06 00:26:44 2010 +0000
@@ -26,10 +26,6 @@
 #define FORWARD_SIGNAL_TO_MAIN_THREAD
 #endif
 
-#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-extern pthread_t main_thread;
-#endif
-
 /* Don't #include <signal.h>.  That header should always be #included
    before "config.h", because some configuration files (like s/hpux.h)
    indicate that SIGIO doesn't work by #undef-ing SIGIO.  If this file
@@ -69,8 +65,6 @@
 #ifndef sigsetmask
 #define sigsetmask(SIG)  sys_sigsetmask (SIG)
 #endif
-#define sighold(SIG)     ONLY_USED_IN_BSD_4_1
-#define sigrelse(SIG)    ONLY_USED_IN_BSD_4_1
 #undef signal
 #define signal(SIG,ACT)      sys_signal(SIG,ACT)
 
@@ -85,27 +79,6 @@
 
 #define sys_sigdel(MASK,SIG) sigdelset (&MASK,SIG)
 
-#ifndef SIGMASKTYPE
-#define SIGMASKTYPE int
-#endif
-
-#ifndef SIGEMPTYMASK
-#define SIGEMPTYMASK (0)
-#endif
-
-#ifndef SIGFULLMASK
-#define SIGFULLMASK (0xffffffff)
-#endif
-
-#ifndef sigmask
-#define sigmask(no) (1L << ((no) - 1))
-#endif
-
-#ifndef sigunblock
-#define sigunblock(SIG) \
-{ SIGMASKTYPE omask = sigblock (SIGFULLMASK); sigsetmask (omask & ~SIG); }
-#endif
-
 #define sigfree() sigsetmask (SIGEMPTYMASK)
 
 #if defined (SIGINFO) && defined (BROKEN_SIGINFO)
@@ -164,6 +137,7 @@
 #endif
 
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
+extern pthread_t main_thread;
 #define SIGNAL_THREAD_CHECK(signo)                                      \
   do {                                                                  \
     if (!pthread_equal (pthread_self (), main_thread))			\
--- a/src/w32font.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/w32font.c	Fri Aug 06 00:26:44 2010 +0000
@@ -72,7 +72,7 @@
 static Lisp_Object Qzh;
 
 /* scripts */
-static Lisp_Object Qlatin, Qgreek, Qcoptic, Qcyrillic, Qarmenian, Qhebrew;
+static Lisp_Object Qgreek, Qcoptic, Qcyrillic, Qarmenian, Qhebrew;
 static Lisp_Object Qarabic, Qsyriac, Qnko, Qthaana, Qdevanagari, Qbengali;
 static Lisp_Object Qgurmukhi, Qgujarati, Qoriya, Qtamil, Qtelugu;
 static Lisp_Object Qkannada, Qmalayalam, Qsinhala, Qthai, Qlao;
--- a/src/window.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/window.c	Fri Aug 06 00:26:44 2010 +0000
@@ -57,8 +57,6 @@
 Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command;
 Lisp_Object Qwindow_size_fixed;
 
-extern Lisp_Object Qleft_margin, Qright_margin;
-
 static int displayed_window_lines (struct window *);
 static struct window *decode_window (Lisp_Object);
 static int count_windows (struct window *);
@@ -191,16 +189,11 @@
 static int inhibit_frame_unsplittable;
 #endif /* 0 */
 
-extern EMACS_INT scroll_margin;
-
-extern Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
-
 /* If non-nil, then the `recenter' command with a nil argument
    the entire frame to be redrawn; the special value `tty' causes the
    frame to be redrawn only if it is a tty frame.  */
 
 static Lisp_Object Vrecenter_redisplay;
-extern Lisp_Object Qtty;
 
 
 DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0,
--- a/src/xdisp.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xdisp.c	Fri Aug 06 00:26:44 2010 +0000
@@ -239,6 +239,7 @@
 #include "macros.h"
 #include "disptab.h"
 #include "termhooks.h"
+#include "termopts.h"
 #include "intervals.h"
 #include "coding.h"
 #include "process.h"
@@ -268,23 +269,6 @@
 
 #define INFINITY 10000000
 
-#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
-    || defined(HAVE_NS) || defined (USE_GTK)
-extern void set_frame_menubar (struct frame *f, int, int);
-#endif
-
-extern int interrupt_input;
-extern int command_loop_level;
-
-extern Lisp_Object Vminibuffer_list;
-
-extern Lisp_Object Qface;
-extern Lisp_Object Qmode_line, Qmode_line_inactive, Qheader_line;
-
-extern Lisp_Object Qwhen;
-extern Lisp_Object Qhelp_echo;
-extern Lisp_Object Qbefore_string, Qafter_string;
-
 Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
 Lisp_Object Qwindow_text_change_functions, Vwindow_text_change_functions;
@@ -385,10 +369,6 @@
 Lisp_Object Qcenter;
 Lisp_Object Qmargin, Qpointer;
 Lisp_Object Qline_height;
-extern Lisp_Object Qheight;
-extern Lisp_Object QCwidth, QCheight, QCascent;
-extern Lisp_Object Qscroll_bar;
-extern Lisp_Object Qcursor;
 
 /* Non-nil means highlight trailing whitespace.  */
 
@@ -399,7 +379,6 @@
 Lisp_Object Vnobreak_char_display;
 
 #ifdef HAVE_WINDOW_SYSTEM
-extern Lisp_Object Voverflow_newline_into_fringe;
 
 /* Test if overflow newline into fringe.  Called with iterator IT
    at or past right window margin, and with IT->current_x set.  */
--- a/src/xfaces.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xfaces.c	Fri Aug 06 00:26:44 2010 +0000
@@ -321,11 +321,6 @@
 Lisp_Object QCoverline, QCstrike_through, QCbox, QCinherit;
 Lisp_Object QCfontset;
 
-/* Keywords symbols used for font properties.  */
-extern Lisp_Object QCfoundry, QCadstyle, QCregistry;
-extern Lisp_Object QCspacing, QCsize, QCavgwidth;
-extern Lisp_Object Qp;
-
 /* Symbols used for attribute values.  */
 
 Lisp_Object Qnormal, Qbold, Qultra_light, Qextra_light, Qlight;
@@ -351,7 +346,6 @@
 Lisp_Object Qdefault, Qtool_bar, Qregion, Qfringe;
 Lisp_Object Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse, Qmenu;
 Lisp_Object Qmode_line_inactive, Qvertical_border;
-extern Lisp_Object Qmode_line;
 
 /* The symbol `face-alias'.  A symbols having that property is an
    alias for another face.  Value of the property is the name of
@@ -359,8 +353,6 @@
 
 Lisp_Object Qface_alias;
 
-extern Lisp_Object Qcircular_list;
-
 /* Default stipple pattern used on monochrome displays.  This stipple
    pattern is used on monochrome displays instead of shades of gray
    for a face background color.  See `set-face-stipple' for possible
--- a/src/xfns.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xfns.c	Fri Aug 06 00:26:44 2010 +0000
@@ -202,19 +202,6 @@
 Lisp_Object Qcompound_text, Qcancel_timer;
 Lisp_Object Qfont_param;
 
-/* In dispnew.c */
-
-extern Lisp_Object Vwindow_system_version;
-
-/* In editfns.c */
-
-extern Lisp_Object Vsystem_name;
-
-/* The below are defined in frame.c.  */
-
-extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
-extern Lisp_Object Qtooltip;
-
 #if GLYPH_DEBUG
 int image_cache_refcount, dpyinfo_refcount;
 #endif
--- a/src/xfont.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xfont.c	Fri Aug 06 00:26:44 2010 +0000
@@ -154,8 +154,6 @@
     NULL, /* filter_properties */
   };
 
-extern Lisp_Object QCname;
-
 static Lisp_Object
 xfont_get_cache (FRAME_PTR f)
 {
@@ -164,8 +162,6 @@
   return (dpyinfo->name_list_element);
 }
 
-extern Lisp_Object Vface_alternative_font_registry_alist;
-
 static int
 compare_font_names (const void *name1, const void *name2)
 {
@@ -289,8 +285,6 @@
 /* Re-usable vector to store characteristic font properites.   */
 static Lisp_Object xfont_scratch_props;
 
-extern Lisp_Object Qlatin;
-
 /* Return a list of scripts supported by the font of FONTNAME whose
    characteristic properties are in PROPS and whose encoding charset
    is ENCODING.  A caller must call BLOCK_INPUT in advance.  */
@@ -339,8 +333,6 @@
   return scripts;
 }
 
-extern Lisp_Object Vscalable_fonts_allowed;
-
 static Lisp_Object
 xfont_list_pattern (Display *display, char *pattern,
 		    Lisp_Object registry, Lisp_Object script)
@@ -687,8 +679,6 @@
   return list;
 }
 
-extern Lisp_Object QCavgwidth;
-
 static Lisp_Object
 xfont_open (FRAME_PTR f, Lisp_Object entity, int pixel_size)
 {
--- a/src/xftfont.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xftfont.c	Fri Aug 06 00:26:44 2010 +0000
@@ -171,10 +171,6 @@
   return entity;
 }
 
-extern Lisp_Object ftfont_font_format (FcPattern *, Lisp_Object);
-extern FcCharSet *ftfont_get_fc_charset (Lisp_Object);
-extern Lisp_Object QCantialias;
-
 static FcChar8 ascii_printable[95];
 
 static void
@@ -552,8 +548,6 @@
     }
 }
 
-extern Lisp_Object Qja, Qko;
-
 static int
 xftfont_has_char (Lisp_Object font, int c)
 {
--- a/src/xmenu.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xmenu.c	Fri Aug 06 00:26:44 2010 +0000
@@ -109,26 +109,7 @@
 
 Lisp_Object Qdebug_on_next_call;
 
-extern Lisp_Object Qmenu_bar;
-
-extern Lisp_Object QCtoggle, QCradio;
-
-extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
-
-extern Lisp_Object Qmenu_bar_update_hook;
-
-#ifdef USE_X_TOOLKIT
-extern void set_frame_menubar (FRAME_PTR, int, int);
-extern XtAppContext Xt_app_con;
-
-static Lisp_Object xdialog_show (FRAME_PTR, int, Lisp_Object, Lisp_Object,
-                                 char **);
-static void popup_get_selection (XEvent *, struct x_display_info *,
-                                 LWLIB_ID, int);
-#endif /* USE_X_TOOLKIT */
-
-#ifdef USE_GTK
-extern void set_frame_menubar (FRAME_PTR, int, int);
+#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
 static Lisp_Object xdialog_show (FRAME_PTR, int, Lisp_Object, Lisp_Object,
                                  char **);
 #endif
@@ -141,12 +122,6 @@
 
 static int next_menubar_widget_id;
 
-/* For NS and NTGUI, these prototypes are defined in keyboard.h.  */
-#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
-extern widget_value *xmalloc_widget_value (void);
-extern widget_value *digest_single_submenu (int, int, int);
-#endif
-
 
 #ifdef USE_X_TOOLKIT
 
--- a/src/xterm.c	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xterm.c	Fri Aug 06 00:26:44 2010 +0000
@@ -293,23 +293,6 @@
 
 static int x_noop_count;
 
-/* Initial values of argv and argc.  */
-
-extern char **initial_argv;
-extern int initial_argc;
-
-extern Lisp_Object Vcommand_line_args, Vsystem_name;
-
-/* Tells if a window manager is present or not.  */
-
-extern Lisp_Object Vx_no_window_manager;
-
-extern Lisp_Object Qeql;
-
-/* A mask of extra modifier bits to put into every keyboard char.  */
-
-extern EMACS_INT extra_keyboard_modifiers;
-
 /* The keysyms to use for the various modifiers.  */
 
 Lisp_Object Vx_alt_keysym, Vx_hyper_keysym, Vx_meta_keysym, Vx_super_keysym;
@@ -329,8 +312,6 @@
 
 /* Used in x_flush.  */
 
-extern Lisp_Object Vinhibit_redisplay;
-
 extern XrmDatabase x_load_resources (Display *, const char *, const char *,
 				     const char *);
 extern int x_bitmap_mask (FRAME_PTR, int);
--- a/src/xterm.h	Thu Aug 05 22:50:19 2010 +0000
+++ b/src/xterm.h	Fri Aug 06 00:26:44 2010 +0000
@@ -1168,6 +1168,7 @@
 
 /* Defined in xterm.c */
 
+extern Lisp_Object Qx_gtk_map_stock;
 extern void xembed_set_info (struct frame *f, enum xembed_info flags);
 extern void xembed_send_message (struct frame *f, Time time,
                                  enum xembed_message message,