changeset 109573:228a5fa4eda0

Remove extern declarations from .c files, and them to .h files. * src/xsmfns.c (Vuser_login_name): * src/xrdb.c (Vdouble_click_time): * src/xfaces.c (xic_create_fontsetname): * src/w32select.c (waiting_for_input): * src/print.c (minibuffer_auto_raise): * src/msdos.c (Qhelp_echo): * src/macros.c (real_this_command): * src/keymap.c (Voverriding_local_map): * src/xterm.c (poll_for_input_1, gray_bitmap_width) (gray_bitmap_height, gray_bitmap_bits; * src/xmenu.c ( Voverriding_local_map) (Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box) (use_file_dialog, Xt_app_con): * src/xdisp.c (minibuffer_auto_raise, Voverriding_local_map) (Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible) (Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines) (Qtool_bar_lines, ignore_mouse_drag_p): * src/minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky) (Qrear_nonsticky, nconc2): * src/keyboard.c (current_global_map, minibuf_level, Qmenu_item) (Vhistory_length, Vtranslation_table_for_input, Qcomposition) (Qdisplay, Qafter_string, Qbefore_string, Qundefined): * src/fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name) (minibuf_level, minibuffer_auto_raise, lisp_time_argument): * src/eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction) (gc_in_progress): * src/doc.c (Voverriding_local_map, Qremap): * src/dired.c (completion_ignore_case, Qcompletion_ignore_case) (Vcompletion_regexp_list): * src/coding.c (Qmac, Qinsert_file_contents, Qwrite_region) (Qcompletion_ignore_case): * src/callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly) (Vhistory_length, Vthis_original_command, real_this_command) (Qface, Qminibuffer_prompt, history_delete_duplicates): * src/image.c (Qrisky_local_variable): * src/fontset.c (QCname): * src/fns.c (minibuffer_auto_raise, QCname): * src/dispnew.c (char_ins_del_cost): * src/composite.c (font_fill_lglyph_metrics): * src/cmds.c (Qface, Vtranslation_table_for_input): * src/charset.c (map_char_table_for_charset, Qfile_name_handler_alist): * src/ccl.c (charset_unicode): * src/callproc.c (Vtemporary_file_directory): * src/buffer.c (emacs_strerror): Remove extern declarations. Remove extern declarations from .c files, and them to .h files. * src/keyboard.h (Qhelp_echo, waiting_for_input) (input_available_clear_time, ignore_mouse_drag_p) (Vdouble_click_time, real_this_command, Vthis_original_command): * src/keymap.h (Qremap, Qmenu_item, Voverriding_local_map) (Voverriding_local_map_menu_flag): * src/lisp.h (Qinteractive_form, use_file_dialog) (Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount) (Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask) (QCindex, QCmatrix, QCcolor_adjustment, QCmask) (Qrisky_local_variable, map_char_table_for_charset, Vprint_level) (Qfunction, debug_on_next_call, Qfield) (Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument) (Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string) (Qfile_directory_p, Qinsert_file_contents) (Qcompletion_ignore_case, Qcompletion_ignore_case) (Vcompletion_regexp_list, Vhistory_length, completion_ignore_case) (history_delete_duplicates, minibuffer_auto_raise, Qonly) (Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky) (Qminibuffer_prompt) (Vtemporary_file_directory,char_ins_del_vector, Qface): * src/xterm.h (gray_bitmap_width, gray_bitmap_height) (gray_bitmap_bits, xic_create_fontsetname): * src/coding.h (Vtranslation_table_for_input): Add extern declarations. * src/data.c (Qwindow): Make non-static, used from other files too. * src/frame.c (validate_x_resource_name): Remove shadow definition for i.
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 28 Jul 2010 22:48:06 -0700
parents 8adb5d28e463
children 0f876b86540d
files src/ChangeLog src/buffer.c src/callint.c src/callproc.c src/ccl.c src/charset.c src/cmds.c src/coding.c src/coding.h src/composite.c src/data.c src/dired.c src/dispnew.c src/doc.c src/eval.c src/fileio.c src/fns.c src/fontset.c src/frame.c src/frame.h src/image.c src/keyboard.c src/keyboard.h src/keymap.c src/keymap.h src/lisp.h src/macros.c src/minibuf.c src/msdos.c src/print.c src/w32select.c src/xdisp.c src/xfaces.c src/xfns.c src/xmenu.c src/xrdb.c src/xsmfns.c src/xterm.c src/xterm.h
diffstat 39 files changed, 149 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/ChangeLog	Wed Jul 28 22:48:06 2010 -0700
@@ -1,5 +1,78 @@
 2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	Remove extern declarations from .c files, and them to .h files.
+	* keyboard.h (Qhelp_echo, waiting_for_input)
+	(input_available_clear_time, ignore_mouse_drag_p)
+	(Vdouble_click_time, real_this_command, Vthis_original_command):
+	* keymap.h (Qremap, Qmenu_item, Voverriding_local_map)
+	(Voverriding_local_map_menu_flag):
+	* lisp.h (Qinteractive_form, use_file_dialog)
+	(Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount)
+	(Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask)
+	(QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+	(Qrisky_local_variable, map_char_table_for_charset, Vprint_level)
+	(Qfunction, debug_on_next_call, Qfield)
+	(Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument)
+	(Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string)
+	(Qfile_directory_p, Qinsert_file_contents)
+	(Qcompletion_ignore_case, Qcompletion_ignore_case)
+	(Vcompletion_regexp_list, Vhistory_length, completion_ignore_case)
+	(history_delete_duplicates, minibuffer_auto_raise, Qonly)
+	(Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky)
+	(Qminibuffer_prompt)
+	(Vtemporary_file_directory,char_ins_del_vector, Qface):
+	* xterm.h (gray_bitmap_width, gray_bitmap_height)
+	(gray_bitmap_bits, xic_create_fontsetname):
+	* coding.h (Vtranslation_table_for_input): Add extern declarations.
+
+	* xsmfns.c (Vuser_login_name):
+	* xrdb.c (Vdouble_click_time):
+	* xfaces.c (xic_create_fontsetname):
+	* w32select.c (waiting_for_input):
+	* print.c (minibuffer_auto_raise):
+	* msdos.c (Qhelp_echo):
+	* macros.c (real_this_command):
+	* keymap.c (Voverriding_local_map):
+	* xterm.c (poll_for_input_1, gray_bitmap_width)
+	(gray_bitmap_height, gray_bitmap_bits;
+	* xmenu.c ( Voverriding_local_map)
+	(Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box)
+	(use_file_dialog, Xt_app_con):
+	* xdisp.c (minibuffer_auto_raise, Voverriding_local_map)
+	(Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible)
+	(Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines)
+	(Qtool_bar_lines, ignore_mouse_drag_p):
+	* minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky)
+	(Qrear_nonsticky, nconc2):
+	* keyboard.c (current_global_map, minibuf_level, Qmenu_item)
+	(Vhistory_length, Vtranslation_table_for_input, Qcomposition)
+	(Qdisplay, Qafter_string, Qbefore_string, Qundefined):
+	* fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name)
+	(minibuf_level, minibuffer_auto_raise, lisp_time_argument):
+	* eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction)
+	(gc_in_progress):
+	* doc.c (Voverriding_local_map, Qremap):
+	* dired.c (completion_ignore_case, Qcompletion_ignore_case)
+	(Vcompletion_regexp_list):
+	* coding.c (Qmac, Qinsert_file_contents, Qwrite_region)
+	(Qcompletion_ignore_case):
+	* callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly)
+	(Vhistory_length, Vthis_original_command, real_this_command)
+	(Qface, Qminibuffer_prompt, history_delete_duplicates):
+	* image.c (Qrisky_local_variable):
+	* fontset.c (QCname):
+	* fns.c (minibuffer_auto_raise, QCname):
+	* dispnew.c (char_ins_del_cost):
+	* composite.c (font_fill_lglyph_metrics):
+	* cmds.c (Qface, Vtranslation_table_for_input):
+	* charset.c (map_char_table_for_charset, Qfile_name_handler_alist):
+	* ccl.c (charset_unicode):
+	* callproc.c (Vtemporary_file_directory):
+	* buffer.c (emacs_strerror): Remove extern declarations.
+
+	* data.c (Qwindow): Make non-static, used from other files too.
+	* frame.c (validate_x_resource_name): Remove shadow definition for i.
+
 	* unexec.c (make_hdr): Remove references to NO_REMAP, COFF,
 	SEGMENT_MASK, SECTION_ALIGNMENT, ADJUST_EXEC_HEADER.
 	* s/usg5-4.h (COFF):
--- a/src/buffer.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/buffer.c	Wed Jul 28 22:48:06 2010 -0700
@@ -174,8 +174,6 @@
 static void modify_overlay (struct buffer *, EMACS_INT, EMACS_INT);
 static Lisp_Object buffer_lisp_local_variables (struct buffer *);
 
-extern char * emacs_strerror (int);
-
 /* For debugging; temporary.  See set_buffer_internal.  */
 /* Lisp_Object Qlisp_mode, Vcheck_symbol; */
 
--- a/src/callint.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/callint.c	Wed Jul 28 22:48:06 2010 -0700
@@ -29,21 +29,12 @@
 #include "window.h"
 #include "keymap.h"
 
-extern Lisp_Object Qcursor_in_echo_area;
-extern Lisp_Object Qfile_directory_p;
-extern Lisp_Object Qonly;
-
 Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus;
 Lisp_Object Qcall_interactively;
 Lisp_Object Vcommand_history;
 
-extern Lisp_Object Vhistory_length;
-extern Lisp_Object Vthis_original_command, real_this_command;
-extern int history_delete_duplicates;
-
 Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
-extern Lisp_Object Qface, Qminibuffer_prompt;
 
 /* Non-nil means treat the mark as active
    even if mark_active is 0.  */
--- a/src/callproc.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/callproc.c	Wed Jul 28 22:48:06 2010 -0700
@@ -102,8 +102,6 @@
 /* Pattern used by call-process-region to make temp files.  */
 static Lisp_Object Vtemp_file_name_pattern;
 
-extern Lisp_Object Vtemporary_file_directory;
-
 Lisp_Object Vshell_file_name;
 
 Lisp_Object Vprocess_environment, Vinitial_environment;
--- a/src/ccl.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/ccl.c	Wed Jul 28 22:48:06 2010 -0700
@@ -72,8 +72,6 @@
 #define GET_HASH_TABLE(id) \
   (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)])))
 
-extern int charset_unicode;
-
 /* CCL (Code Conversion Language) is a simple language which has
    operations on one input buffer, one output buffer, and 7 registers.
    The syntax of CCL is described in `ccl.el'.  Emacs Lisp function
--- a/src/charset.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/charset.c	Wed Jul 28 22:48:06 2010 -0700
@@ -127,13 +127,6 @@
 
 Lisp_Object Vcurrent_iso639_language;
 
-/* Defined in chartab.c */
-extern void
-map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
-                            Lisp_Object function, Lisp_Object table,
-                            Lisp_Object arg, struct charset *charset,
-                            unsigned from, unsigned to);
-
 #define CODE_POINT_TO_INDEX(charset, code)				\
   ((charset)->code_linear_p						\
    ? (code) - (charset)->min_code					\
@@ -472,8 +465,6 @@
   return n;
 }
 
-extern Lisp_Object Qfile_name_handler_alist;
-
 /* Return a mapping vector for CHARSET loaded from MAPFILE.
    Each line of MAPFILE has this form
 	0xAAAA 0xCCCC
--- a/src/cmds.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/cmds.c	Wed Jul 28 22:48:06 2010 -0700
@@ -43,9 +43,6 @@
 /* This is the command that set up Vself_insert_face.  */
 Lisp_Object Vself_insert_face_command;
 
-extern Lisp_Object Qface;
-extern Lisp_Object Vtranslation_table_for_input;
-
 static int internal_self_insert (int, int);
 
 DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
--- a/src/coding.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/coding.c	Wed Jul 28 22:48:06 2010 -0700
@@ -303,7 +303,6 @@
 
 Lisp_Object Qcoding_system, Qcoding_aliases, Qeol_type;
 Lisp_Object Qunix, Qdos;
-extern Lisp_Object Qmac;	/* frame.c */
 Lisp_Object Qbuffer_file_coding_system;
 Lisp_Object Qpost_read_conversion, Qpre_write_conversion;
 Lisp_Object Qdefault_char;
@@ -317,7 +316,6 @@
 Lisp_Object QCpost_read_conversion, QCpre_write_conversion;
 Lisp_Object QCascii_compatible_p;
 
-extern Lisp_Object Qinsert_file_contents, Qwrite_region;
 Lisp_Object Qcall_process, Qcall_process_region;
 Lisp_Object Qstart_process, Qopen_network_stream;
 Lisp_Object Qtarget_idx;
@@ -325,8 +323,6 @@
 Lisp_Object Qinsufficient_source, Qinconsistent_eol, Qinvalid_source;
 Lisp_Object Qinterrupted, Qinsufficient_memory;
 
-extern Lisp_Object Qcompletion_ignore_case;
-
 /* If a symbol has this property, evaluate the value to define the
    symbol as a coding system.  */
 static Lisp_Object Qcoding_system_define_form;
--- a/src/coding.h	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/coding.h	Wed Jul 28 22:48:06 2010 -0700
@@ -802,6 +802,9 @@
 /* Default coding systems used for process I/O.  */
 extern Lisp_Object Vdefault_process_coding_system;
 
+/* Char table for translating Quail and self-inserting input.  */
+extern Lisp_Object Vtranslation_table_for_input;
+
 /* Function to call to force a user to force select a propert coding
    system.  */
 extern Lisp_Object Vselect_safe_coding_system_function;
--- a/src/composite.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/composite.c	Wed Jul 28 22:48:06 2010 -0700
@@ -848,8 +848,6 @@
   return header;
 }
 
-extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object);
-
 static void
 fill_gstring_body (Lisp_Object gstring)
 {
--- a/src/data.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/data.c	Wed Jul 28 22:48:06 2010 -0700
@@ -82,7 +82,8 @@
 
 Lisp_Object Qinteger;
 static Lisp_Object Qsymbol, Qstring, Qcons, Qmarker, Qoverlay;
-static Lisp_Object Qfloat, Qwindow_configuration, Qwindow;
+Lisp_Object Qwindow;
+static Lisp_Object Qfloat, Qwindow_configuration;
 Lisp_Object Qprocess;
 static Lisp_Object Qcompiled_function, Qbuffer, Qframe, Qvector;
 static Lisp_Object Qchar_table, Qbool_vector, Qhash_table;
--- a/src/dired.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/dired.c	Wed Jul 28 22:48:06 2010 -0700
@@ -102,9 +102,6 @@
 #define lstat stat
 #endif
 
-extern int completion_ignore_case;
-extern Lisp_Object Qcompletion_ignore_case;
-extern Lisp_Object Vcompletion_regexp_list;
 extern Lisp_Object Vw32_get_true_file_attributes;
 
 Lisp_Object Vcompletion_ignored_extensions;
--- a/src/dispnew.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/dispnew.c	Wed Jul 28 22:48:06 2010 -0700
@@ -5030,7 +5030,6 @@
 
 /* Char insertion/deletion cost vector, from term.c */
 
-extern int *char_ins_del_vector;
 #define char_ins_del_cost(f) (&char_ins_del_vector[FRAME_TOTAL_COLS((f))])
 
 
--- a/src/doc.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/doc.c	Wed Jul 28 22:48:06 2010 -0700
@@ -52,10 +52,6 @@
 /* A list of files used to build this Emacs binary.  */
 static Lisp_Object Vbuild_files;
 
-extern Lisp_Object Voverriding_local_map;
-
-extern Lisp_Object Qremap;
-
 /* Buffer used for reading from documentation file.  */
 static char *get_doc_string_buffer;
 static int get_doc_string_buffer_size;
--- a/src/eval.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/eval.c	Wed Jul 28 22:48:06 2010 -0700
@@ -63,7 +63,6 @@
 Lisp_Object Qdebug_on_error;
 Lisp_Object Qdeclare;
 Lisp_Object Qdebug;
-extern Lisp_Object Qinteractive_form;
 
 /* This holds either the symbol `run-hooks' or nil.
    It is nil at an early stage of startup, and when Emacs
@@ -166,10 +165,6 @@
 
 Lisp_Object Vmacro_declaration_function;
 
-extern Lisp_Object Qrisky_local_variable;
-
-extern Lisp_Object Qfunction;
-
 static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
 static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
 
@@ -1634,7 +1629,6 @@
      That is a special case--don't do this in other situations.  */
   register struct handler *allhandlers = handlerlist;
   Lisp_Object conditions;
-  extern int gc_in_progress;
   extern int waiting_for_input;
   Lisp_Object string;
   Lisp_Object real_error_symbol;
--- a/src/fileio.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/fileio.c	Wed Jul 28 22:48:06 2010 -0700
@@ -104,8 +104,6 @@
 #endif
 
 #include "commands.h"
-extern int use_dialog_box;
-extern int use_file_dialog;
 
 #ifndef O_WRONLY
 #define O_WRONLY 1
@@ -214,16 +212,10 @@
 /* Lisp function for recursively deleting directories.  */
 Lisp_Object Qdelete_directory;
 
-extern Lisp_Object Vuser_login_name;
-
 #ifdef WINDOWSNT
 extern Lisp_Object Vw32_get_true_file_attributes;
 #endif
 
-extern int minibuf_level;
-
-extern int minibuffer_auto_raise;
-
 /* These variables describe handlers that have "already" had a chance
    to handle the current operation.
 
@@ -3049,7 +3041,6 @@
   return value;
 }
 
-extern int lisp_time_argument (Lisp_Object, time_t *, int *);
 
 DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 2, 0,
        doc: /* Set times of file FILENAME to TIME.
--- a/src/fns.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/fns.c	Wed Jul 28 22:48:06 2010 -0700
@@ -61,7 +61,6 @@
    questions asked by mouse commands.  */
 int use_file_dialog;
 
-extern int minibuffer_auto_raise;
 extern Lisp_Object minibuf_window;
 extern Lisp_Object Vlocale_coding_system;
 extern int load_in_progress;
--- a/src/fontset.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/fontset.c	Wed Jul 28 22:48:06 2010 -0700
@@ -1457,7 +1457,6 @@
   else if (STRINGP (font_spec))
     {
       Lisp_Object args[2];
-      extern Lisp_Object QCname;
 
       fontname = font_spec;
       args[0] = QCname;
--- a/src/frame.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/frame.c	Wed Jul 28 22:48:06 2010 -0700
@@ -3670,7 +3670,6 @@
   if (STRINGP (Vx_resource_name))
     {
       unsigned char *p = SDATA (Vx_resource_name);
-      int i;
 
       len = SBYTES (Vx_resource_name);
 
--- a/src/frame.h	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/frame.h	Wed Jul 28 22:48:06 2010 -0700
@@ -1063,7 +1063,6 @@
 extern Lisp_Object Qleft_fringe, Qright_fringe;
 extern Lisp_Object Qheight, Qwidth;
 extern Lisp_Object Qminibuffer, Qmodeline;
-extern Lisp_Object Qonly;
 extern Lisp_Object Qx, Qw32, Qmac, Qpc, Qns;
 extern Lisp_Object Qvisible;
 extern Lisp_Object Qdisplay_type;
--- a/src/image.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/image.c	Wed Jul 28 22:48:06 2010 -0700
@@ -8130,8 +8130,6 @@
 void
 syms_of_image (void)
 {
-  extern Lisp_Object Qrisky_local_variable;   /* Syms_of_xdisp has already run.  */
-
   /* Initialize this only once, since that's what we do with Vimage_types
      and they are supposed to be in sync.  Initializing here gives correct
      operation on GNU/Linux of calling dump-emacs after loading some images.  */
--- a/src/keyboard.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/keyboard.c	Wed Jul 28 22:48:06 2010 -0700
@@ -246,9 +246,6 @@
    ASCII character.  */
 int quit_char;
 
-extern Lisp_Object current_global_map;
-extern int minibuf_level;
-
 /* If non-nil, this is a map that overrides all other local maps.  */
 Lisp_Object Voverriding_local_map;
 
@@ -497,7 +494,6 @@
 Lisp_Object Qmenu_enable;
 Lisp_Object QCenable, QCvisible, QChelp, QCfilter, QCkeys, QCkey_sequence;
 Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
-extern Lisp_Object Qmenu_item;
 
 /* An event header symbol HEAD may have a property named
    Qevent_symbol_element_mask, which is of the form (BASE MODIFIERS);
@@ -526,8 +522,6 @@
 Lisp_Object Qextended_command_history;
 EMACS_TIME timer_check (int do_it_now);
 
-extern Lisp_Object Vhistory_length, Vtranslation_table_for_input;
-
 static void record_menu_key (Lisp_Object c);
 static int echo_length (void);
 
@@ -1836,14 +1830,11 @@
     }
 }
 
-extern Lisp_Object Qcomposition, Qdisplay;
-
 /* Adjust point to a boundary of a region that has such a property
    that should be treated intangible.  For the moment, we check
    `composition', `display' and `invisible' properties.
    LAST_PT is the last position of point.  */
 
-extern Lisp_Object Qafter_string, Qbefore_string;
 extern Lisp_Object get_pos_property (Lisp_Object, Lisp_Object, Lisp_Object);
 
 static void
@@ -8116,7 +8107,6 @@
 process_tool_bar_item (Lisp_Object key, Lisp_Object def, Lisp_Object data, void *args)
 {
   int i;
-  extern Lisp_Object Qundefined;
   struct gcpro gcpro1, gcpro2;
 
   /* Protect KEY and DEF from GC because parse_tool_bar_item may call
--- a/src/keyboard.h	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/keyboard.h	Wed Jul 28 22:48:06 2010 -0700
@@ -422,6 +422,8 @@
 extern Lisp_Object Qfunction_key, Qmouse_click, Qmouse_movement;
 extern Lisp_Object Qscroll_bar_movement;
 
+extern Lisp_Object Qhelp_echo;
+
 /* Getting the kind of an event head.  */
 #define EVENT_HEAD_KIND(event_head) \
   (Fget ((event_head), Qevent_kind))
@@ -429,6 +431,17 @@
 /* Symbols to use for non-text mouse positions.  */
 extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line;
 
+/* True while doing kbd input.  */
+extern int waiting_for_input;
+
+/* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
+   happens.  */
+extern EMACS_TIME *input_available_clear_time;
+
+extern int ignore_mouse_drag_p;
+
+extern Lisp_Object Vdouble_click_time;
+
 /* Forward declaration for prototypes.  */
 struct input_event;
 
@@ -445,6 +458,13 @@
 /* Keymap of key translations that can override keymaps.  */
 extern Lisp_Object Vkey_translation_map;
 
+/* This is like Vthis_command, except that commands never set it.  */
+extern Lisp_Object real_this_command;
+
+/* If the lookup of the command returns a binding, the original
+   command is stored in this-original-command.  It is nil otherwise.  */
+extern Lisp_Object Vthis_original_command;
+
 extern int parse_menu_item (Lisp_Object, int);
 
 extern void echo_now (void);
--- a/src/keymap.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/keymap.c	Wed Jul 28 22:48:06 2010 -0700
@@ -108,8 +108,6 @@
    character.  */
 extern Lisp_Object meta_prefix_char;
 
-extern Lisp_Object Voverriding_local_map;
-
 /* 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	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/keymap.h	Wed Jul 28 22:48:06 2010 -0700
@@ -22,6 +22,10 @@
 
 #define KEYMAPP(m) (!NILP (get_keymap (m, 0, 0)))
 extern Lisp_Object Qkeymap, Qmenu_bar;
+extern Lisp_Object Qremap;
+extern Lisp_Object Qmenu_item;
+extern Lisp_Object Voverriding_local_map;
+extern Lisp_Object Voverriding_local_map_menu_flag;
 extern Lisp_Object current_global_map;
 EXFUN (Fmake_sparse_keymap, 1);
 EXFUN (Fkeymap_prompt, 1);
--- a/src/lisp.h	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/lisp.h	Wed Jul 28 22:48:06 2010 -0700
@@ -2269,6 +2269,7 @@
 extern Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive;
 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 Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp;
 extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
@@ -2449,9 +2450,11 @@
 
 /* Defined in fns.c */
 extern int use_dialog_box;
+extern int use_file_dialog;
 extern int next_almost_prime (int);
 extern Lisp_Object larger_vector (Lisp_Object, int, Lisp_Object);
 extern void sweep_weak_hash_tables (void);
+extern Lisp_Object Qcursor_in_echo_area;
 extern Lisp_Object Qstring_lessp;
 extern Lisp_Object Vfeatures;
 extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq;
@@ -2558,6 +2561,9 @@
 extern void init_fringe_once (void);
 
 /* Defined in image.c */
+extern Lisp_Object QCascent, QCmargin, QCrelief, Qcount, Qextension_data;
+extern Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask;
+extern Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask;
 EXFUN (Finit_image_library, 2);
 extern void syms_of_image (void);
 extern void init_image (void);
@@ -2635,6 +2641,7 @@
 extern Lisp_Object Qspace, Qcenter, QCalign_to;
 extern Lisp_Object Vmessage_log_max;
 extern Lisp_Object QCdata, QCfile;
+extern Lisp_Object Qrisky_local_variable;
 extern int message_enable_multibyte;
 extern Lisp_Object echo_area_buffer[2];
 extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
@@ -2774,10 +2781,15 @@
 extern void map_char_table (void (*) (Lisp_Object, Lisp_Object,
                             Lisp_Object),
                             Lisp_Object, Lisp_Object, Lisp_Object);
+extern void map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
+					Lisp_Object, Lisp_Object,
+					Lisp_Object, struct charset *,
+					unsigned, unsigned);
 extern void syms_of_chartab (void);
 
 /* Defined in print.c */
 extern Lisp_Object Vprin1_to_string_buffer;
+extern Lisp_Object Vprint_level;
 extern void debug_print (Lisp_Object);
 EXFUN (Fprin1, 2);
 EXFUN (Fprin1_to_string, 2);
@@ -2804,6 +2816,7 @@
 
 /* Defined in lread.c */
 extern Lisp_Object Qvariable_documentation, Qstandard_input;
+extern Lisp_Object Qfunction;
 extern Lisp_Object Vobarray, initial_obarray, Vstandard_input;
 EXFUN (Fread, 1);
 EXFUN (Fread_from_string, 3);
@@ -2845,6 +2858,7 @@
 extern Lisp_Object Vdebug_on_error;
 extern Lisp_Object Vsignaling_function;
 extern int handling_signal;
+extern int debug_on_next_call;
 extern int interactive_p (int);
 
 /* To run a normal hook, use the appropriate function from the list below.
@@ -2925,6 +2939,9 @@
 extern void syms_of_eval (void);
 
 /* Defined in editfns.c */
+extern Lisp_Object Qfield;
+extern Lisp_Object Vinhibit_field_text_motion;
+extern Lisp_Object Vuser_login_name;
 EXFUN (Fpropertize, MANY);
 EXFUN (Fcurrent_message, 0);
 EXFUN (Fgoto_char, 1);
@@ -2971,7 +2988,6 @@
 extern Lisp_Object make_buffer_string_both (int, int, int, int, int);
 extern void init_editfns (void);
 extern void syms_of_editfns (void);
-extern Lisp_Object Vinhibit_field_text_motion;
 EXFUN (Fconstrain_to_field, 5);
 EXFUN (Ffield_string, 1);
 EXFUN (Fdelete_field, 1);
@@ -2979,6 +2995,7 @@
 EXFUN (Ffield_end, 3);
 EXFUN (Ffield_string_no_properties, 1);
 extern void set_time_zone_rule (const char *);
+extern int lisp_time_argument (Lisp_Object, time_t *, int *);
 
 /* Defined in buffer.c */
 extern int mouse_face_overlay_overlaps (Lisp_Object);
@@ -3013,7 +3030,7 @@
 EXFUN (Fbuffer_enable_undo, 1);
 EXFUN (Ferase_buffer, 0);
 extern Lisp_Object Qoverlayp;
-extern Lisp_Object Qevaporate;
+extern Lisp_Object Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string;
 extern Lisp_Object get_truename_buffer (Lisp_Object);
 extern struct buffer *all_buffers;
 EXFUN (Fprevious_overlay_change, 1);
@@ -3045,6 +3062,8 @@
 /* Defined in fileio.c */
 
 extern Lisp_Object Qfile_error;
+extern Lisp_Object Qfile_directory_p;
+extern Lisp_Object Qinsert_file_contents;
 EXFUN (Ffind_file_name_handler, 2);
 EXFUN (Ffile_name_as_directory, 1);
 EXFUN (Fmake_temp_name, 1);
@@ -3104,7 +3123,14 @@
 
 /* Defined in minibuf.c */
 
+extern Lisp_Object Qcompletion_ignore_case;
+extern Lisp_Object Qcompletion_ignore_case;
+extern Lisp_Object Vcompletion_regexp_list;
+extern Lisp_Object Vhistory_length;
 extern Lisp_Object last_minibuf_string;
+extern int completion_ignore_case;
+extern int history_delete_duplicates;
+extern int minibuffer_auto_raise;
 extern void choose_minibuf_frame (void);
 EXFUN (Fcompleting_read, 8);
 EXFUN (Fread_from_minibuffer, 7);
@@ -3206,6 +3232,7 @@
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
 #endif /* HAVE_WINDOW_SYSTEM */
+extern Lisp_Object Qonly;
 extern Lisp_Object Qvisible;
 extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
 extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
@@ -3253,6 +3280,7 @@
 extern Lisp_Object Vbefore_init_time, Vafter_init_time;
 extern Lisp_Object Vinstallation_directory;
 extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
+extern Lisp_Object Qfile_name_handler_alist;
 EXFUN (Fkill_emacs, 1) NO_RETURN;
 #if HAVE_SETLOCALE
 void fixup_locale (void);
@@ -3359,6 +3387,9 @@
 /* Defined in textprop.c */
 extern Lisp_Object Qfont, Qmouse_face;
 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
+extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
+extern Lisp_Object Qminibuffer_prompt;
+
 EXFUN (Fnext_single_property_change, 4);
 EXFUN (Fnext_single_char_property_change, 4);
 EXFUN (Fprevious_single_property_change, 4);
@@ -3424,6 +3455,7 @@
 #endif
 
 /* Defined in filelock.c */
+extern Lisp_Object Vtemporary_file_directory;
 EXFUN (Funlock_buffer, 0);
 EXFUN (Ffile_locked_p, 1);
 extern void unlock_all_files (void);
@@ -3453,6 +3485,7 @@
                                              int, Lisp_Object);
 
 /* Defined in term.c */
+extern int *char_ins_del_vector;
 extern void syms_of_term (void);
 extern void fatal (const char *msgid, ...) NO_RETURN;
 
@@ -3478,6 +3511,7 @@
 #endif
 
 /* Defined in xfaces.c */
+extern Lisp_Object Qface;
 extern Lisp_Object Qnormal;
 extern Lisp_Object QCfamily, QCweight, QCslant, QCwidth;
 extern Lisp_Object QCheight, QCsize, QCname, QCwidth, QCforeground, QCbackground;
--- a/src/macros.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/macros.c	Wed Jul 28 22:48:06 2010 -0700
@@ -51,8 +51,6 @@
 
 Lisp_Object executing_kbd_macro;
 
-extern Lisp_Object real_this_command;
-
 Lisp_Object Fexecute_kbd_macro (Lisp_Object macro, Lisp_Object count, Lisp_Object loopfunc);
 
 DEFUN ("start-kbd-macro", Fstart_kbd_macro, Sstart_kbd_macro, 1, 2, "P",
--- a/src/minibuf.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/minibuf.c	Wed Jul 28 22:48:06 2010 -0700
@@ -143,9 +143,6 @@
 
 Lisp_Object Qread_expression_history;
 
-extern Lisp_Object Voverriding_local_map;
-
-extern Lisp_Object Qfield;
 
 /* Put minibuf on currently selected frame's minibuffer.
    We do this whenever the user starts a new minibuffer
@@ -442,9 +439,6 @@
   Lisp_Object empty_minibuf;
   Lisp_Object dummy, frame;
 
-  extern Lisp_Object Qfront_sticky;
-  extern Lisp_Object Qrear_nonsticky;
-
   specbind (Qminibuffer_default, defalt);
 
   /* If Vminibuffer_completing_file_name is `lambda' on entry, it was t
@@ -822,7 +816,6 @@
 {
   Lisp_Object tail, num, buf;
   char name[24];
-  extern Lisp_Object nconc2 (Lisp_Object, Lisp_Object);
 
   XSETFASTINT (num, depth);
   tail = Fnthcdr (num, Vminibuffer_list);
--- a/src/msdos.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/msdos.c	Wed Jul 28 22:48:06 2010 -0700
@@ -1191,7 +1191,6 @@
 
   if (row->enabled_p)
     {
-      extern Lisp_Object Qhelp_echo;
       struct glyph *glyph, *end;
       Lisp_Object help, map;
 
--- a/src/print.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/print.c	Wed Jul 28 22:48:06 2010 -0700
@@ -166,8 +166,6 @@
 
 extern int noninteractive_need_newline;
 
-extern int minibuffer_auto_raise;
-
 void print_interval (INTERVAL interval, Lisp_Object printcharfun);
 
 /* GDB resets this to zero on W32 to disable OutputDebugString calls.  */
--- a/src/w32select.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/w32select.c	Wed Jul 28 22:48:06 2010 -0700
@@ -398,7 +398,6 @@
      with global variables and calling strange looking functions.  Is
      this really the right way to run Lisp callbacks?  */
 
-  extern int waiting_for_input;
   int owfi;
 
   BLOCK_INPUT;
--- a/src/xdisp.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xdisp.c	Wed Jul 28 22:48:06 2010 -0700
@@ -276,15 +276,11 @@
 extern int interrupt_input;
 extern int command_loop_level;
 
-extern int minibuffer_auto_raise;
 extern Lisp_Object Vminibuffer_list;
 
 extern Lisp_Object Qface;
 extern Lisp_Object Qmode_line, Qmode_line_inactive, Qheader_line;
 
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
-extern Lisp_Object Qmenu_item;
 extern Lisp_Object Qwhen;
 extern Lisp_Object Qhelp_echo;
 extern Lisp_Object Qbefore_string, Qafter_string;
@@ -379,7 +375,6 @@
 /* Names of text properties relevant for redisplay.  */
 
 Lisp_Object Qdisplay;
-extern Lisp_Object Qface, Qinvisible, Qwidth;
 
 /* Symbols used in text property values.  */
 
@@ -3689,7 +3684,6 @@
 
   if (STRINGP (it->string))
     {
-      extern Lisp_Object Qinvisible;
       Lisp_Object prop, end_charpos, limit, charpos;
 
       /* Get the value of the invisible text property at the
@@ -4873,7 +4867,6 @@
 static void
 load_overlay_strings (struct it *it, int charpos)
 {
-  extern Lisp_Object Qwindow, Qpriority;
   Lisp_Object overlay, window, str, invisible;
   struct Lisp_Overlay *ov;
   int start, end;
@@ -10585,7 +10578,6 @@
       if ((nlines = tool_bar_lines_needed (f, &f->n_tool_bar_rows),
 	   nlines != WINDOW_TOTAL_LINES (w)))
 	{
-	  extern Lisp_Object Qtool_bar_lines;
 	  Lisp_Object frame;
 	  int old_height = WINDOW_TOTAL_LINES (w);
 
@@ -10677,7 +10669,6 @@
 	 frame parameter.  */
       if (change_height_p)
 	{
-	  extern Lisp_Object Qtool_bar_lines;
 	  Lisp_Object frame;
 	  int old_height = WINDOW_TOTAL_LINES (w);
 	  int nrows;
@@ -14485,7 +14476,6 @@
 
           if (redisplay_tool_bar_p && redisplay_tool_bar (f))
 	    {
-	      extern int ignore_mouse_drag_p;
 	      ignore_mouse_drag_p = 1;
 	    }
         }
--- a/src/xfaces.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xfaces.c	Wed Jul 28 22:48:06 2010 -0700
@@ -3666,8 +3666,6 @@
 	  if (! NILP (xlfd))
 	    {
 #if defined HAVE_X_I18N
-	      extern char *xic_create_fontsetname
-                (char *base_fontname, Bool motif);
 	      char *fontsetname = xic_create_fontsetname (SDATA (xlfd), motif);
 #else
 	      char *fontsetname = (char *) SDATA (xlfd);
--- a/src/xfns.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xfns.c	Wed Jul 28 22:48:06 2010 -0700
@@ -1901,12 +1901,12 @@
 
 /* Create an X fontset on frame F with base font name BASE_FONTNAME.  */
 
-char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
+const char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
 
 /* Create an Xt fontset spec from the name of a base font.
    If `motif' is True use the Motif syntax.  */
 char *
-xic_create_fontsetname (char *base_fontname, int motif)
+xic_create_fontsetname (const char *base_fontname, int motif)
 {
   const char *sep = motif ? ";" : ",";
   char *fontsetname;
@@ -1926,7 +1926,7 @@
 	 - the base font.
 	 - the base font where the charset spec is replaced by -*-*.
 	 - the same but with the family also replaced with -*-*-.  */
-      char *p = base_fontname;
+      const char *p = base_fontname;
       int i;
 
       for (i = 0; *p; p++)
@@ -1945,13 +1945,13 @@
       else
 	{
 	  int len;
-	  char *p1 = NULL, *p2 = NULL, *p3 = NULL;
+	  const char *p1 = NULL, *p2 = NULL, *p3 = NULL;
 	  char *font_allcs = NULL;
 	  char *font_allfamilies = NULL;
 	  char *font_all = NULL;
-	  char *allcs = "*-*-*-*-*-*-*";
-	  char *allfamilies = "-*-*-";
-	  char *all = "*-*-*-*-";
+	  const char *allcs = "*-*-*-*-*-*-*";
+	  const char *allfamilies = "-*-*-";
+	  const char *all = "*-*-*-*-";
 	  char *base;
 
 	  for (i = 0, p = base_fontname; i < 8; p++)
@@ -2080,7 +2080,7 @@
       char **missing_list;
       int missing_count;
       char *def_string;
-      char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*";
+      const char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*";
 
       sprintf (buf, xlfd_format, pixel_size);
       missing_list = NULL;
@@ -5239,9 +5239,6 @@
   (void)
 {
 #ifdef USE_GTK
-  extern int use_dialog_box;
-  extern int use_file_dialog;
-
   if (use_dialog_box
       && use_file_dialog
       && have_menus_p ()
@@ -5312,7 +5309,6 @@
   Widget dialog, text, help;
   Arg al[10];
   int ac = 0;
-  extern XtAppContext Xt_app_con;
   XmString dir_xmstring, pattern_xmstring;
   int count = SPECPDL_INDEX ();
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6;
--- a/src/xmenu.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xmenu.c	Wed Jul 28 22:48:06 2010 -0700
@@ -113,9 +113,6 @@
 
 extern Lisp_Object QCtoggle, QCradio;
 
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
-
 extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 
 extern Lisp_Object Qmenu_bar_update_hook;
@@ -2209,7 +2206,6 @@
 static void
 menu_help_callback (char *help_string, int pane, int item)
 {
-  extern Lisp_Object Qmenu_item;
   Lisp_Object *first_item;
   Lisp_Object pane_name;
   Lisp_Object menu_object;
--- a/src/xrdb.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xrdb.c	Wed Jul 28 22:48:06 2010 -0700
@@ -508,7 +508,6 @@
 
 #ifdef USE_MOTIF
   const char *courier = "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1";
-  extern Lisp_Object Vdouble_click_time;
 #endif
 
   x_rm_string = XrmStringToQuark (XrmStringType);
--- a/src/xsmfns.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xsmfns.c	Wed Jul 28 22:48:06 2010 -0700
@@ -45,10 +45,6 @@
 /* Avoid "differ in sign" warnings */
 #define SSDATA(x)  ((char *) SDATA (x))
 
-/* The user login name.  */
-
-extern Lisp_Object Vuser_login_name;
-
 /* This is the event used when SAVE_SESSION_EVENT occurs.  */
 
 static struct input_event emacs_event;
--- a/src/xterm.c	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xterm.c	Wed Jul 28 22:48:06 2010 -0700
@@ -9010,7 +9010,6 @@
 	    /* It could be confusing if a real alarm arrives while
 	       processing the fake one.  Turn it off and let the
 	       handler reset it.  */
-            extern void poll_for_input_1 (void);
 	    int old_poll_suppress_count = poll_suppress_count;
 	    poll_suppress_count = 1;
 	    poll_for_input_1 ();
@@ -10139,8 +10138,6 @@
   dpyinfo->connection = connection;
 
   {
-    extern int gray_bitmap_width, gray_bitmap_height;
-    extern char *gray_bitmap_bits;
     dpyinfo->gray
       = XCreatePixmapFromBitmapData (dpyinfo->display, dpyinfo->root_window,
 				     gray_bitmap_bits,
--- a/src/xterm.h	Wed Jul 28 21:16:23 2010 -0700
+++ b/src/xterm.h	Wed Jul 28 22:48:06 2010 -0700
@@ -933,6 +933,8 @@
 EXFUN (Fx_display_color_p, 1);
 EXFUN (Fx_display_grayscale_p, 1);
 extern void x_free_gcs (struct frame *);
+extern int gray_bitmap_width, gray_bitmap_height;
+extern char *gray_bitmap_bits;
 
 /* From xrdb.c.  */
 
@@ -1053,6 +1055,7 @@
 extern int x_defined_color (struct frame *, const char *, XColor *, int);
 #ifdef HAVE_X_I18N
 extern void free_frame_xic (struct frame *);
+extern char * xic_create_fontsetname (const char *base_fontname, int motif);
 #endif
 extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object);