Subject: bug#15880: Compute C declarations for DEFSYMs automatically.

From: Paul Eggert <[email-masked]>
Date: Tue, 12 Nov 2013 16:33:56 -0800

Tags: patch

Attached is a first cut to implement something along the lines
that Stefan has been suggesting for a while, namely, to compute
declarations for DEFSYM variables automatically.  This should
help avoid needless clutter in the C code and silly errors involving
mismatched decls etc.  This version is tested on Fedora 19 x86-64
and Solaris 10 sparc-32.  I plan to do a bit more testing before
installing it.  I don't know of any reason it wouldn't work with
Microsoft platforms but I'm no expert there.
=== modified file 'ChangeLog'
--- ChangeLog	2013-11-12 02:50:28 +0000
+++ ChangeLog	2013-11-12 22:28:24 +0000
@@ -1,3 +1,8 @@
+2013-11-12  Paul Eggert  <[email-masked]>
+
+	Compute C declarations for DEFSYMs automatically.
+	* configure.ac: Call AC_PROG_CPP, since src/Makefile now uses CPP.
+
 2013-11-12  Dani Moncayo  <[email-masked]>
 
 	* configure.ac [MINGW32]: Source nt/mingw-cfg.site.

=== modified file 'configure.ac'
--- configure.ac	2013-11-12 03:01:07 +0000
+++ configure.ac	2013-11-12 22:28:24 +0000
@@ -628,6 +628,7 @@
 dnl Sets GCC=yes if using gcc.
 AC_PROG_CC
 AM_PROG_CC_C_O
+AC_PROG_CPP
 
 if test x$GCC = xyes; then
   test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"

=== modified file 'lib-src/ChangeLog'
--- lib-src/ChangeLog	2013-10-24 23:04:33 +0000
+++ lib-src/ChangeLog	2013-11-12 22:28:24 +0000
@@ -1,3 +1,17 @@
+2013-11-12  Paul Eggert  <[email-masked]>
+
+	Compute C declarations for DEFSYMs automatically.
+	* make-docfile.c (main): If no arguments (other than options)
+	are given, read C from standard input.
+	(start_globals, write_globals): Wrap with '#ifndef GENERATE_GLOBALS'.
+	(start_globals): Define GLOBALS_EXTERN.
+	(SYMBOL): New constant.
+	(write_globals): Output declarations for symbols.
+	(scan_c_stream): New function.  Parse DEFSYMs as well, and
+	generate a global declaration for each one.
+	(scan_c_file): Rewrite in terms of scan_c_stream, which contains
+	most of the old scan_c_file's contents.
+
 2013-10-24  Glenn Morris  <[email-masked]>
 
 	* Makefile.in ($(DESTDIR)${archlibdir}):

=== modified file 'lib-src/make-docfile.c'
--- lib-src/make-docfile.c	2013-10-10 01:29:30 +0000
+++ lib-src/make-docfile.c	2013-11-12 22:28:24 +0000
@@ -68,6 +68,7 @@
 static int scan_file (char *filename);
 static int scan_lisp_file (const char *filename, const char *mode);
 static int scan_c_file (char *filename, const char *mode);
+static int scan_c_stream (FILE *infile);
 static void start_globals (void);
 static void write_globals (void);
 
@@ -131,7 +132,6 @@
 {
   int i;
   int err_count = 0;
-  int first_infile;
 
   progname = argv[0];
 
@@ -185,16 +185,21 @@
   if (generate_globals)
     start_globals ();
 
-  first_infile = i;
-  for (; i < argc; i++)
+  if (argc <= i)
+    scan_c_stream (stdin);
+  else
     {
-      int j;
-      /* Don't process one file twice.  */
-      for (j = first_infile; j < i; j++)
-	if (! strcmp (argv[i], argv[j]))
-	  break;
-      if (j == i)
-	err_count += scan_file (argv[i]);
+      int first_infile = i;
+      for (; i < argc; i++)
+	{
+	  int j;
+	  /* Don't process one file twice.  */
+	  for (j = first_infile; j < i; j++)
+	    if (! strcmp (argv[i], argv[j]))
+	      break;
+	  if (j == i)
+	    err_count += scan_file (argv[i]);
+	}
     }
 
   if (err_count == 0 && generate_globals)
@@ -244,6 +249,12 @@
 {
   fprintf (outfile, "/* This file was auto-generated by make-docfile.  */\n");
   fprintf (outfile, "/* DO NOT EDIT.  */\n");
+  fprintf (outfile, "#ifndef GENERATE_GLOBALS\n");
+  fprintf (outfile, "#ifdef MAIN_PROGRAM\n");
+  fprintf (outfile, "# define GLOBALS_EXTERN\n");
+  fprintf (outfile, "#else\n");
+  fprintf (outfile, "# define GLOBALS_EXTERN extern\n");
+  fprintf (outfile, "#endif\n");
   fprintf (outfile, "struct emacs_globals {\n");
 }
 
@@ -548,13 +559,15 @@
 }
 
 /* The types of globals.  These are sorted roughly in decreasing alignment
-   order to avoid allocation gaps, except that functions are last.  */
+   order to avoid allocation gaps, except that symbols and functions
+   are last.  */
 enum global_type
 {
   INVALID,
   LISP_OBJECT,
   EMACS_INTEGER,
   BOOLEAN,
+  SYMBOL,
   FUNCTION
 };
 
@@ -637,6 +650,7 @@
 	case LISP_OBJECT:
 	  type = "Lisp_Object";
 	  break;
+	case SYMBOL:
 	case FUNCTION:
 	  if (!seen_defun)
 	    {
@@ -655,6 +669,8 @@
 	  fprintf (outfile, "#define %s globals.f_%s\n",
 		   globals[i].name, globals[i].name);
 	}
+      else if (globals[i].type == SYMBOL)
+	  fprintf (outfile, "GLOBALS_EXTERN Lisp_Object %s;\n", globals[i].name);
       else
 	{
 	  /* It would be nice to have a cleaner way to deal with these
@@ -688,6 +704,8 @@
 
   if (!seen_defun)
     close_emacs_globals ();
+
+  fprintf (outfile, "#endif /* GENERATE_GLOBALS */\n");
 }
 
 
@@ -700,9 +718,6 @@
 scan_c_file (char *filename, const char *mode)
 {
   FILE *infile;
-  register int c;
-  register int commas;
-  int minargs, maxargs;
   int extension = filename[strlen (filename) - 1];
 
   if (extension == 'o')
@@ -728,8 +743,15 @@
 
   /* Reset extension to be able to detect duplicate files.  */
   filename[strlen (filename) - 1] = extension;
-
-  c = '\n';
+  return scan_c_stream (infile);
+}
+
+static int
+scan_c_stream (FILE *infile)
+{
+  int commas, minargs, maxargs;
+  int c = '\n';
+
   while (!feof (infile))
     {
       int doc_keyword = 0;
@@ -758,37 +780,53 @@
 	  if (c != 'F')
 	    continue;
 	  c = getc (infile);
-	  if (c != 'V')
-	    continue;
-	  c = getc (infile);
-	  if (c != 'A')
-	    continue;
-	  c = getc (infile);
-	  if (c != 'R')
-	    continue;
-	  c = getc (infile);
-	  if (c != '_')
-	    continue;
-
-	  defvarflag = 1;
-
-	  c = getc (infile);
-	  defvarperbufferflag = (c == 'P');
-	  if (generate_globals)
-	    {
-	      if (c == 'I')
-		type = EMACS_INTEGER;
-	      else if (c == 'L')
-		type = LISP_OBJECT;
-	      else if (c == 'B')
-		type = BOOLEAN;
-	    }
-
-	  c = getc (infile);
-	  /* We need to distinguish between DEFVAR_BOOL and
-	     DEFVAR_BUFFER_DEFAULTS.  */
-	  if (generate_globals && type == BOOLEAN && c != 'O')
-	    type = INVALID;
+	  if (c == 'S')
+	    {
+	      c = getc (infile);
+	      if (c != 'Y')
+		continue;
+	      c = getc (infile);
+	      if (c != 'M')
+		continue;
+	      c = getc (infile);
+	      if (c != ' ' && c != '\t' && c != '(')
+		continue;
+	      type = SYMBOL;
+	    }
+	  else if (c == 'V')
+	    {
+	      c = getc (infile);
+	      if (c != 'A')
+		continue;
+	      c = getc (infile);
+	      if (c != 'R')
+		continue;
+	      c = getc (infile);
+	      if (c != '_')
+		continue;
+
+	      defvarflag = 1;
+
+	      c = getc (infile);
+	      defvarperbufferflag = (c == 'P');
+	      if (generate_globals)
+		{
+		  if (c == 'I')
+		    type = EMACS_INTEGER;
+		  else if (c == 'L')
+		    type = LISP_OBJECT;
+		  else if (c == 'B')
+		    type = BOOLEAN;
+		}
+
+	      c = getc (infile);
+	      /* We need to distinguish between DEFVAR_BOOL and
+		 DEFVAR_BUFFER_DEFAULTS.  */
+	      if (generate_globals && type == BOOLEAN && c != 'O')
+		type = INVALID;
+	    }
+	  else
+	    continue;
 	}
       else if (c == 'D')
 	{
@@ -805,7 +843,7 @@
 
       if (generate_globals
 	  && (!defvarflag || defvarperbufferflag || type == INVALID)
-	  && !defunflag)
+	  && !defunflag && type != SYMBOL)
 	continue;
 
       while (c != '(')
@@ -815,11 +853,14 @@
 	  c = getc (infile);
 	}
 
-      /* Lisp variable or function name.  */
-      c = getc (infile);
-      if (c != '"')
-	continue;
-      c = read_c_string_or_comment (infile, -1, 0, 0);
+      if (type != SYMBOL)
+	{
+	  /* Lisp variable or function name.  */
+	  c = getc (infile);
+	  if (c != '"')
+	    continue;
+	  c = read_c_string_or_comment (infile, -1, 0, 0);
+	}
 
       if (generate_globals)
 	{
@@ -852,6 +893,9 @@
 	    }
 	}
 
+      if (type == SYMBOL)
+	continue;
+
       /* DEFVAR_LISP ("name", addr, "doc")
 	 DEFVAR_LISP ("name", addr /\* doc *\/)
 	 DEFVAR_LISP ("name", addr, doc: /\* doc *\/)  */

=== modified file 'src/ChangeLog'
--- src/ChangeLog	2013-11-12 06:07:37 +0000
+++ src/ChangeLog	2013-11-12 22:33:53 +0000
@@ -1,5 +1,444 @@
 2013-11-12  Paul Eggert  <[email-masked]>
 
+	Compute C declarations for DEFSYMs automatically.
+	* Makefile.in (NONDEP_CFLAGS): New macro, containing the old
+	ALL_CFLAGS except for $(DEPFLAGS).
+	(ALL_CFLAGS): Use it.
+	(NONDEP_OBJC_CFLAGS, GLOBALS_CPP): New macros.
+	(GLOBALS_SOURCES): Rename from GLOBAL_SOURCES, as it's for globals.h.
+	All uses changed.
+	(gl-stamp): Look at preprocessed output, not prepreprocessor input,
+	if possible; this lets us omit symbols that aren't used in this
+	configuration.  Define GENERATE_GLOBALS when doing so.
+	* alloc.c (Qconses, Qsymbols, Qmiscs, Qstrings, Qvectors, Qfloats)
+	(Qintervals, Qbuffers, Qstring_bytes, Qvector_slots, Qheap)
+	(Qgc_cons_threshold, Qautomatic_gc, Qchar_table_extra_slots)
+	(Qpost_gc_hook):
+	* bidi.c (Qparagraph_start, Qparagraph_separate):
+	* buffer.c (Qkill_buffer_query_functions, Qchange_major_mode_hook)
+	(Qfirst_change_hook, Qbefore_change_functions)
+	(Qafter_change_functions, Qpermanent_local_hook)
+	(Qbuffer_list_update_hook, Qget_file_buffer, Qoverlayp, Qpriority)
+	(Qbefore_string, Qafter_string, Qevaporate, Qmodification_hooks)
+	(Qinsert_in_front_hooks, Qinsert_behind_hooks):
+	* bytecode.c (Qbyte_code_meter):
+	* callint.c (Qminus, Qplus, Qcall_interactively)
+	(Qcommand_debug_status, Qenable_recursive_minibuffers)
+	(Qhandle_shift_selection, Qread_number, Qmouse_leave_buffer_hook)
+	(Qlist, Qlet, Qletx, Qsave_excursion, Qprogn, Qif, Qwhen):
+	* casefiddle.c (Qidentity):
+	* casetab.c (Qcase_table_p, Qcase_table):
+	* category.c (Qcategory_table, Qcategoryp, Qcategorysetp)
+	(Qcategory_table_p):
+	* ccl.c (Qccl, Qcclp, Qccl_program, Qcode_conversion_map)
+	(Qcode_conversion_map_id, Qccl_program_idx):
+	* character.c (Qcharacterp, Qauto_fill_chars, Qchar_script_table):
+	* charset.c (Qcharsetp, Qascii, Qeight_bit, Qiso_8859_1, Qunicode)
+	(Qemacs, Qgl, Qgr):
+	* chartab.c (Qchar_code_property_table):
+	* cmds.c (Qkill_forward_chars, Qkill_backward_chars)
+	(Qoverwrite_mode_binary, Qexpand_abbrev, Qpost_self_insert_hook):
+	* coding.c (Qcoding_system, Qeol_type, Qcoding_aliases, Qunix)
+	(Qdos, Qmac, Qbuffer_file_coding_system, Qpost_read_conversion)
+	(Qpre_write_conversion, Qdefault_char, Qno_conversion, Qundecided)
+	(Qcharset, Qutf_8, Qiso_2022, Qutf_16, Qshift_jis, Qbig5, Qbig)
+	(Qlittle, Qcoding_system_history, Qvalid_codes, QCcategory)
+	(QCmnemonic, QCdefault_char, QCdecode_translation_table)
+	(QCencode_translation_table, QCpost_read_conversion)
+	(QCpre_write_conversion, QCascii_compatible_p, Qcall_process)
+	(Qcall_process_region, Qstart_process, Qopen_network_stream)
+	(Qtarget_idx, Qinsufficient_source, Qinvalid_source, Qinterrupted)
+	(Qcoding_system_define_form, system_eol_type, Qcoding_system_p)
+	(Qcoding_system_error, Qemacs_mule, Qraw_text, Qutf_8_emacs)
+	(Qutf_16le, Qtranslation_table, Qtranslation_table_id)
+	(Qtranslation_table_for_decode, Qtranslation_table_for_encode):
+	* composite.c (Qcomposition, Qauto_composed)
+	(Qauto_composition_function):
+	* data.c (Qnil, Qt, Qquote, Qlambda, Qunbound, Qsubr)
+	(Qerror_conditions, Qerror_message, Qtop_level, Qerror)
+	(Quser_error, Qquit, Qargs_out_of_range, Qwrong_length_argument)
+	(Qwrong_type_argument, Qvoid_variable, Qvoid_function)
+	(Qcyclic_function_indirection, Qcyclic_variable_indirection)
+	(Qcircular_list, Qsetting_constant, Qinvalid_read_syntax)
+	(Qinvalid_function, Qwrong_number_of_arguments, Qno_catch)
+	(Qend_of_file, Qarith_error, Qmark_inactive, Qbeginning_of_buffer)
+	(Qend_of_buffer, Qbuffer_read_only, Qtext_read_only, Qnil, Qt)
+	(Qunbound, Qintegerp, Qwholenump, Qsymbolp, Qlistp, Qconsp)
+	(Qnatnump, Qstringp, Qarrayp, Qsequencep, Qbufferp)
+	(Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp)
+	(Qbool_vector_p, Qbuffer_or_string_p, Qkeywordp, Qboundp)
+	(Qfboundp, Qchar_table_p, Qvector_or_char_table_p, Qcdr)
+	(Qad_advice_info, Qad_activate_internal, Qdomain_error)
+	(Qsingularity_error, Qunderflow_error, Qrange_error)
+	(Qoverflow_error, Qfloatp, Qnumberp, Qnumber_or_marker_p)
+	(Qinteger, Qsymbol, Qcons, Qfloat, Qmisc, Qstring, Qvector)
+	(Qwindow, Qoverlay, Qwindow_configuration, Qprocess, Qmarker)
+	(Qcompiled_function, Qframe, Qbuffer, Qchar_table, Qbool_vector)
+	(Qhash_table, Qsubrp, Qmany, Qunevalled, Qfont_spec, Qfont_entity)
+	(Qfont_object, Qdefun, Qinteractive_form)
+	(Qdefalias_fset_function):
+	* dbusbind.c (Qdbus_init_bus, Qdbus_get_unique_name)
+	(Qdbus_message_internal, Qdbus_error, QCdbus_system_bus)
+	(QCdbus_session_bus, QCdbus_timeout, QCdbus_type_byte)
+	(QCdbus_type_boolean, QCdbus_type_int16, QCdbus_type_uint16)
+	(QCdbus_type_int32, QCdbus_type_uint32, QCdbus_type_int64)
+	(QCdbus_type_uint64, QCdbus_type_double, QCdbus_type_string)
+	(QCdbus_type_object_path, QCdbus_type_signature)
+	(QCdbus_type_unix_fd, QCdbus_type_array, QCdbus_type_variant)
+	(QCdbus_type_struct, QCdbus_type_dict_entry)
+	(QCdbus_registered_serial, QCdbus_registered_method)
+	(QCdbus_registered_signal):
+	* decompress.c (Qzlib_dll):
+	* dired.c (Qdirectory_files, Qdirectory_files_and_attributes)
+	(Qfile_name_completion, Qfile_name_all_completions)
+	(Qfile_attributes, Qfile_attributes_lessp, Qdefault_directory):
+	* dispnew.c (Qdisplay_table, Qredisplay_dont_pause):
+	* doc.c (Qfunction_documentation):
+	* editfns.c (Qbuffer_access_fontify_functions, Qfield, Qboundary):
+	* emacs.c (Qfile_name_handler_alist, Qrisky_local_variable)
+	(Qkill_emacs, Qkill_emacs_hook):
+	* eval.c (Qautoload, Qmacro, Qexit, Qinteractive, Qcommandp)
+	(Qinhibit_quit, Qand_rest, Qand_optional, Qinhibit_debugger)
+	(Qdeclare, Qinternal_interpreter_environment, Qclosure, Qdebug)
+	(Vrun_hooks):
+	* fileio.c (Qauto_save_coding, Qoperations, Qformat_decode)
+	(Qformat_annotate_function, Qafter_insert_file_set_coding)
+	(Qwrite_region_annotate_functions)
+	(Vwrite_region_annotation_buffers, Qdelete_by_moving_to_trash)
+	(Qmove_file_to_trash, Qcopy_directory, Qdelete_directory)
+	(Qsubstitute_env_in_file_name, Qfile_error, Qfile_notify_error)
+	(Qfile_already_exists, Qfile_date_error, Qexcl)
+	(Qfile_name_history, Qcar_less_than_car, Qexpand_file_name)
+	(Qsubstitute_in_file_name, Qdirectory_file_name)
+	(Qfile_name_directory, Qfile_name_nondirectory)
+	(Qunhandled_file_name_directory, Qfile_name_as_directory)
+	(Qcopy_file, Qmake_directory_internal, Qmake_directory)
+	(Qdelete_directory_internal, Qdelete_file, Qrename_file)
+	(Qadd_name_to_file, Qmake_symbolic_link, Qfile_exists_p)
+	(Qfile_executable_p, Qfile_readable_p, Qfile_writable_p)
+	(Qfile_symlink_p, Qaccess_file, Qfile_directory_p)
+	(Qfile_regular_p, Qfile_accessible_directory_p, Qfile_modes)
+	(Qset_file_modes, Qset_file_times, Qfile_selinux_context)
+	(Qset_file_selinux_context, Qfile_acl, Qset_file_acl)
+	(Qfile_newer_than_file_p, Qinsert_file_contents)
+	(Qchoose_write_coding_system, Qwrite_region)
+	(Qverify_visited_file_modtime, Qset_visited_file_modtime):
+	* fns.c (Qstring_lessp, Qprovide, Qrequire, Qyes_or_no_p_history)
+	(Qcursor_in_echo_area, Qwidget_type, Qcodeset, Qdays, Qmonths)
+	(Qpaper, Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512)
+	(Qsubfeatures, Qfuncall, Qhash_table_p, Qkey, Qvalue, Qeql, Qeq)
+	(Qequal, QCtest, QCsize, QCrehash_size, QCrehash_threshold)
+	(QCweakness, Qhash_table_test, Qkey_or_value, Qkey_and_value):
+	* font.c (Qopentype, Qascii_0, Qiso8859_1, Qiso10646_1)
+	(Qunicode_bmp, Qunicode_sip, QCf, QCfoundry, QCadstyle)
+	(QCregistry, QCspacing, QCdpi, QCscalable, QCotf, QClang)
+	(QCscript, QCavgwidth, QCantialias, QCfont_entity)
+	(QCfc_unknown_spec, Qc, Qm, Qd, Qp, Qja, Qko, QCuser_spec):
+	* fontset.c (Qfontset, Qfontset_info, Qprepend, Qappend, Qlatin):
+	* frame.c (Qns_parse_geometry, Qframep, Qframe_live_p, Qicon)
+	(Qmodeline, Qonly, Qnone, Qx, Qw32, Qpc, Qns, Qvisible)
+	(Qdisplay_type, Qbackground_mode, Qnoelisp, Qx_frame_parameter)
+	(Qx_resource_name, Qterminal, Qheight, Qwidth, Qleft, Qright)
+	(Qicon_left, Qicon_top, Qtooltip, Qminibuffer, Quser_position)
+	(Quser_size, Qwindow_id, Qouter_window_id, Qparent_id)
+	(Qexplicit_name, Qbuffer_predicate, Qbuffer_list)
+	(Qburied_buffer_list, Qtty_color_mode, Qtty, Qtty_type)
+	(Qfullwidth, Qfullheight, Qfullboth, Qmaximized)
+	(Qface_set_after_frame_default, Qdelete_frame_functions)
+	(Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
+	* fringe.c (Qtruncation, Qcontinuation, Qoverlay_arrow)
+	(Qempty_line, Qtop_bottom, Qhollow_small):
+	* ftfont.c (Qfreetype, Qmonospace, Qsans_serif, Qserif, Qmono)
+	(Qsans, Qsans__serif):
+	* ftxfont.c (Qftx):
+	* gfilenotify.c (Qgfile_add_watch, Qgfile_rm_watch, Qwatch_mounts)
+	(Qsend_moved, Qchanged, Qchanges_done_hint, Qdeleted, Qcreated)
+	(Qattribute_changed, Qpre_unmount, Qunmounted, Qmoved):
+	* gnutls.c (Qgnutls_dll, Qgnutls_code, Qgnutls_anon)
+	(Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
+	(Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
+	(QCgnutls_bootprop_priority, QCgnutls_bootprop_trustfiles)
+	(QCgnutls_bootprop_keylist, QCgnutls_bootprop_crlfiles)
+	(QCgnutls_bootprop_callbacks, QCgnutls_bootprop_loglevel)
+	(QCgnutls_bootprop_hostname, QCgnutls_bootprop_min_prime_bits)
+	(QCgnutls_bootprop_verify_flags)
+	(QCgnutls_bootprop_verify_hostname_error)
+	(QCgnutls_bootprop_callbacks_verify):
+	* image.c (Qlibpng_version, Qlibgif_version, Qlibjpeg_version)
+	(Qpostscript, QCmax_width, QCmax_height, Qxbm, QCascent, QCmargin)
+	(QCrelief, QCconversion, QCheuristic_mask, QCcolor_symbols)
+	(QCindex, QCmatrix, QCcolor_adjustment, QCmask, QCgeometry)
+	(QCcrop, QCrotation, Qcount, Qextension_data, Qdelay, Qlaplace)
+	(Qemboss, Qedge_detection, Qheuristic, Qxpm, Qpbm, Qpng, Qjpeg)
+	(Qtiff, Qgif, Qimagemagick, Qsvg, Qgdk_pixbuf, Qglib, Qgobject)
+	(QCloader, QCbounding_box, QCpt_width, QCpt_height):
+	* inotify.c (Qaccess, Qattrib, Qclose_write, Qclose_nowrite)
+	(Qcreate, Qdelete, Qdelete_self, Qmodify, Qmove_self, Qmoved_from)
+	(Qmoved_to, Qopen, Qall_events, Qmove, Qclose, Qdont_follow)
+	(Qexcl_unlink, Qmask_add, Qoneshot, Qonlydir, Qignored, Qisdir)
+	(Qq_overflow, Qunmount):
+	* insdel.c (Qinhibit_modification_hooks, Qregion_extract_function):
+	* keyboard.c (Qdisabled, Qdisabled_command_function)
+	(Qx_set_selection, Qhandle_switch_frame, Qhandle_select_window)
+	(QPRIMARY, Qself_insert_command, Qforward_char, Qbackward_char)
+	(Qundefined, Qtimer_event_handler, Qinput_method_function)
+	(Qdeactivate_mark, Qrecompute_lucid_menubar)
+	(Qactivate_menubar_hook, Qecho_area_clear_hook, Qpre_command_hook)
+	(Qpost_command_hook, Qdeferred_action_function)
+	(Qdelayed_warnings_hook, Qinput_method_exit_on_first_char)
+	(Qinput_method_use_echo_area, Qhelp_form_show, Qhelp_echo)
+	(Qmouse_fixup_help_message, Qfunction_key, Qmouse_click)
+	(Qlanguage_change, Qdrag_n_drop, Qsave_session, Qdbus_event)
+	(Qfile_notify, Qconfig_changed_event, Qmouse_movement)
+	(Qevent_kind, Qevent_symbol_elements, Qmenu_enable, QCenable)
+	(QCvisible, QChelp, QCkeys, QCkey_sequence, QCfilter, QCtoggle)
+	(QCradio, QCbutton, QClabel, QCvert_only)
+	(Qevent_symbol_element_mask, Qmodifier_cache, Qmode_line)
+	(Qvertical_line, Qvertical_scroll_bar, Qmenu_bar)
+	(Qecho_keystrokes, Qcommand_execute, Qpolling_period)
+	(Qregion_extract_function, Qabove_handle, Qhandle, Qbelow_handle)
+	(Qup, Qdown, Qbottom, Qend_scroll, Qtop, Qratio, QCimage, QCrtl):
+	* keymap.c (Qkeymapp, Qnon_ascii, Qkeymap, Qmenu_item, Qremap)
+	(QCadvertised_binding, Qkeymap_canonicalize)
+	(Qsingle_key_description, Qkey_description):
+	* lread.c (Qhash_table, Qdata, Qtest, Qsize, Qweakness)
+	(Qrehash_size, Qrehash_threshold, Qread_char, Qget_file_char)
+	(Qcurrent_load_list, Qstandard_input, Qvariable_documentation)
+	(Qascii_character, Qload, Qload_file_name, Qbackquote, Qcomma)
+	(Qcomma_at, Qcomma_dot, Qfunction, Qinhibit_file_name_operation)
+	(Qeval_buffer_list, Qlexical_binding, Qfile_truename)
+	(Qdo_after_load_evaluation, Qget_emacs_mule_file_char)
+	(Qload_force_doc_strings, Qload_in_progress)
+	(Qold_style_backquotes, Qdir_ok):
+	* macfont.m (Qmac_ct, QCdestination, QCminspace):
+	* macros.c (Qexecute_kbd_macro, Qkbd_macro_termination_hook):
+	* minibuf.c (Qhistory_length, Qminibuffer_history)
+	(Qbuffer_name_history, Qread_file_name_internal)
+	(Qminibuffer_setup_hook, Qminibuffer_exit_hook)
+	(Qcompletion_ignore_case, Qminibuffer_completion_table)
+	(Qminibuffer_completion_predicate, Qminibuffer_completion_confirm)
+	(Qcustom_variable_p, Qminibuffer_default, Qcurrent_input_method)
+	(Qactivate_input_method, Qcase_fold_search)
+	(Qread_expression_history, Qmetadata):
+	* nsfns.m (Qforeground_color, Qbackground_color, Qcursor_color)
+	(Qinternal_border_width, Qvisibility, Qcursor_type, Qicon_type)
+	(Qicon_name, Qicon_left, Qicon_top, Qleft, Qright, Qtop, Qdisplay)
+	(Qvertical_scroll_bars, Qauto_raise, Qauto_lower, Qbox)
+	(Qscroll_bar_width, Qx_resource_name)
+	(Qface_set_after_frame_default, Qunderline, Qundefined, Qheight)
+	(Qminibuffer, Qname, Qonly, Qwidth, Qunsplittable)
+	(Qmenu_bar_lines, Qbuffer_predicate, Qtitle, Qbuffered)
+	(Qfontsize):
+	* nsfont.m (Qns, Qnormal, Qbold, Qitalic, Qapple, Qroman, Qmedium)
+	(Qcondensed, Qexpanded, Qappend):
+	* nsimage.m (QCfile, QCdata):
+	* nsmenu.m (Qundefined, Qmenu_enable, Qmenu_bar_update_hook)
+	(QCtoggle, QCradio, Qdebug_on_next_call, Qoverriding_local_map)
+	(Qoverriding_terminal_local_map):
+	* nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME)
+	(Qforeign_selection):
+	* nsterm.m (Qmodifier_value, Qalt, Qcontrol, Qhyper, Qmeta)
+	(Qsuper, Qcursor_color, Qcursor_type, Qns, Qleft, QUTF8_STRING)
+	(Qcocoa, Qgnustep):
+	* print.c (Qstandard_output, Qtemp_buffer_setup_hook)
+	(Qfloat_output_format, Qprint_escape_newlines)
+	(Qprint_escape_multibyte, Qprint_escape_nonascii)
+	(Qexternal_debugging_output):
+	* process.c (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess)
+	(Qttname, Qtpgid, Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime)
+	(Qstime, Qcstime, Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize)
+	(Qrss, Qargs, Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime)
+	(QCname, QCtype, Qprocessp, Qrun, Qstop, Qsignal, Qopen, Qclosed)
+	(Qconnect, Qfailed, Qlisten, Qlocal, Qipv4, Qdatagram, Qseqpacket)
+	(Qreal, Qnetwork, Qserial, Qipv6, QCport, QCprocess, QCspeed)
+	(QCbytesize, QCstopbits, QCparity, Qodd, Qeven, QCflowcontrol)
+	(Qhw, Qsw, QCsummary, QCbuffer, QChost, QCservice, QClocal)
+	(QCremote, QCcoding, QCserver, QCnowait, QCnoquery, QCstop)
+	(QCsentinel, QClog, QCoptions, QCplist, Qlast_nonmenu_event)
+	(Qinternal_default_process_sentinel)
+	(Qinternal_default_process_filter):
+	* profiler.c (Qprofiler_backtrace_equal):
+	* search.c (Qinvalid_regexp, Qsearch_failed):
+	* sound.c (QCvolume, QCdevice, Qsound, Qplay_sound_functions):
+	* syntax.c (Qsyntax_table_p, Qsyntax_table, Qscan_error):
+	* term.c (Qtty_menu_navigation_map, Qtty_menu_exit)
+	(Qtty_menu_prev_item, Qtty_menu_next_item, Qtty_menu_next_menu)
+	(Qtty_menu_prev_menu, Qtty_menu_select, Qtty_menu_ignore)
+	(Qtty_menu_mouse_movement):
+	* terminal.c (Qterminal_live_p, Qrun_hook_with_args)
+	(Qdelete_terminal_functions):
+	* textprop.c (Qmouse_left, Qmouse_entered, Qpoint_left)
+	(Qpoint_entered, Qcategory, Qlocal_map, Qforeground, Qbackground)
+	(Qunderline, Qfont, Qstipple, Qinvisible, Qintangible)
+	(Qmouse_face, Qread_only, Qminibuffer_prompt, Qfront_sticky)
+	(Qrear_nonsticky):
+	* undo.c (Qinhibit_read_only, Qapply):
+	* window.c (Qwindowp, Qwindow_live_p, Qwindow_valid_p)
+	(Qwindow_configuration_p, Qrecord_window_buffer)
+	(Qwindow_deletable_p, Qdelete_window, Qdisplay_buffer)
+	(Qreplace_buffer_in_windows, Qget_mru_window)
+	(Qwindow_resize_root_window)
+	(Qwindow_resize_root_window_vertically, Qscroll_up, Qscroll_down)
+	(Qscroll_command, Qsafe, Qabove, Qbelow, Qwindow_size, Qclone_of)
+	(Qtemp_buffer_show_hook, Qwindow_configuration_change_hook):
+	* xdisp.c (Qoverriding_local_map, Qoverriding_terminal_local_map)
+	(Qwindow_scroll_functions, Qwindow_text_change_functions)
+	(Qredisplay_end_trigger_functions, Qinhibit_point_motion_hooks)
+	(QCeval, QCpropertize, QCfile, QCdata, Qfontified, Qgrow_only)
+	(Qinhibit_eval_during_redisplay, Qbuffer_position, Qposition)
+	(Qobject, Qright_to_left, Qleft_to_right, Qbar, Qhbar, Qbox)
+	(Qhollow, Qarrow, Qhand, Qtext, Qfontification_functions)
+	(Qwrap_prefix, Qline_prefix, Qredisplay_internal)
+	(Qinhibit_redisplay, Qdisplay, Qspace, QCalign_to)
+	(QCrelative_width, QCrelative_height, Qleft_margin, Qright_margin)
+	(Qspace_width, Qraise, Qslice, Qcenter, Qmargin, Qpointer)
+	(Qline_height, Qtrailing_whitespace, Qescape_glyph)
+	(Qnobreak_space, Qimage, QCmap, QCpointer, Qrect, Qcircle, Qpoly)
+	(Qboth, Qboth_horiz, Qtext_image_horiz, Qlast_arrow_position)
+	(Qlast_arrow_string, Qoverlay_arrow_string, Qoverlay_arrow_bitmap)
+	(Qmenu_bar_update_hook, Qinhibit_menubar_update)
+	(Qmessage_truncate_lines, Qauto_hscroll_mode)
+	(Qinhibit_free_realized_faces, Qmode_line_default_help_echo)
+	(Qglyphless_char, Qglyphless_char_display, Qhex_code, Qempty_box)
+	(Qthin_space, Qzero_width, Qeval):
+	* xfaces.c (QCfamily, QCheight, QCweight, QCslant, QCunderline)
+	(QCinverse_video, QCstipple, QCforeground, QCbackground, QCwidth)
+	(QCfont, QCbold, QCitalic, QCreverse_video, QCoverline)
+	(QCstrike_through, QCbox, QCinherit, QCfontset)
+	(QCdistant_foreground, Qnormal, Qbold, Qline, Qwave, Qextra_light)
+	(Qlight, Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold)
+	(Qoblique, Qitalic, Qreleased_button, Qpressed_button, QCstyle)
+	(QCcolor, QCline_width, Qunspecified, QCignore_defface)
+	(Qframe_set_background_mode, Qdefault, Qtool_bar, Qfringe)
+	(Qregion, Qheader_line, Qscroll_bar, Qcursor, Qborder, Qmouse)
+	(Qmenu, Qmode_line_inactive, Qvertical_border, Qface_alias)
+	(Qscalable_fonts_allowed, Qforeground_color, Qbackground_color)
+	(Qface, Qface_no_inherit, Qbitmap_spec_p, Qtty_color_desc)
+	(Qtty_color_by_index, Qtty_color_standard_values)
+	(Qtty_color_alist):
+	* xfns.c (Qsuppress_icon, Qundefined_color, Qcompound_text)
+	(Qcancel_timer, Qfont_param):
+	* xftfont.c (Qxft, QChinting, QCautohint, QChintstyle, QCrgba)
+	(QCembolden, QClcdfilter):
+	* xmenu.c (Qdebug_on_next_call):
+	* xml.c (Qlibxml2_dll):
+	* xselect.c (QSECONDARY, QSTRING, QINTEGER, QCLIPBOARD)
+	(QTIMESTAMP, QTEXT, QDELETE, QMULTIPLE, QINCR, QEMACS_TMP)
+	(QTARGETS, QATOM, QNULL, QATOM_PAIR, QCLIPBOARD_MANAGER)
+	(QSAVE_TARGETS, QCOMPOUND_TEXT, QUTF8_STRING)
+	(Qcompound_text_with_extensions, Qforeign_selection)
+	(Qx_lost_selection_functions, Qx_sent_selection_functions):
+	* xsettings.c (Qmonospace_font_name, Qfont_name, Qfont_render)
+	(Qtool_bar_style):
+	* xterm.c (Qalt, Qhyper, Qmeta, Qsuper, Qmodifier_value)
+	(Qvendor_specific_keysyms, Qlatin_1, Qx_gtk_map_stock):
+	Remove vars.  These vars are now defined automatically by make-docfile.
+	* buffer.c (DEFVAR_PER_BUFFER):
+	* lisp.h (DEFSYM, DEFUN, DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
+	(DEFVAR_INT, DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD):
+	Do not define if GENERATE_GLOBALS is defined.
+	* buffer.h (Qbefore_change_functions, Qafter_change_functions)
+	(Qfirst_change_hook, Qpriority, Qbefore_string, Qafter_string):
+	* ccl.h (Qccl, Qcclp):
+	* character.h (Qcharacterp):
+	* charset.h (Qcharsetp, Qascii):
+	* coding.h (Qutf_8, Qutf_8_emacs, Qcoding_category_index)
+	(Qcoding_system_p, Qraw_text, Qemacs_mule, Qno_conversion)
+	(Qundecided, Qbuffer_file_coding_system, Qunix, Qdos)
+	(Qtranslation_table, Qtranslation_table_id, Qfile_coding_system)
+	(Qcall_process, Qcall_process_region, Qstart_process)
+	(Qopen_network_stream, Qwrite_region, Qcoding_system_error):
+	* composite.h (Qcomposition):
+	* dispextern.h (Qtool_bar, Qforeground_color, Qbackground_color)
+	(Qredisplay_dont_pause):
+	* disptab.h (Qdisplay_table):
+	* font.h (Qfont_spec, Qfont_entity, Qfont_object, QCspacing)
+	(QCdpi, QCscalable, QCotf, QClang, QCscript, QCavgwidth)
+	(QCantialias, QCfont_entity, Qp, Qascii_0, Qiso8859_1)
+	(Qiso10646_1, Qunicode_bmp, Qunicode_sip, Qja, Qko, Qxft)
+	(Qfontsize, QCfoundry):
+	* fontset.h (Qlatin):
+	* frame.h (Qframep, Qframe_live_p, Qtty, Qtty_type, Qtty_color_mode)
+	(Qterminal, Qnoelisp, Qbuffer_predicate, Qfont, Qbackground_color)
+	(Qforeground_color, Qicon, Qicon_left, Qicon_top, Qtooltip)
+	(Qparent_id, Qfullwidth, Qfullheight, Qfullboth, Qmaximized)
+	(Qheight, Qwidth, Qminibuffer, Qmodeline, Qx, Qw32, Qpc, Qns)
+	(Qvisible, Qdisplay_type, Qx_resource_name, Qleft, Qright, Qtop, Qbox)
+	(Qbottom, Qdisplay, Qrun_hook_with_args, Qface_set_after_frame_default):
+	* intervals.h (Qpoint_left, Qpoint_entered, Qmodification_hooks)
+	(Qcategory, Qlocal_map, Qkeymap, Qfont, Qinvisible, Qintangible)
+	(Qfront_sticky, Qrear_nonsticky):
+	* keyboard.h (Qrecompute_lucid_menubar, Qactivate_menubar_hook)
+	(Qevent_kind, Qmouse_click, Qhelp_echo, Qmode_line)
+	(Qvertical_line, Qheader_line, QPRIMARY, QCtoggle, QCradio)
+	(Qevent_symbol_element_maskk):
+	* keymap.h (Qkeymap, Qmenu_bar, Qremap, Qmenu_item):
+	* lisp.h (Qnil, Qt, Qquote, Qlambda, Qunbound, Qerror_conditions)
+	(Qerror_message, Qtop_level, Qerror, Qquit, Qargs_out_of_range)
+	(Qvoid_variable, Qvoid_function, Qinvalid_read_syntax)
+	(Qinvalid_function, Qwrong_number_of_arguments, Qno_catch)
+	(Quser_error, Qend_of_file, Qarith_error, Qmark_inactive)
+	(Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only)
+	(Qtext_read_only, Qinteractive_form, Qcircular_list, Qintegerp)
+	(Qwholenump, Qsymbolp, Qlistp, Qconsp, Qstringp, Qarrayp)
+	(Qsequencep, Qbufferp, Qchar_or_string_p, Qmarkerp)
+	(Qinteger_or_marker_p, Qvectorp, Qbuffer_or_string_p, Qfboundp)
+	(Qchar_table_p, Qvector_or_char_table_p, Qcdr, Qrange_error)
+	(Qoverflow_error, Qfloatp, Qnumberp, Qnumber_or_marker_p, Qbuffer)
+	(Qinteger, Qsymbol, Qfont_spec, Qfont_entity, Qfont_object)
+	(Qcharset, QCrehash_size, QCrehash_threshold)
+	(Qcursor_in_echo_area, Qstring_lessp, QCsize, QCtest, QCweakness)
+	(Qequal, Qeq, QCascent, QCmargin, QCrelief, QCconversion)
+	(Qinhibit_modification_hooks, Qinhibit_point_motion_hooks)
+	(Qinhibit_redisplay, Qdisplay, Qmenu_bar_update_hook)
+	(Qwindow_scroll_functions, Qoverriding_local_map)
+	(Qoverriding_terminal_local_map, Qimage, Qtext, Qboth)
+	(Qboth_horiz, Qtext_image_horiz, Qspace, Qcenter, QCalign_to)
+	(Qbar, Qhbar, Qbox, Qhollow, Qleft_margin, Qright_margin, QCdata)
+	(QCfile, QCmap, Qrisky_local_variable, Qautomatic_gc)
+	(Qchar_table_extra_slots, Qstandard_output)
+	(Qexternal_debugging_output, Qprint_escape_newlines)
+	(Qvariable_documentation, Qstandard_input, Qbackquote, Qcomma)
+	(Qcomma_at, Qcomma_dot, Qfunction, Qlexical_binding, Qautoload)
+	(Qexit, Qinteractive, Qcommandp, Qmacro, Qinhibit_quit)
+	(Qinternal_interpreter_environment, Qclosure, Qand_rest)
+	(Vrun_hooks, Qfield, Qfile_error, Qfile_notify_error)
+	(Qfile_exists_p, Qfile_directory_p, Qinsert_file_contents)
+	(Qfile_name_history, Qdelete_file, Qcompletion_ignore_case)
+	(Qminus, Qplus, Qwhen, Qmouse_leave_buffer_hook, Qidentity)
+	(Qdisabled, QCfilter, Qup, Qdown, Qbottom, Qtop, Qonly, Qnone)
+	(Qvisible, Qfile_name_handler_alist, Qkill_emacs, QCtype, Qlocal)
+	(Qprocessp, Qfunction_documentation, Qapply, Qinhibit_read_only)
+	(Qfont, Qmouse_face, Qinsert_in_front_hooks, Qinsert_behind_hooks)
+	(Qfront_sticky, Qrear_nonsticky, Qminibuffer_prompt, Qfont_param)
+	(Qdefault, Qtool_bar, Qfringe, Qheader_line, Qscroll_bar, Qcursor)
+	(Qmode_line_inactive, Qface, Qnormal, QCfamily, QCweight, QCslant)
+	(QCheight, QCname, QCwidth, QCforeground, QCbackground)
+	(Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold)
+	(Qextra_bold, Qultra_bold, Qoblique, Qitalic):
+	* nsterm.h (Qfontsize):
+	* process.h (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess)
+	(Qttname, Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime)
+	(Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs)
+	(Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime, Qtime)
+	(Qctime, QCspeed, QCbytesize, QCstopbits, QCparity, Qodd, Qeven)
+	(QCflowcontrol, Qhw, Qsw, QCsummary):
+	* window.h (Qwindow_live_p):
+	* xterm.h (Qx_gtk_map_stock):
+	Remove decls; now computed automatically.
+	* bidi.c (bidi_initialize):
+	* nsfns.m (syms_of_nsfns):
+	* nsmenu.m (syms_of_nsmenu):
+	* nsselect.m (syms_of_nsselect):
+	Prefer DEFSYM to doing it by hand.
+	* doc.c (Fsnarf_documentation) [GENERATE_GLOBALS]:
+	Don't include buildobj.h, since it might not exist yet.
+	* gnutls.c (syms_of_gnutls):
+	Omit :callbacks-verify which in unused and which doesn't seem to
+	be initialized properly anyway.
+	* xfns.c (x_set_mouse_color, syms_of_xfns):
+	Don't initialize variables that no longer exist.
+
 	* xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
 	Qmeta, and Qsuper.  This is safer, and it's what w32fns.c does.

=== modified file 'src/Makefile.in'
--- src/Makefile.in	2013-11-02 23:49:54 +0000
+++ src/Makefile.in	2013-11-12 22:28:24 +0000
@@ -342,15 +342,17 @@
 ## for use in Emacs.
 ##
 ## FIXME? MYCPPFLAGS only referenced in etc/DEBUG.
-ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \
+NONDEP_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \
   -I$(lib) -I$(srcdir)/../lib \
   $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
   $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \
   $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) \
   $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \
-  $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \
+  $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) \
   $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) \
   $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS)
+NONDEP_OBJC_CFLAGS=$(NONDEP_CFLAGS) $(GNU_OBJC_CFLAGS)
+ALL_CFLAGS=$(NONDEP_CFLAGS) $(DEPFLAGS)
 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
 
 .SUFFIXES: .m
@@ -488,10 +490,24 @@
 
 globals.h: gl-stamp; @true
 
-GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
-
-gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
-	$(libsrc)/make-docfile -d $(srcdir) -g $(obj) > gl.tmp
+# Set this to 'false' to speed the build but bloat Emacs a bit, by causing
+# the gl-stamp build process to bypass the preprocessor and access
+# symbols directly, even symbols that would be preprocessed away.
+GLOBALS_CPP = $(CPP)
+
+GLOBALS_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
+
+gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBALS_SOURCES)
+	test -f globals.h || echo '/* dummy */' >globals.h
+	rm -f ok.tmp
+	($(GLOBALS_CPP) -DGENERATE_GLOBALS $(NONDEP_CFLAGS) \
+	   $(base_obj:.o=.c) \
+	 && { set x $(NS_OBJC_OBJ:.o=.m); shift; \
+	      test $$# -eq 0 \
+	      || $(GLOBALS_CPP) -DGENERATE_GLOBALS $(NONDEP_OBJC_CFLAGS) \
+		   "$$@"; } \
+	 && touch ok.tmp) | $(libsrc)/make-docfile -g >gl.tmp
+	test -f ok.tmp || $(libsrc)/make-docfile -d $(srcdir) -g $(obj) >gl.tmp
 	$(srcdir)/../build-aux/move-if-change gl.tmp globals.h
 	echo timestamp > $@

=== modified file 'src/alloc.c'
--- src/alloc.c	2013-11-07 05:31:04 +0000
+++ src/alloc.c	2013-11-12 22:28:24 +0000
@@ -205,23 +205,6 @@
 static ptrdiff_t stack_copy_size;
 #endif
 
-static Lisp_Object Qconses;
-static Lisp_Object Qsymbols;
-static Lisp_Object Qmiscs;
-static Lisp_Object Qstrings;
-static Lisp_Object Qvectors;
-static Lisp_Object Qfloats;
-static Lisp_Object Qintervals;
-static Lisp_Object Qbuffers;
-static Lisp_Object Qstring_bytes, Qvector_slots, Qheap;
-static Lisp_Object Qgc_cons_threshold;
-Lisp_Object Qautomatic_gc;
-Lisp_Object Qchar_table_extra_slots;
-
-/* Hook run after GC has finished.  */
-
-static Lisp_Object Qpost_gc_hook;
-
 static void mark_terminals (void);
 static void gc_sweep (void);
 static Lisp_Object make_pure_vector (ptrdiff_t);

=== modified file 'src/bidi.c'
--- src/bidi.c	2013-09-17 07:06:42 +0000
+++ src/bidi.c	2013-11-12 22:28:24 +0000
@@ -88,7 +88,6 @@
 bool bidi_ignore_explicit_marks_for_paragraph_level = 1;
 
 static Lisp_Object paragraph_start_re, paragraph_separate_re;
-static Lisp_Object Qparagraph_start, Qparagraph_separate;
 
 
 /***********************************************************************
@@ -766,14 +765,12 @@
     emacs_abort ();
   staticpro (&bidi_mirror_table);
 
-  Qparagraph_start = intern ("paragraph-start");
-  staticpro (&Qparagraph_start);
+  DEFSYM (Qparagraph_start, "paragraph-start");
   paragraph_start_re = Fsymbol_value (Qparagraph_start);
   if (!STRINGP (paragraph_start_re))
     paragraph_start_re = build_string ("\f\\|[ \t]*$");
   staticpro (&paragraph_start_re);
-  Qparagraph_separate = intern ("paragraph-separate");
-  staticpro (&Qparagraph_separate);
+  DEFSYM (Qparagraph_separate, "paragraph-separate");
   paragraph_separate_re = Fsymbol_value (Qparagraph_separate);
   if (!STRINGP (paragraph_separate_re))
     paragraph_separate_re = build_string ("[ \t\f]*$");

=== modified file 'src/buffer.c'
--- src/buffer.c	2013-11-12 01:24:04 +0000
+++ src/buffer.c	2013-11-12 22:28:24 +0000
@@ -111,36 +111,10 @@
    due to user rplac'ing this alist or its elements.  */
 Lisp_Object Vbuffer_alist;
 
-static Lisp_Object Qkill_buffer_query_functions;
-
-/* Hook run before changing a major mode.  */
-static Lisp_Object Qchange_major_mode_hook;
-
-Lisp_Object Qfirst_change_hook;
-Lisp_Object Qbefore_change_functions;
-Lisp_Object Qafter_change_functions;
-
 static Lisp_Object Qfundamental_mode, Qmode_class, Qpermanent_local;
-static Lisp_Object Qpermanent_local_hook;
-
 static Lisp_Object Qprotected_field;
-
 static Lisp_Object QSFundamental;	/* A string "Fundamental".  */
-
 static Lisp_Object Qkill_buffer_hook;
-static Lisp_Object Qbuffer_list_update_hook;
-
-static Lisp_Object Qget_file_buffer;
-
-static Lisp_Object Qoverlayp;
-
-Lisp_Object Qpriority, Qbefore_string, Qafter_string;
-
-static Lisp_Object Qevaporate;
-
-Lisp_Object Qmodification_hooks;
-Lisp_Object Qinsert_in_front_hooks;
-Lisp_Object Qinsert_behind_hooks;
 
 static void alloc_buffer_text (struct buffer *, ptrdiff_t);
 static void free_buffer_text (struct buffer *b);
@@ -5370,11 +5344,13 @@
    that nil is allowed too).  DOC is a dummy where you write the doc
    string as a comment.  */
 
+#ifndef GENERATE_GLOBALS
 #define DEFVAR_PER_BUFFER(lname, vname, predicate, doc)		\
   do {								\
     static struct Lisp_Buffer_Objfwd bo_fwd;			\
     defvar_per_buffer (&bo_fwd, lname, vname, predicate);	\
   } while (0)
+#endif
 
 static void
 defvar_per_buffer (struct Lisp_Buffer_Objfwd *bo_fwd, const char *namestring,

=== modified file 'src/buffer.h'
--- src/buffer.h	2013-11-08 10:21:35 +0000
+++ src/buffer.h	2013-11-12 22:28:24 +0000
@@ -1128,10 +1128,6 @@
   } while (0)
 
 extern Lisp_Object Vbuffer_alist;
-extern Lisp_Object Qbefore_change_functions;
-extern Lisp_Object Qafter_change_functions;
-extern Lisp_Object Qfirst_change_hook;
-extern Lisp_Object Qpriority, Qbefore_string, Qafter_string;
 
 /* FOR_EACH_LIVE_BUFFER (LIST_VAR, BUF_VAR) followed by a statement is
    a `for' loop which iterates over the buffers from Vbuffer_alist.  */

=== modified file 'src/bytecode.c'
--- src/bytecode.c	2013-11-04 06:09:03 +0000
+++ src/bytecode.c	2013-11-12 22:28:24 +0000
@@ -67,7 +67,6 @@
 
 #ifdef BYTE_CODE_METER
 
-Lisp_Object Qbyte_code_meter;
 #define METER_2(code1, code2) AREF (AREF (Vbyte_code_meter, code1), code2)
 #define METER_1(code) METER_2 (0, code)

=== modified file 'src/callint.c'
--- src/callint.c	2013-09-04 20:22:37 +0000
+++ src/callint.c	2013-11-12 22:28:24 +0000
@@ -28,18 +28,6 @@
 #include "window.h"
 #include "keymap.h"
 
-Lisp_Object Qminus, Qplus;
-static Lisp_Object Qcall_interactively;
-static Lisp_Object Qcommand_debug_status;
-static Lisp_Object Qenable_recursive_minibuffers;
-
-static Lisp_Object Qhandle_shift_selection;
-static Lisp_Object Qread_number;
-
-Lisp_Object Qmouse_leave_buffer_hook;
-
-static Lisp_Object Qlist, Qlet, Qletx, Qsave_excursion, Qprogn, Qif;
-Lisp_Object Qwhen;
 static Lisp_Object preserved_fns;
 
 /* Marker used within call-interactively to refer to point.  */

=== modified file 'src/casefiddle.c'
--- src/casefiddle.c	2013-11-01 10:00:47 +0000
+++ src/casefiddle.c	2013-11-12 22:28:24 +0000
@@ -30,8 +30,6 @@
 #include "keymap.h"
 
 enum case_action {CASE_UP, CASE_DOWN, CASE_CAPITALIZE, CASE_CAPITALIZE_UP};
-
-Lisp_Object Qidentity;
 
 static Lisp_Object
 casify_object (enum case_action flag, Lisp_Object obj)

=== modified file 'src/casetab.c'
--- src/casetab.c	2013-10-11 06:32:29 +0000
+++ src/casetab.c	2013-11-12 22:28:24 +0000
@@ -24,7 +24,6 @@
 #include "character.h"
 #include "buffer.h"
 
-static Lisp_Object Qcase_table_p, Qcase_table;
 Lisp_Object Vascii_downcase_table;
 static Lisp_Object Vascii_upcase_table;
 Lisp_Object Vascii_canon_table;

=== modified file 'src/category.c'
--- src/category.c	2013-11-05 07:11:24 +0000
+++ src/category.c	2013-11-12 22:28:24 +0000
@@ -53,8 +53,6 @@
 
    For the moment, we are not using this feature.  */
 static int category_table_version;
-
-static Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p;
 
 /* Category set staff.  */

=== modified file 'src/ccl.c'
--- src/ccl.c	2013-11-04 06:09:03 +0000
+++ src/ccl.c	2013-11-12 22:28:24 +0000
@@ -34,21 +34,6 @@
 #include "ccl.h"
 #include "coding.h"
 
-Lisp_Object Qccl, Qcclp;
-
-/* This symbol is a property which associates with ccl program vector.
-   Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector.  */
-static Lisp_Object Qccl_program;
-
-/* These symbols are properties which associate with code conversion
-   map and their ID respectively.  */
-static Lisp_Object Qcode_conversion_map;
-static Lisp_Object Qcode_conversion_map_id;
-
-/* Symbols of ccl program have this property, a value of the property
-   is an index for Vccl_program_table. */
-static Lisp_Object Qccl_program_idx;
-
 /* Table of registered CCL programs.  Each element is a vector of
    NAME, CCL_PROG, RESOLVEDP, and UPDATEDP, where NAME (symbol) is the
    name of the program, CCL_PROG (vector) is the compiled code of the
@@ -2305,8 +2290,17 @@
 
   DEFSYM (Qccl, "ccl");
   DEFSYM (Qcclp, "cclp");
+
+  /* This symbol is a property which associates with ccl program vector.
+     Ex: (get 'ccl-big5-encoder 'ccl-program) returns ccl program vector.  */
   DEFSYM (Qccl_program, "ccl-program");
+
+  /* Symbols of ccl program have this property, a value of the property
+     is an index for Vccl_program_table. */
   DEFSYM (Qccl_program_idx, "ccl-program-idx");
+
+  /* These symbols are properties which associate with code conversion
+     map and their ID respectively.  */
   DEFSYM (Qcode_conversion_map, "code-conversion-map");
   DEFSYM (Qcode_conversion_map_id, "code-conversion-map-id");

=== modified file 'src/ccl.h'
--- src/ccl.h	2012-09-01 06:38:52 +0000
+++ src/ccl.h	2013-11-12 22:28:24 +0000
@@ -101,8 +101,6 @@
 extern void ccl_driver (struct ccl_program *, int *, int *, int, int,
                         Lisp_Object);
 
-extern Lisp_Object Qccl, Qcclp;
-
 #define CHECK_CCL_PROGRAM(x)			\
   do {						\
     if (NILP (Fccl_program_p (x)))		\

=== modified file 'src/character.c'
--- src/character.c	2013-09-20 15:34:36 +0000
+++ src/character.c	2013-11-12 22:28:24 +0000
@@ -48,16 +48,10 @@
 
 #endif /* emacs */
 
-Lisp_Object Qcharacterp;
-
-static Lisp_Object Qauto_fill_chars;
-
 /* Char-table of information about which character to unify to which
    Unicode character.  Mainly used by the macro MAYBE_UNIFY_CHAR.  */
 Lisp_Object Vchar_unify_table;
 
-static Lisp_Object Qchar_script_table;
-
 
 
 /* If character code C has modifier masks, reflect them to the

=== modified file 'src/character.h'
--- src/character.h	2013-11-04 06:09:03 +0000
+++ src/character.h	2013-11-12 22:28:24 +0000
@@ -671,7 +671,6 @@
 extern ptrdiff_t lisp_string_width (Lisp_Object, ptrdiff_t,
 				    ptrdiff_t *, ptrdiff_t *);
 
-extern Lisp_Object Qcharacterp;
 extern Lisp_Object Vchar_unify_table;
 extern Lisp_Object string_escape_byte8 (Lisp_Object);

=== modified file 'src/charset.c'
--- src/charset.c	2013-10-03 04:41:23 +0000
+++ src/charset.c	2013-11-12 22:28:24 +0000
@@ -64,16 +64,7 @@
 static ptrdiff_t charset_table_size;
 static int charset_table_used;
 
-Lisp_Object Qcharsetp;
-
-/* Special charset symbols.  */
-Lisp_Object Qascii;
-static Lisp_Object Qeight_bit;
-static Lisp_Object Qiso_8859_1;
-static Lisp_Object Qunicode;
-static Lisp_Object Qemacs;
-
-/* The corresponding charsets.  */
+/* Special charsets corresponding to symbols.  */
 int charset_ascii;
 int charset_eight_bit;
 static int charset_iso_8859_1;
@@ -86,9 +77,6 @@
 int charset_jisx0208;
 int charset_ksc5601;
 
-/* Value of charset attribute `charset-iso-plane'.  */
-static Lisp_Object Qgl, Qgr;
-
 /* Charset of unibyte characters.  */
 int charset_unibyte;
 
@@ -2351,12 +2339,14 @@
 {
   DEFSYM (Qcharsetp, "charsetp");
 
+  /* Special charset symbols.  */
   DEFSYM (Qascii, "ascii");
   DEFSYM (Qunicode, "unicode");
   DEFSYM (Qemacs, "emacs");
   DEFSYM (Qeight_bit, "eight-bit");
   DEFSYM (Qiso_8859_1, "iso-8859-1");
 
+  /* Value of charset attribute `charset-iso-plane'.  */
   DEFSYM (Qgl, "gl");
   DEFSYM (Qgr, "gr");

=== modified file 'src/charset.h'
--- src/charset.h	2013-09-20 15:34:36 +0000
+++ src/charset.h	2013-11-12 22:28:24 +0000
@@ -520,9 +520,6 @@
 
 
 
-extern Lisp_Object Qcharsetp;
-
-extern Lisp_Object Qascii;
 extern int charset_ascii, charset_eight_bit;
 extern int charset_unicode;
 extern int charset_jisx0201_roman;

=== modified file 'src/chartab.c'
--- src/chartab.c	2013-11-08 07:28:21 +0000
+++ src/chartab.c	2013-11-12 22:28:24 +0000
@@ -57,9 +57,6 @@
 /* Preamble for uniprop (Unicode character property) tables.  See the
    comment of "Unicode character property tables".  */
 
-/* Purpose of uniprop tables. */
-static Lisp_Object Qchar_code_property_table;
-
 /* Types of decoder and encoder functions for uniprop values.  */
 typedef Lisp_Object (*uniprop_decoder_t) (Lisp_Object, Lisp_Object);
 typedef Lisp_Object (*uniprop_encoder_t) (Lisp_Object, Lisp_Object);
@@ -1413,6 +1410,7 @@
 void
 syms_of_chartab (void)
 {
+  /* Purpose of uniprop tables. */
   DEFSYM (Qchar_code_property_table, "char-code-property-table");
 
   defsubr (&Smake_char_table);

=== modified file 'src/cmds.c'
--- src/cmds.c	2013-09-05 02:27:13 +0000
+++ src/cmds.c	2013-11-12 22:28:24 +0000
@@ -31,11 +31,6 @@
 #include "dispextern.h"
 #include "frame.h"
 
-static Lisp_Object Qkill_forward_chars, Qkill_backward_chars;
-
-/* A possible value for a buffer's overwrite-mode variable.  */
-static Lisp_Object Qoverwrite_mode_binary;
-
 static int internal_self_insert (int, EMACS_INT);
 
 DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
@@ -322,9 +317,6 @@
    return 0.  A value of 1 indicates this *might* not have been simple.
    A value of 2 means this did things that call for an undo boundary.  */
 
-static Lisp_Object Qexpand_abbrev;
-static Lisp_Object Qpost_self_insert_hook;
-
 static int
 internal_self_insert (int c, EMACS_INT n)
 {
@@ -521,7 +513,10 @@
 {
   DEFSYM (Qkill_backward_chars, "kill-backward-chars");
   DEFSYM (Qkill_forward_chars, "kill-forward-chars");
+
+  /* A possible value for a buffer's overwrite-mode variable.  */
   DEFSYM (Qoverwrite_mode_binary, "overwrite-mode-binary");
+
   DEFSYM (Qexpand_abbrev, "expand-abbrev");
   DEFSYM (Qpost_self_insert_hook, "post-self-insert-hook");

=== modified file 'src/coding.c'
--- src/coding.c	2013-10-08 06:40:09 +0000
+++ src/coding.c	2013-11-12 22:28:24 +0000
@@ -303,35 +303,6 @@
 
 Lisp_Object Vcoding_system_hash_table;
 
-static Lisp_Object Qcoding_system, Qeol_type;
-static Lisp_Object Qcoding_aliases;
-Lisp_Object Qunix, Qdos;
-static Lisp_Object Qmac;
-Lisp_Object Qbuffer_file_coding_system;
-static Lisp_Object Qpost_read_conversion, Qpre_write_conversion;
-static Lisp_Object Qdefault_char;
-Lisp_Object Qno_conversion, Qundecided;
-Lisp_Object Qcharset, Qutf_8;
-static Lisp_Object Qiso_2022;
-static Lisp_Object Qutf_16, Qshift_jis, Qbig5;
-static Lisp_Object Qbig, Qlittle;
-static Lisp_Object Qcoding_system_history;
-static Lisp_Object Qvalid_codes;
-static Lisp_Object QCcategory, QCmnemonic, QCdefault_char;
-static Lisp_Object QCdecode_translation_table, QCencode_translation_table;
-static Lisp_Object QCpost_read_conversion, QCpre_write_conversion;
-static Lisp_Object QCascii_compatible_p;
-
-Lisp_Object Qcall_process, Qcall_process_region;
-Lisp_Object Qstart_process, Qopen_network_stream;
-static Lisp_Object Qtarget_idx;
-
-static Lisp_Object Qinsufficient_source, Qinvalid_source, Qinterrupted;
-
-/* If a symbol has this property, evaluate the value to define the
-   symbol as a coding system.  */
-static Lisp_Object Qcoding_system_define_form;
-
 /* Format of end-of-line decided by system.  This is Qunix on
    Unix and Mac, Qdos on DOS/Windows.
    This has an effect only for external encoding (i.e. for output to
@@ -340,17 +311,6 @@
 
 #ifdef emacs
 
-Lisp_Object Qcoding_system_p, Qcoding_system_error;
-
-/* Coding system emacs-mule and raw-text are for converting only
-   end-of-line format.  */
-Lisp_Object Qemacs_mule, Qraw_text;
-Lisp_Object Qutf_8_emacs;
-
-#if defined (WINDOWSNT) || defined (CYGWIN)
-static Lisp_Object Qutf_16le;
-#endif
-
 /* Coding-systems are handed between Emacs Lisp programs and C internal
    routines by the following three variables.  */
 /* Coding system to be used to encode text for terminal display when
@@ -359,11 +319,6 @@
 
 #endif /* emacs */
 
-Lisp_Object Qtranslation_table;
-Lisp_Object Qtranslation_table_id;
-static Lisp_Object Qtranslation_table_for_decode;
-static Lisp_Object Qtranslation_table_for_encode;
-
 /* Two special coding systems.  */
 static Lisp_Object Vsjis_coding_system;
 static Lisp_Object Vbig5_coding_system;
@@ -10814,6 +10769,7 @@
 
   DEFSYM (Qcoding_system_p, "coding-system-p");
 
+  /* Error signaled when there's a problem with detecting a coding system.  */
   DEFSYM (Qcoding_system_error, "coding-system-error");
   Fput (Qcoding_system_error, Qerror_conditions,
 	listn (CONSTYPE_PURE, 2, Qcoding_system_error, Qerror));
@@ -10828,6 +10784,8 @@
 
   DEFSYM (Qvalid_codes, "valid-codes");
 
+  /* Coding system emacs-mule and raw-text are for converting only
+     end-of-line format.  */
   DEFSYM (Qemacs_mule, "emacs-mule");
 
   DEFSYM (QCcategory, ":category");
@@ -10890,6 +10848,9 @@
   DEFSYM (Qinsufficient_source, "insufficient-source");
   DEFSYM (Qinvalid_source, "invalid-source");
   DEFSYM (Qinterrupted, "interrupted");
+
+  /* If a symbol has this property, evaluate the value to define the
+     symbol as a coding system.  */
   DEFSYM (Qcoding_system_define_form, "coding-system-define-form");
 
   defsubr (&Scoding_system_p);

=== modified file 'src/coding.h'
--- src/coding.h	2013-11-04 17:30:33 +0000
+++ src/coding.h	2013-11-12 22:28:24 +0000
@@ -777,23 +777,7 @@
 extern Lisp_Object preferred_coding_system (void);

-extern Lisp_Object Qutf_8, Qutf_8_emacs;
-
-extern Lisp_Object Qcoding_category_index;
-extern Lisp_Object Qcoding_system_p;
-extern Lisp_Object Qraw_text, Qemacs_mule, Qno_conversion, Qundecided;
-extern Lisp_Object Qbuffer_file_coding_system;
-
-extern Lisp_Object Qunix, Qdos;
-
-extern Lisp_Object Qtranslation_table;
-extern Lisp_Object Qtranslation_table_id;
-
 #ifdef emacs
-extern Lisp_Object Qfile_coding_system;
-extern Lisp_Object Qcall_process, Qcall_process_region;
-extern Lisp_Object Qstart_process, Qopen_network_stream;
-extern Lisp_Object Qwrite_region;
 
 extern char *emacs_strerror (int);
 
@@ -803,9 +787,6 @@
 
 #endif
 
-/* Error signaled when there's a problem with detecting coding system */
-extern Lisp_Object Qcoding_system_error;
-
 extern char emacs_mule_bytes[256];
 
 #endif /* EMACS_CODING_H */

=== modified file 'src/composite.c'
--- src/composite.c	2013-11-04 06:09:03 +0000
+++ src/composite.c	2013-11-12 22:28:24 +0000
@@ -134,8 +134,6 @@
 */

-Lisp_Object Qcomposition;
-
 /* Table of pointers to the structure `composition' indexed by
    COMPOSITION-ID.  This structure is for storing information about
    each composition except for COMPONENTS-VEC.  */
@@ -152,8 +150,6 @@
    COMPOSITION-ID.  */
 Lisp_Object composition_hash_table;
 
-static Lisp_Object Qauto_composed;
-static Lisp_Object Qauto_composition_function;
 /* Maximum number of characters to look back for
    auto-compositions.  */
 #define MAX_AUTO_COMPOSITION_LOOKBACK 3

=== modified file 'src/composite.h'
--- src/composite.h	2013-11-04 06:09:03 +0000
+++ src/composite.h	2013-11-12 22:28:24 +0000
@@ -190,7 +190,6 @@
 #define CHECK_BORDER	(CHECK_HEAD | CHECK_TAIL)
 #define CHECK_ALL	(CHECK_BORDER | CHECK_INSIDE)
 
-extern Lisp_Object Qcomposition;
 extern Lisp_Object composition_hash_table;
 extern ptrdiff_t get_composition_id (ptrdiff_t, ptrdiff_t, ptrdiff_t,
 				     Lisp_Object, Lisp_Object);

=== modified file 'src/data.c'
--- src/data.c	2013-11-05 07:11:24 +0000
+++ src/data.c	2013-11-12 22:28:24 +0000
@@ -37,59 +37,10 @@
 #include "font.h"
 #include "keymap.h"
 
-Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound;
-static Lisp_Object Qsubr;
-Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
-Lisp_Object Qerror, Quser_error, Qquit, Qargs_out_of_range;
-static Lisp_Object Qwrong_length_argument;
-static Lisp_Object Qwrong_type_argument;
-Lisp_Object Qvoid_variable, Qvoid_function;
-static Lisp_Object Qcyclic_function_indirection;
-static Lisp_Object Qcyclic_variable_indirection;
-Lisp_Object Qcircular_list;
-static Lisp_Object Qsetting_constant;
-Lisp_Object Qinvalid_read_syntax;
-Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
-Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive;
-Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
-Lisp_Object Qtext_read_only;
-
-Lisp_Object Qintegerp, Qwholenump, Qsymbolp, Qlistp, Qconsp;
-static Lisp_Object Qnatnump;
-Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
-Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
-Lisp_Object Qbool_vector_p;
-Lisp_Object Qbuffer_or_string_p;
-static Lisp_Object Qkeywordp, Qboundp;
-Lisp_Object Qfboundp;
-Lisp_Object Qchar_table_p, Qvector_or_char_table_p;
-
-Lisp_Object Qcdr;
-static Lisp_Object Qad_advice_info, Qad_activate_internal;
-
-static Lisp_Object Qdomain_error, Qsingularity_error, Qunderflow_error;
-Lisp_Object Qrange_error, Qoverflow_error;
-
-Lisp_Object Qfloatp;
-Lisp_Object Qnumberp, Qnumber_or_marker_p;
-
-Lisp_Object Qinteger, Qsymbol;
-static Lisp_Object Qcons, Qfloat, Qmisc, Qstring, Qvector;
-Lisp_Object Qwindow;
-static Lisp_Object Qoverlay, Qwindow_configuration;
-static Lisp_Object Qprocess, Qmarker;
-static Lisp_Object Qcompiled_function, Qframe;
-Lisp_Object Qbuffer;
-static Lisp_Object Qchar_table, Qbool_vector, Qhash_table;
-static Lisp_Object Qsubrp;
-static Lisp_Object Qmany, Qunevalled;
-Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
-static Lisp_Object Qdefun;
-
-Lisp_Object Qinteractive_form;
-static Lisp_Object Qdefalias_fset_function;
-
-static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *);
+Lisp_Object Qnil, Qt, Qunbound;
+
+static void swap_in_symval_forwarding (struct Lisp_Symbol *,
+				       struct Lisp_Buffer_Local_Value *);
 
 static bool
 BOOLFWDP (union Lisp_Fwd *a)

=== modified file 'src/dbusbind.c'
--- src/dbusbind.c	2013-07-10 23:23:57 +0000
+++ src/dbusbind.c	2013-11-12 22:28:24 +0000
@@ -41,37 +41,6 @@
 #endif
 
 
-/* Subroutines.  */
-static Lisp_Object Qdbus_init_bus;
-static Lisp_Object Qdbus_get_unique_name;
-static Lisp_Object Qdbus_message_internal;
-
-/* D-Bus error symbol.  */
-static Lisp_Object Qdbus_error;
-
-/* Lisp symbols of the system and session buses.  */
-static Lisp_Object QCdbus_system_bus, QCdbus_session_bus;
-
-/* Lisp symbol for method call timeout.  */
-static Lisp_Object QCdbus_timeout;
-
-/* Lisp symbols of D-Bus types.  */
-static Lisp_Object QCdbus_type_byte, QCdbus_type_boolean;
-static Lisp_Object QCdbus_type_int16, QCdbus_type_uint16;
-static Lisp_Object QCdbus_type_int32, QCdbus_type_uint32;
-static Lisp_Object QCdbus_type_int64, QCdbus_type_uint64;
-static Lisp_Object QCdbus_type_double, QCdbus_type_string;
-static Lisp_Object QCdbus_type_object_path, QCdbus_type_signature;
-#ifdef DBUS_TYPE_UNIX_FD
-static Lisp_Object QCdbus_type_unix_fd;
-#endif
-static Lisp_Object QCdbus_type_array, QCdbus_type_variant;
-static Lisp_Object QCdbus_type_struct, QCdbus_type_dict_entry;
-
-/* Lisp symbols of objects in `dbus-registered-objects-table'.  */
-static Lisp_Object QCdbus_registered_serial, QCdbus_registered_method;
-static Lisp_Object QCdbus_registered_signal;
-
 /* Alist of D-Bus buses we are polling for messages.
    The key is the symbol or string of the bus, and the value is the
    connection address.  */
@@ -1727,7 +1696,6 @@
 void
 syms_of_dbusbind (void)
 {
-
   DEFSYM (Qdbus_init_bus, "dbus-init-bus");
   defsubr (&Sdbus_init_bus);
 
@@ -1737,15 +1705,21 @@
   DEFSYM (Qdbus_message_internal, "dbus-message-internal");
   defsubr (&Sdbus_message_internal);
 
+  /* D-Bus error symbol.  */
   DEFSYM (Qdbus_error, "dbus-error");
   Fput (Qdbus_error, Qerror_conditions,
 	list2 (Qdbus_error, Qerror));
   Fput (Qdbus_error, Qerror_message,
 	build_pure_c_string ("D-Bus error"));
 
+  /* Lisp symbols of the system and session buses.  */
   DEFSYM (QCdbus_system_bus, ":system");
   DEFSYM (QCdbus_session_bus, ":session");
+
+  /* Lisp symbol for method call timeout.  */
   DEFSYM (QCdbus_timeout, ":timeout");
+
+  /* Lisp symbols of D-Bus types.  */
   DEFSYM (QCdbus_type_byte, ":byte");
   DEFSYM (QCdbus_type_boolean, ":boolean");
   DEFSYM (QCdbus_type_int16, ":int16");
@@ -1765,6 +1739,8 @@
   DEFSYM (QCdbus_type_variant, ":variant");
   DEFSYM (QCdbus_type_struct, ":struct");
   DEFSYM (QCdbus_type_dict_entry, ":dict-entry");
+
+  /* Lisp symbols of objects in `dbus-registered-objects-table'.  */
   DEFSYM (QCdbus_registered_serial, ":serial");
   DEFSYM (QCdbus_registered_method, ":method");
   DEFSYM (QCdbus_registered_signal, ":signal");

=== modified file 'src/decompress.c'
--- src/decompress.c	2013-08-26 05:32:47 +0000
+++ src/decompress.c	2013-11-12 22:28:24 +0000
@@ -28,8 +28,6 @@
 
 #include <verify.h>
 
-static Lisp_Object Qzlib_dll;
-
 #ifdef WINDOWSNT
 #include <windows.h>
 #include "w32.h"
@@ -224,7 +222,9 @@
 void
 syms_of_decompress (void)
 {
+#ifdef WINDOWSNT
   DEFSYM (Qzlib_dll, "zlib");
+#endif
   defsubr (&Szlib_decompress_region);
   defsubr (&Szlib_available_p);
 }

=== modified file 'src/dired.c'
--- src/dired.c	2013-09-21 11:48:19 +0000
+++ src/dired.c	2013-11-12 22:28:24 +0000
@@ -47,13 +47,6 @@
 #include "regex.h"
 #include "blockinput.h"
 
-static Lisp_Object Qdirectory_files;
-static Lisp_Object Qdirectory_files_and_attributes;
-static Lisp_Object Qfile_name_completion;
-static Lisp_Object Qfile_name_all_completions;
-static Lisp_Object Qfile_attributes;
-static Lisp_Object Qfile_attributes_lessp;
-
 static ptrdiff_t scmp (const char *, const char *, ptrdiff_t);
 static Lisp_Object file_attributes (int, char const *, Lisp_Object);
 
@@ -439,7 +432,6 @@
 }
 
 static int file_name_completion_stat (int, struct dirent *, struct stat *);
-static Lisp_Object Qdefault_directory;
 
 static Lisp_Object
 file_name_completion (Lisp_Object file, Lisp_Object dirname, bool all_flag,

=== modified file 'src/dispextern.h'
--- src/dispextern.h	2013-11-06 00:14:56 +0000
+++ src/dispextern.h	2013-11-12 22:28:24 +0000
@@ -3188,7 +3188,6 @@
 			      enum move_operation_enum op);
 int in_display_vector_p (struct it *);
 int frame_mode_line_height (struct frame *);
-extern Lisp_Object Qtool_bar;
 extern bool redisplaying_p;
 extern bool help_echo_showing_p;
 extern Lisp_Object help_echo_string, help_echo_window;
@@ -3370,7 +3369,6 @@
 int merge_faces (struct frame *, Lisp_Object, int, int);
 int compute_char_face (struct frame *, int, Lisp_Object);
 void free_all_realized_faces (Lisp_Object);
-extern Lisp_Object Qforeground_color, Qbackground_color;
 extern char unspecified_fg[], unspecified_bg[];
 
 /* Defined in xfns.c.  */
@@ -3468,7 +3466,6 @@
 void change_frame_size (struct frame *, int, int, bool, bool, bool);
 void init_display (void);
 void syms_of_display (void);
-extern Lisp_Object Qredisplay_dont_pause;
 extern void spec_glyph_lookup_face (struct window *, GLYPH *);
 extern void fill_up_frame_row_with_spaces (struct glyph_row *, int);

=== modified file 'src/dispnew.c'
--- src/dispnew.c	2013-11-06 04:11:04 +0000
+++ src/dispnew.c	2013-11-12 22:28:24 +0000
@@ -102,8 +102,6 @@
 
 bool display_completed;
 
-Lisp_Object Qdisplay_table, Qredisplay_dont_pause;
-
 /* True means SIGWINCH happened when not safe.  */
 
 static bool delayed_size_change;
@@ -6185,7 +6183,9 @@
   frame_and_buffer_state = Fmake_vector (make_number (20), Qlambda);
   staticpro (&frame_and_buffer_state);
 
+  /* This is the "purpose" slot of a display table.  */
   DEFSYM (Qdisplay_table, "display-table");
+
   DEFSYM (Qredisplay_dont_pause, "redisplay-dont-pause");
 
   DEFVAR_INT ("baud-rate", baud_rate,

=== modified file 'src/disptab.h'
--- src/disptab.h	2013-11-04 06:09:03 +0000
+++ src/disptab.h	2013-11-12 22:28:24 +0000
@@ -48,9 +48,6 @@
 /* Defined in indent.c.  */
 extern struct Lisp_Char_Table *buffer_display_table (void);
 
-/* This is the `purpose' slot of a display table.  */
-extern Lisp_Object Qdisplay_table;
-
 /* Return the current length of the GLYPH table,
    or 0 if the table isn't currently valid.  */
 #define GLYPH_TABLE_LENGTH  \

=== modified file 'src/doc.c'
--- src/doc.c	2013-08-11 01:30:20 +0000
+++ src/doc.c	2013-11-12 22:28:24 +0000
@@ -35,8 +35,6 @@
 #include "keyboard.h"
 #include "keymap.h"
 
-Lisp_Object Qfunction_documentation;
-
 /* Buffer used for reading from documentation file.  */
 static char *get_doc_string_buffer;
 static ptrdiff_t get_doc_string_buffer_size;
@@ -600,7 +598,9 @@
     {
       static char const *const buildobj[] =
 	{
+	  #ifndef GENERATE_GLOBALS
 	  #include "buildobj.h"
+	  #endif
 	};
       int i = sizeof buildobj / sizeof *buildobj;
       while (0 <= --i)

=== modified file 'src/editfns.c'
--- src/editfns.c	2013-11-06 10:14:50 +0000
+++ src/editfns.c	2013-11-12 22:28:24 +0000
@@ -69,16 +69,6 @@
 static int tm_diff (struct tm *, struct tm *);
 static void update_buffer_properties (ptrdiff_t, ptrdiff_t);
 
-static Lisp_Object Qbuffer_access_fontify_functions;
-
-/* Symbol for the text property used to mark fields.  */
-
-Lisp_Object Qfield;
-
-/* A special value for Qfield properties.  */
-
-static Lisp_Object Qboundary;
-
 /* The startup value of the TZ environment variable so it can be
    restored if the user calls set-time-zone-rule with a nil
    argument.  If null, the TZ environment variable was unset.  */
@@ -4843,8 +4833,12 @@
   defsubr (&Sregion_beginning);
   defsubr (&Sregion_end);
 
+  /* Symbol for the text property used to mark fields.  */
   DEFSYM (Qfield, "field");
+
+  /* A special value for Qfield properties.  */
   DEFSYM (Qboundary, "boundary");
+
   defsubr (&Sfield_beginning);
   defsubr (&Sfield_end);
   defsubr (&Sfield_string);

=== modified file 'src/emacs.c'
--- src/emacs.c	2013-11-04 17:30:33 +0000
+++ src/emacs.c	2013-11-12 22:28:24 +0000
@@ -139,13 +139,6 @@
 extern void malloc_enable_thread (void);
 #endif
 
-Lisp_Object Qfile_name_handler_alist;
-
-Lisp_Object Qrisky_local_variable;
-
-Lisp_Object Qkill_emacs;
-static Lisp_Object Qkill_emacs_hook;
-
 /* If true, Emacs should not attempt to use a window-specific code,
    but instead should use the virtual terminal under which it was started.  */
 bool inhibit_window_system;

=== modified file 'src/eval.c'
--- src/eval.c	2013-11-05 16:29:58 +0000
+++ src/eval.c	2013-11-12 22:28:24 +0000
@@ -41,22 +41,6 @@
 int gcpro_level;
 #endif
 
-Lisp_Object Qautoload, Qmacro, Qexit, Qinteractive, Qcommandp;
-Lisp_Object Qinhibit_quit;
-Lisp_Object Qand_rest;
-static Lisp_Object Qand_optional;
-static Lisp_Object Qinhibit_debugger;
-static Lisp_Object Qdeclare;
-Lisp_Object Qinternal_interpreter_environment, Qclosure;
-
-static Lisp_Object Qdebug;
-
-/* This holds either the symbol `run-hooks' or nil.
-   It is nil at an early stage of startup, and when Emacs
-   is shutting down.  */
-
-Lisp_Object Vrun_hooks;
-
 /* Non-nil means record all fset's and provide's, to be undone
    if the file being autoloaded is not fully loaded.
    They are recorded by being consed onto the front of Vautoload_queue:
@@ -3774,6 +3758,9 @@
      (Just imagine if someone makes it buffer-local).  */
   Funintern (Qinternal_interpreter_environment, Qnil);
 
+  /* This holds either the symbol `run-hooks' or nil.
+     It is nil at an early stage of startup, and when Emacs
+     is shutting down.  */
   DEFSYM (Vrun_hooks, "run-hooks");
 
   staticpro (&Vautoload_queue);

=== modified file 'src/fileio.c'
--- src/fileio.c	2013-11-09 11:12:33 +0000
+++ src/fileio.c	2013-11-12 22:28:24 +0000
@@ -110,52 +110,12 @@
 static bool valid_timestamp_file_system;
 static dev_t timestamp_file_system;
 
-/* The symbol bound to coding-system-for-read when
-   insert-file-contents is called for recovering a file.  This is not
-   an actual coding system name, but just an indicator to tell
-   insert-file-contents to use `emacs-mule' with a special flag for
-   auto saving and recovering a file.  */
-static Lisp_Object Qauto_save_coding;
-
-/* Property name of a file name handler,
-   which gives a list of operations it handles..  */
-static Lisp_Object Qoperations;
-
-/* Lisp functions for translating file formats.  */
-static Lisp_Object Qformat_decode, Qformat_annotate_function;
-
-/* Lisp function for setting buffer-file-coding-system and the
-   multibyteness of the current buffer after inserting a file.  */
-static Lisp_Object Qafter_insert_file_set_coding;
-
-static Lisp_Object Qwrite_region_annotate_functions;
 /* Each time an annotation function changes the buffer, the new buffer
    is added here.  */
 static Lisp_Object Vwrite_region_annotation_buffers;
 
 static Lisp_Object Qdelete_by_moving_to_trash;
 
-/* Lisp function for moving files to trash.  */
-static Lisp_Object Qmove_file_to_trash;
-
-/* Lisp function for recursively copying directories.  */
-static Lisp_Object Qcopy_directory;
-
-/* Lisp function for recursively deleting directories.  */
-static Lisp_Object Qdelete_directory;
-
-static Lisp_Object Qsubstitute_env_in_file_name;
-
-#ifdef WINDOWSNT
-#endif
-
-Lisp_Object Qfile_error, Qfile_notify_error;
-static Lisp_Object Qfile_already_exists, Qfile_date_error;
-static Lisp_Object Qexcl;
-Lisp_Object Qfile_name_history;
-
-static Lisp_Object Qcar_less_than_car;
-
 static bool a_write (int, Lisp_Object, ptrdiff_t, ptrdiff_t,
 		     Lisp_Object *, struct coding_system *);
 static bool e_write (int, Lisp_Object, ptrdiff_t, ptrdiff_t,
@@ -290,44 +250,6 @@
 }
 
 
-static Lisp_Object Qexpand_file_name;
-static Lisp_Object Qsubstitute_in_file_name;
-static Lisp_Object Qdirectory_file_name;
-static Lisp_Object Qfile_name_directory;
-static Lisp_Object Qfile_name_nondirectory;
-static Lisp_Object Qunhandled_file_name_directory;
-static Lisp_Object Qfile_name_as_directory;
-static Lisp_Object Qcopy_file;
-static Lisp_Object Qmake_directory_internal;
-static Lisp_Object Qmake_directory;
-static Lisp_Object Qdelete_directory_internal;
-Lisp_Object Qdelete_file;
-static Lisp_Object Qrename_file;
-static Lisp_Object Qadd_name_to_file;
-static Lisp_Object Qmake_symbolic_link;
-Lisp_Object Qfile_exists_p;
-static Lisp_Object Qfile_executable_p;
-static Lisp_Object Qfile_readable_p;
-static Lisp_Object Qfile_writable_p;
-static Lisp_Object Qfile_symlink_p;
-static Lisp_Object Qaccess_file;
-Lisp_Object Qfile_directory_p;
-static Lisp_Object Qfile_regular_p;
-static Lisp_Object Qfile_accessible_directory_p;
-static Lisp_Object Qfile_modes;
-static Lisp_Object Qset_file_modes;
-static Lisp_Object Qset_file_times;
-static Lisp_Object Qfile_selinux_context;
-static Lisp_Object Qset_file_selinux_context;
-static Lisp_Object Qfile_acl;
-static Lisp_Object Qset_file_acl;
-static Lisp_Object Qfile_newer_than_file_p;
-Lisp_Object Qinsert_file_contents;
-static Lisp_Object Qchoose_write_coding_system;
-Lisp_Object Qwrite_region;
-static Lisp_Object Qverify_visited_file_modtime;
-static Lisp_Object Qset_visited_file_modtime;
-
 DEFUN ("find-file-name-handler", Ffind_file_name_handler,
        Sfind_file_name_handler, 2, 2, 0,
        doc: /* Return FILENAME's handler function for OPERATION, if it has one.
@@ -5778,7 +5700,10 @@
 void
 syms_of_fileio (void)
 {
+  /* Property name of a file name handler,
+     which gives a list of operations it handles..  */
   DEFSYM (Qoperations, "operations");
+
   DEFSYM (Qexpand_file_name, "expand-file-name");
   DEFSYM (Qsubstitute_in_file_name, "substitute-in-file-name");
   DEFSYM (Qdirectory_file_name, "directory-file-name");
@@ -5816,6 +5741,12 @@
   DEFSYM (Qwrite_region, "write-region");
   DEFSYM (Qverify_visited_file_modtime, "verify-visited-file-modtime");
   DEFSYM (Qset_visited_file_modtime, "set-visited-file-modtime");
+
+  /* The symbol bound to coding-system-for-read when
+     insert-file-contents is called for recovering a file.  This is not
+     an actual coding system name, but just an indicator to tell
+     insert-file-contents to use `emacs-mule' with a special flag for
+     auto saving and recovering a file.  */
   DEFSYM (Qauto_save_coding, "auto-save-coding");
 
   DEFSYM (Qfile_name_history, "file-name-history");
@@ -5843,9 +5774,14 @@
 of file names regardless of the current language environment.  */);
   Vdefault_file_name_coding_system = Qnil;
 
+  /* Lisp functions for translating file formats.  */
   DEFSYM (Qformat_decode, "format-decode");
   DEFSYM (Qformat_annotate_function, "format-annotate-function");
+
+  /* Lisp function for setting buffer-file-coding-system and the
+     multibyteness of the current buffer after inserting a file.  */
   DEFSYM (Qafter_insert_file_set_coding, "after-insert-file-set-coding");
+
   DEFSYM (Qcar_less_than_car, "car-less-than-car");
 
   Fput (Qfile_error, Qerror_conditions,
@@ -6017,9 +5953,15 @@
   delete_by_moving_to_trash = 0;
   Qdelete_by_moving_to_trash = intern_c_string ("delete-by-moving-to-trash");
 
+  /* Lisp function for moving files to trash.  */
   DEFSYM (Qmove_file_to_trash, "move-file-to-trash");
+
+  /* Lisp function for recursively copying directories.  */
   DEFSYM (Qcopy_directory, "copy-directory");
+
+  /* Lisp function for recursively deleting directories.  */
   DEFSYM (Qdelete_directory, "delete-directory");
+
   DEFSYM (Qsubstitute_env_in_file_name, "substitute-env-in-file-name");
 
   defsubr (&Sfind_file_name_handler);

=== modified file 'src/fns.c'
--- src/fns.c	2013-11-05 07:11:24 +0000
+++ src/fns.c	2013-11-12 22:28:24 +0000
@@ -41,15 +41,6 @@
 #endif
 #endif /* HAVE_MENUS */
 
-Lisp_Object Qstring_lessp;
-static Lisp_Object Qprovide, Qrequire;
-static Lisp_Object Qyes_or_no_p_history;
-Lisp_Object Qcursor_in_echo_area;
-static Lisp_Object Qwidget_type;
-static Lisp_Object Qcodeset, Qdays, Qmonths, Qpaper;
-
-static Lisp_Object Qmd5, Qsha1, Qsha224, Qsha256, Qsha384, Qsha512;
-
 static bool internal_equal (Lisp_Object, Lisp_Object, int, bool);
 
 DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0,
@@ -2501,8 +2492,6 @@
   return ret;
 }
 
-static Lisp_Object Qsubfeatures;
-
 DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0,
        doc: /* Return t if FEATURE is present in this Emacs.
 
@@ -2521,8 +2510,6 @@
   return (NILP (tem)) ? Qnil : Qt;
 }
 
-static Lisp_Object Qfuncall;
-
 DEFUN ("provide", Fprovide, Sprovide, 1, 2, 0,
        doc: /* Announce that FEATURE is a feature of the current Emacs.
 The optional argument SUBFEATURES should be a list of symbols listing
@@ -3311,14 +3298,6 @@
 
 static struct Lisp_Hash_Table *weak_hash_tables;
 
-/* Various symbols.  */
-
-static Lisp_Object Qhash_table_p;
-static Lisp_Object Qkey, Qvalue, Qeql;
-Lisp_Object Qeq, Qequal;
-Lisp_Object QCtest, QCsize, QCrehash_size, QCrehash_threshold, QCweakness;
-static Lisp_Object Qhash_table_test, Qkey_or_value, Qkey_and_value;
-
 
 /***********************************************************************
 			       Utilities

=== modified file 'src/font.c'
--- src/font.c	2013-10-29 16:11:50 +0000
+++ src/font.c	2013-11-12 22:28:24 +0000
@@ -41,16 +41,8 @@
 #include TERM_HEADER
 #endif /* HAVE_WINDOW_SYSTEM */
 
-Lisp_Object Qopentype;
-
-/* Important character set strings.  */
-Lisp_Object Qascii_0, Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip;
-
 #define DEFAULT_ENCODING Qiso8859_1
 
-/* Unicode category `Cf'.  */
-static Lisp_Object QCf;
-
 /* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
 static Lisp_Object font_style_table;
 
@@ -110,21 +102,6 @@
   { 200, { "ultra-expanded", "ultraexpanded", "wide" }}
 };
 
-Lisp_Object QCfoundry;
-static Lisp_Object QCadstyle, QCregistry;
-/* Symbols representing keys of font extra info.  */
-Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClang, QCscript, QCavgwidth;
-Lisp_Object QCantialias, QCfont_entity;
-static Lisp_Object QCfc_unknown_spec;
-/* Symbols representing values of font spacing property.  */
-static Lisp_Object Qc, Qm, Qd;
-Lisp_Object Qp;
-/* Special ADSTYLE properties to avoid fonts used for Latin
-   characters; used in xfont.c and ftfont.c.  */
-Lisp_Object Qja, Qko;
-
-static Lisp_Object QCuser_spec;
-
 /* Alist of font registry symbols and the corresponding charset
    information.  The information is retrieved from
    Vfont_encoding_alist on demand.
@@ -5034,19 +5011,21 @@
 
   DEFSYM (Qopentype, "opentype");
 
+  /* Important character set symbols.  */
   DEFSYM (Qascii_0, "ascii-0");
   DEFSYM (Qiso8859_1, "iso8859-1");
   DEFSYM (Qiso10646_1, "iso10646-1");
   DEFSYM (Qunicode_bmp, "unicode-bmp");
   DEFSYM (Qunicode_sip, "unicode-sip");
 
+  /* Unicode category `Cf'.  */
   DEFSYM (QCf, "Cf");
 
+  /* Symbols representing keys of font extra info.  */
   DEFSYM (QCotf, ":otf");
   DEFSYM (QClang, ":lang");
   DEFSYM (QCscript, ":script");
   DEFSYM (QCantialias, ":antialias");
-
   DEFSYM (QCfoundry, ":foundry");
   DEFSYM (QCadstyle, ":adstyle");
   DEFSYM (QCregistry, ":registry");
@@ -5057,11 +5036,14 @@
   DEFSYM (QCfont_entity, ":font-entity");
   DEFSYM (QCfc_unknown_spec, ":fc-unknown-spec");
 
+  /* Symbols representing values of font spacing property.  */
   DEFSYM (Qc, "c");
   DEFSYM (Qm, "m");
   DEFSYM (Qp, "p");
   DEFSYM (Qd, "d");
 
+  /* Special ADSTYLE properties to avoid fonts used for Latin
+     characters; used in xfont.c and ftfont.c.  */
   DEFSYM (Qja, "ja");
   DEFSYM (Qko, "ko");

=== modified file 'src/font.h'
--- src/font.h	2013-10-25 07:28:16 +0000
+++ src/font.h	2013-11-12 22:28:24 +0000
@@ -54,7 +54,6 @@
 	Note: Only the method `open' of a font-driver can create this
 	object, and it should never be modified by Lisp.  */
 
-extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
 
 /* An enumerator for each font property.  This is used as an index to
    the vector of FONT-SPEC and FONT-ENTITY.
@@ -234,17 +233,6 @@
 #define FONT_SET_STYLE(font, prop, val)	\
   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, QCantialias, QCfont_entity;
-extern Lisp_Object Qp;
-
-
-/* Important character set symbols.  */
-extern Lisp_Object Qascii_0;
-extern Lisp_Object Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip;
-
-/* Special ADSTYLE properties to avoid fonts used for Latin characters.  */
-extern Lisp_Object Qja, Qko;
 
 /* Structure for a font-spec.  */
 
@@ -806,7 +794,6 @@
 extern void syms_of_xfont (void);
 extern void syms_of_ftxfont (void);
 #ifdef HAVE_XFT
-extern Lisp_Object Qxft;
 extern struct font_driver xftfont_driver;
 extern void syms_of_xftfont (void);
 #elif defined HAVE_FREETYPE
@@ -822,7 +809,6 @@
 extern void syms_of_w32font (void);
 #endif	/* HAVE_NTGUI */
 #ifdef HAVE_NS
-extern Lisp_Object Qfontsize;
 extern struct font_driver nsfont_driver;
 extern void syms_of_nsfont (void);
 extern void syms_of_macfont (void);
@@ -832,8 +818,6 @@
 #define FONT_DEBUG
 #endif
 
-extern Lisp_Object QCfoundry;
-
 extern void font_add_log (const char *, Lisp_Object, Lisp_Object);
 extern void font_deferred_log (const char *, Lisp_Object, Lisp_Object);

=== modified file 'src/fontset.c'
--- src/fontset.c	2013-11-04 06:09:03 +0000
+++ src/fontset.c	2013-11-12 22:28:24 +0000
@@ -156,11 +156,6 @@
 
 /********** VARIABLES and FUNCTION PROTOTYPES **********/
 
-static Lisp_Object Qfontset;
-static Lisp_Object Qfontset_info;
-static Lisp_Object Qprepend, Qappend;
-Lisp_Object Qlatin;
-
 /* Vector containing all fontsets.  */
 static Lisp_Object Vfontset_table;

=== modified file 'src/fontset.h'
--- src/fontset.h	2013-08-30 12:17:44 +0000
+++ src/fontset.h	2013-11-12 22:28:24 +0000
@@ -36,7 +36,6 @@
 extern int fs_query_fontset (Lisp_Object, int);
 extern Lisp_Object list_fontsets (struct frame *, Lisp_Object, int);
 
-extern Lisp_Object Qlatin;
 extern Lisp_Object fontset_name (int);
 extern Lisp_Object fontset_ascii (int);

=== modified file 'src/frame.c'
--- src/frame.c	2013-11-06 18:41:31 +0000
+++ src/frame.c	2013-11-12 22:28:24 +0000
@@ -51,68 +51,6 @@
 #include "dosfns.h"
 #endif
 
-#ifdef HAVE_NS
-Lisp_Object Qns_parse_geometry;
-#endif
-
-Lisp_Object Qframep, Qframe_live_p;
-Lisp_Object Qicon, Qmodeline;
-Lisp_Object Qonly, Qnone;
-Lisp_Object Qx, Qw32, Qpc, Qns;
-Lisp_Object Qvisible;
-Lisp_Object Qdisplay_type;
-static Lisp_Object Qbackground_mode;
-Lisp_Object Qnoelisp;
-
-static Lisp_Object Qx_frame_parameter;
-Lisp_Object Qx_resource_name;
-Lisp_Object Qterminal;
-
-/* Frame parameters (set or reported).  */
-
-Lisp_Object Qauto_raise, Qauto_lower;
-Lisp_Object Qborder_color, Qborder_width;
-Lisp_Object Qcursor_color, Qcursor_type;
-Lisp_Object Qheight, Qwidth;
-Lisp_Object Qleft, Qright;
-Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name;
-Lisp_Object Qtooltip;
-Lisp_Object Qinternal_border_width;
-Lisp_Object Qmouse_color;
-Lisp_Object Qminibuffer;
-Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars;
-Lisp_Object Qvisibility;
-Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
-Lisp_Object Qscreen_gamma;
-Lisp_Object Qline_spacing;
-static Lisp_Object Quser_position, Quser_size;
-Lisp_Object Qwait_for_wm;
-static Lisp_Object Qwindow_id;
-#ifdef HAVE_X_WINDOWS
-static Lisp_Object Qouter_window_id;
-#endif
-Lisp_Object Qparent_id;
-Lisp_Object Qtitle, Qname;
-static Lisp_Object Qexplicit_name;
-Lisp_Object Qunsplittable;
-Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
-Lisp_Object Qleft_fringe, Qright_fringe;
-Lisp_Object Qbuffer_predicate;
-static Lisp_Object Qbuffer_list, Qburied_buffer_list;
-Lisp_Object Qtty_color_mode;
-Lisp_Object Qtty, Qtty_type;
-
-Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth, Qmaximized;
-Lisp_Object Qsticky;
-Lisp_Object Qfont_backend;
-Lisp_Object Qalpha;
-
-Lisp_Object Qface_set_after_frame_default;
-
-static Lisp_Object Qdelete_frame_functions;
-
-static Lisp_Object Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource;
-
 /* The currently selected frame.  */
 
 Lisp_Object selected_frame;
@@ -2560,6 +2498,18 @@
 				Frame Parameters
  ***********************************************************************/
 
+/* Frame parameters (set or reported).  */
+
+Lisp_Object Qauto_raise, Qauto_lower, Qborder_color, Qborder_width;
+Lisp_Object Qcursor_color, Qcursor_type, Qicon_name, Qicon_type;
+Lisp_Object Qinternal_border_width, Qmenu_bar_lines, Qmouse_color;
+Lisp_Object Qname, Qscroll_bar_width, Qtitle, Qunsplittable;
+Lisp_Object Qvertical_scroll_bars, Qvisibility, Qtool_bar_lines;
+Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
+Lisp_Object Qscreen_gamma, Qline_spacing, Qleft_fringe, Qright_fringe;
+Lisp_Object Qwait_for_wm, Qfullscreen, Qfont_backend, Qalpha, Qsticky;
+Lisp_Object Qtool_bar_position;
+
 /* Connect the frame-parameter names for X frames
    to the ways of passing the parameter values to the window system.

=== modified file 'src/frame.h'
--- src/frame.h	2013-10-08 17:49:20 +0000
+++ src/frame.h	2013-11-12 22:28:24 +0000
@@ -924,11 +924,6 @@
   (f)->iconified = (eassert (0 <= (i) && (i) <= 1), (i))
 
 extern Lisp_Object selected_frame;
-extern Lisp_Object Qframep, Qframe_live_p;
-extern Lisp_Object Qtty, Qtty_type;
-extern Lisp_Object Qtty_color_mode;
-extern Lisp_Object Qterminal;
-extern Lisp_Object Qnoelisp;
 
 /* Nonzero means there is at least one garbaged frame.  */
 extern bool frame_garbaged;
@@ -1140,44 +1135,15 @@
 				Frame Parameters
  ***********************************************************************/
 
-extern Lisp_Object Qauto_raise, Qauto_lower;
-extern Lisp_Object Qborder_color, Qborder_width;
-extern Lisp_Object Qbuffer_predicate;
-extern Lisp_Object Qcursor_color, Qcursor_type;
-extern Lisp_Object Qfont;
-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, Qtool_bar_position;
-extern Lisp_Object Qmouse_color;
-extern Lisp_Object Qname, Qtitle;
-extern Lisp_Object Qparent_id;
-extern Lisp_Object Qunsplittable, Qvisibility;
-extern Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars;
+extern Lisp_Object Qauto_raise, Qauto_lower, Qborder_color, Qborder_width;
+extern Lisp_Object Qcursor_color, Qcursor_type, Qicon_name, Qicon_type;
+extern Lisp_Object Qinternal_border_width, Qmenu_bar_lines, Qmouse_color;
+extern Lisp_Object Qname, Qscroll_bar_width, Qtitle, Qunsplittable;
+extern Lisp_Object Qvertical_scroll_bars, Qvisibility, Qtool_bar_lines;
 extern Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
-extern Lisp_Object Qscreen_gamma;
-extern Lisp_Object Qline_spacing;
-extern Lisp_Object Qwait_for_wm;
-extern Lisp_Object Qfullscreen;
-extern Lisp_Object Qfullwidth, Qfullheight, Qfullboth, Qmaximized;
-extern Lisp_Object Qsticky;
-extern Lisp_Object Qfont_backend;
-extern Lisp_Object Qalpha;
-
-extern Lisp_Object Qleft_fringe, Qright_fringe;
-extern Lisp_Object Qheight, Qwidth;
-extern Lisp_Object Qminibuffer, Qmodeline;
-extern Lisp_Object Qx, Qw32, Qpc, Qns;
-extern Lisp_Object Qvisible;
-extern Lisp_Object Qdisplay_type;
-
-extern Lisp_Object Qx_resource_name;
-
-extern Lisp_Object Qleft, Qright, Qtop, Qbox, Qbottom;
-extern Lisp_Object Qdisplay;
-
-extern Lisp_Object Qrun_hook_with_args;
+extern Lisp_Object Qscreen_gamma, Qline_spacing, Qleft_fringe, Qright_fringe;
+extern Lisp_Object Qwait_for_wm, Qfullscreen, Qfont_backend, Qalpha, Qsticky;
+extern Lisp_Object Qtool_bar_position;
 
 #ifdef HAVE_WINDOW_SYSTEM
 
@@ -1192,9 +1158,6 @@
 
 extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int);
 
-
-extern Lisp_Object Qface_set_after_frame_default;
-
 #ifdef HAVE_NTGUI
 extern void x_fullscreen_adjust (struct frame *f, int *, int *,
                                  int *, int *);

=== modified file 'src/fringe.c'
--- src/fringe.c	2013-10-26 03:13:18 +0000
+++ src/fringe.c	2013-11-12 22:28:24 +0000
@@ -65,10 +65,6 @@
    must specify physical bitmap symbols.
 */
 
-static Lisp_Object Qtruncation, Qcontinuation, Qoverlay_arrow;
-static Lisp_Object Qempty_line, Qtop_bottom;
-static Lisp_Object Qhollow_small;
-
 enum fringe_bitmap_align
 {
   ALIGN_BITMAP_CENTER = 0,

=== modified file 'src/ftfont.c'
--- src/ftfont.c	2013-10-25 06:55:36 +0000
+++ src/ftfont.c	2013-11-12 22:28:24 +0000
@@ -36,12 +36,6 @@
 #include "font.h"
 #include "ftfont.h"
 
-/* Symbolic type of this font-driver.  */
-static Lisp_Object Qfreetype;
-
-/* Fontconfig's generic families and their aliases.  */
-static Lisp_Object Qmonospace, Qsans_serif, Qserif, Qmono, Qsans, Qsans__serif;
-
 /* Flag to tell if FcInit is already called or not.  */
 static bool fc_initialized;
 
@@ -2693,7 +2687,10 @@
 void
 syms_of_ftfont (void)
 {
+  /* Symbolic type of this font-driver.  */
   DEFSYM (Qfreetype, "freetype");
+
+  /* Fontconfig's generic families and their aliases.  */
   DEFSYM (Qmonospace, "monospace");
   DEFSYM (Qsans_serif, "sans-serif");
   DEFSYM (Qserif, "serif");

=== modified file 'src/ftxfont.c'
--- src/ftxfont.c	2013-10-29 16:08:08 +0000
+++ src/ftxfont.c	2013-11-12 22:28:24 +0000
@@ -35,8 +35,6 @@
 
 /* FTX font driver.  */
 
-static Lisp_Object Qftx;
-
 #if defined HAVE_XFT || !defined HAVE_FREETYPE
 static
 #endif

=== modified file 'src/gfilenotify.c'
--- src/gfilenotify.c	2013-09-07 00:20:56 +0000
+++ src/gfilenotify.c	2013-11-12 22:28:24 +0000
@@ -29,24 +29,6 @@
 #include "process.h"
 
 
-/* Subroutines.  */
-static Lisp_Object Qgfile_add_watch;
-static Lisp_Object Qgfile_rm_watch;
-
-/* Filter objects.  */
-static Lisp_Object Qwatch_mounts;      /* G_FILE_MONITOR_WATCH_MOUNTS  */
-static Lisp_Object Qsend_moved;        /* G_FILE_MONITOR_SEND_MOVED  */
-
-/* Event types.  */
-static Lisp_Object Qchanged;           /* G_FILE_MONITOR_EVENT_CHANGED  */
-static Lisp_Object Qchanges_done_hint; /* G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT  */
-static Lisp_Object Qdeleted;           /* G_FILE_MONITOR_EVENT_DELETED  */
-static Lisp_Object Qcreated;           /* G_FILE_MONITOR_EVENT_CREATED  */
-static Lisp_Object Qattribute_changed; /* G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED  */
-static Lisp_Object Qpre_unmount;       /* G_FILE_MONITOR_EVENT_PRE_UNMOUNT  */
-static Lisp_Object Qunmounted;         /* G_FILE_MONITOR_EVENT_UNMOUNTED  */
-static Lisp_Object Qmoved;             /* G_FILE_MONITOR_EVENT_MOVED  */
-
 static Lisp_Object watch_list;
 
 /* This is the callback function for arriving signals from
@@ -258,23 +240,27 @@
 void
 syms_of_gfilenotify (void)
 {
-
   DEFSYM (Qgfile_add_watch, "gfile-add-watch");
   defsubr (&Sgfile_add_watch);
 
   DEFSYM (Qgfile_rm_watch, "gfile-rm-watch");
   defsubr (&Sgfile_rm_watch);
 
-  DEFSYM (Qwatch_mounts, "watch-mounts");
-  DEFSYM (Qsend_moved, "send-moved");
-  DEFSYM (Qchanged, "changed");
+  /* Filter objects.  */
+  DEFSYM (Qwatch_mounts, "watch-mounts"); /* G_FILE_MONITOR_WATCH_MOUNTS  */
+  DEFSYM (Qsend_moved, "send-moved");	/* G_FILE_MONITOR_SEND_MOVED  */
+
+  /* Event types.  */
+  DEFSYM (Qchanged, "changed");	/* G_FILE_MONITOR_EVENT_CHANGED  */
   DEFSYM (Qchanges_done_hint, "changes-done-hint");
-  DEFSYM (Qdeleted, "deleted");
-  DEFSYM (Qcreated, "created");
+				/* G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT  */
+  DEFSYM (Qdeleted, "deleted");	/* G_FILE_MONITOR_EVENT_DELETED  */
+  DEFSYM (Qcreated, "created");	/* G_FILE_MONITOR_EVENT_CREATED  */
   DEFSYM (Qattribute_changed, "attribute-changed");
-  DEFSYM (Qpre_unmount, "pre-unmount");
-  DEFSYM (Qunmounted, "unmounted");
-  DEFSYM (Qmoved, "moved");
+				/* G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED  */
+  DEFSYM (Qpre_unmount, "pre-unmount");	/* G_FILE_MONITOR_EVENT_PRE_UNMOUNT  */
+  DEFSYM (Qunmounted, "unmounted");	/* G_FILE_MONITOR_EVENT_UNMOUNTED  */
+  DEFSYM (Qmoved, "moved");	/* G_FILE_MONITOR_EVENT_MOVED  */
 
   staticpro (&watch_list);

=== modified file 'src/gnutls.c'
--- src/gnutls.c	2013-11-05 05:32:19 +0000
+++ src/gnutls.c	2013-11-12 22:28:24 +0000
@@ -32,28 +32,8 @@
 
 static bool emacs_gnutls_handle_error (gnutls_session_t, int);
 
-static Lisp_Object Qgnutls_dll;
-static Lisp_Object Qgnutls_code;
-static Lisp_Object Qgnutls_anon, Qgnutls_x509pki;
-static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again,
-  Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake;
 static bool gnutls_global_initialized;
 
-/* The following are for the property list of `gnutls-boot'.  */
-static Lisp_Object QCgnutls_bootprop_priority;
-static Lisp_Object QCgnutls_bootprop_trustfiles;
-static Lisp_Object QCgnutls_bootprop_keylist;
-static Lisp_Object QCgnutls_bootprop_crlfiles;
-static Lisp_Object QCgnutls_bootprop_callbacks;
-static Lisp_Object QCgnutls_bootprop_loglevel;
-static Lisp_Object QCgnutls_bootprop_hostname;
-static Lisp_Object QCgnutls_bootprop_min_prime_bits;
-static Lisp_Object QCgnutls_bootprop_verify_flags;
-static Lisp_Object QCgnutls_bootprop_verify_hostname_error;
-
-/* Callback keys for `gnutls-boot'.  Unused currently.  */
-static Lisp_Object QCgnutls_bootprop_callbacks_verify;
-
 static void gnutls_log_function (int, const char *);
 static void gnutls_audit_log_function (gnutls_session_t, const char *);
 static void gnutls_log_function2 (int, const char*, const char*);
@@ -1147,18 +1127,24 @@
   DEFSYM (Qgnutls_code, "gnutls-code");
   DEFSYM (Qgnutls_anon, "gnutls-anon");
   DEFSYM (Qgnutls_x509pki, "gnutls-x509pki");
+
+  /* The following are for the property list of 'gnutls-boot'.  */
   DEFSYM (QCgnutls_bootprop_hostname, ":hostname");
   DEFSYM (QCgnutls_bootprop_priority, ":priority");
   DEFSYM (QCgnutls_bootprop_trustfiles, ":trustfiles");
   DEFSYM (QCgnutls_bootprop_keylist, ":keylist");
   DEFSYM (QCgnutls_bootprop_crlfiles, ":crlfiles");
   DEFSYM (QCgnutls_bootprop_callbacks, ":callbacks");
-  DEFSYM (QCgnutls_bootprop_callbacks_verify, "verify");
   DEFSYM (QCgnutls_bootprop_min_prime_bits, ":min-prime-bits");
   DEFSYM (QCgnutls_bootprop_loglevel, ":loglevel");
   DEFSYM (QCgnutls_bootprop_verify_flags, ":verify-flags");
   DEFSYM (QCgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
 
+#if 0
+  /* Callback keys for 'gnutls-boot'.  Unused currently.  */
+  DEFSYM (QCgnutls_bootprop_callbacks_verify, ":callbacks-verify");
+#endif
+
   DEFSYM (Qgnutls_e_interrupted, "gnutls-e-interrupted");
   Fput (Qgnutls_e_interrupted, Qgnutls_code,
 	make_number (GNUTLS_E_INTERRUPTED));

=== modified file 'src/image.c'
--- src/image.c	2013-11-06 04:11:04 +0000
+++ src/image.c	2013-11-12 22:28:24 +0000
@@ -87,12 +87,6 @@
 #define x_defined_color w32_defined_color
 #define DefaultDepthOfScreen(screen) (one_w32_display_info.n_cbits)
 
-/* Versions of libpng, libgif, and libjpeg that we were compiled with,
-   or -1 if no PNG/GIF support was compiled in.  This is tested by
-   w32-win.el to correctly set up the alist used to search for the
-   respective image libraries.  */
-Lisp_Object Qlibpng_version, Qlibgif_version, Qlibjpeg_version;
-
 #endif /* HAVE_NTGUI */
 
 #ifdef HAVE_NS
@@ -111,11 +105,6 @@
 #define DefaultDepthOfScreen(screen) x_display_list->n_planes
 #endif /* HAVE_NS */
 
-
-/* The symbol `postscript' identifying images of this type.  */
-
-static Lisp_Object Qpostscript;
-
 static void x_disable_image (struct frame *, struct image *);
 static void x_edge_detection (struct frame *, struct image *, Lisp_Object,
                               Lisp_Object);
@@ -127,8 +116,6 @@
 static unsigned long *colors_in_color_table (int *n);
 #endif
 
-static Lisp_Object QCmax_width, QCmax_height;
-
 /* Code to deal with bitmaps.  Bitmaps are referenced by their bitmap
    id, which is just an int that this section returns.  Bitmaps are
    reference counted so they can be shared among frames.
@@ -534,24 +521,6 @@
 
 static struct image_type *image_types;
 
-/* The symbol `xbm' which is used as the type symbol for XBM images.  */
-
-static Lisp_Object Qxbm;
-
-/* Keywords.  */
-
-Lisp_Object QCascent, QCmargin, QCrelief;
-Lisp_Object QCconversion;
-static Lisp_Object QCheuristic_mask;
-static Lisp_Object QCcolor_symbols;
-static Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask, QCgeometry;
-static Lisp_Object QCcrop, QCrotation;
-
-/* Other symbols.  */
-
-static Lisp_Object Qcount, Qextension_data, Qdelay;
-static Lisp_Object Qlaplace, Qemboss, Qedge_detection, Qheuristic;
-
 /* Forward function prototypes.  */
 
 static struct image_type *lookup_image_type (Lisp_Object);
@@ -3105,9 +3074,6 @@
 #endif /* HAVE_XPM */
 
 #if defined (HAVE_XPM) || defined (HAVE_NS)
-/* The symbol `xpm' identifying XPM-format images.  */
-
-static Lisp_Object Qxpm;
 
 /* Indices of image specification fields in xpm_format, below.  */
 
@@ -5036,10 +5002,6 @@
 static bool pbm_image_p (Lisp_Object object);
 static bool pbm_load (struct frame *f, struct image *img);
 
-/* The symbol `pbm' identifying images of this type.  */
-
-static Lisp_Object Qpbm;
-
 /* Indices of image specification fields in gs_format, below.  */
 
 enum pbm_keyword_index
@@ -5422,10 +5384,6 @@
 static bool png_image_p (Lisp_Object object);
 static bool png_load (struct frame *f, struct image *img);
 
-/* The symbol `png' identifying images of this type.  */
-
-static Lisp_Object Qpng;
-
 /* Indices of image specification fields in png_format, below.  */
 
 enum png_keyword_index
@@ -6076,10 +6034,6 @@
 static bool jpeg_image_p (Lisp_Object object);
 static bool jpeg_load (struct frame *f, struct image *img);
 
-/* The symbol `jpeg' identifying images of this type.  */
-
-static Lisp_Object Qjpeg;
-
 /* Indices of image specification fields in gs_format, below.  */
 
 enum jpeg_keyword_index
@@ -6673,10 +6627,6 @@
 static bool tiff_image_p (Lisp_Object object);
 static bool tiff_load (struct frame *f, struct image *img);
 
-/* The symbol `tiff' identifying images of this type.  */
-
-static Lisp_Object Qtiff;
-
 /* Indices of image specification fields in tiff_format, below.  */
 
 enum tiff_keyword_index
@@ -7127,10 +7077,6 @@
 static bool gif_load (struct frame *f, struct image *img);
 static void gif_clear_image (struct frame *f, struct image *img);
 
-/* The symbol `gif' identifying images of this type.  */
-
-static Lisp_Object Qgif;
-
 /* Indices of image specification fields in gif_format, below.  */
 
 enum gif_keyword_index
@@ -7767,8 +7713,6 @@
   *d_height = desired_height;
 }
 
-static Lisp_Object Qimagemagick;
-
 static bool imagemagick_image_p (Lisp_Object);
 static bool imagemagick_load (struct frame *, struct image *);
 static void imagemagick_clear_image (struct frame *, struct image *);
@@ -8549,10 +8493,6 @@
 static bool svg_load_image (struct frame *, struct image *,
 			    unsigned char *, ptrdiff_t);
 
-/* The symbol `svg' identifying images of this type. */
-
-static Lisp_Object Qsvg;
-
 /* Indices of image specification fields in svg_format, below.  */
 
 enum svg_keyword_index
@@ -8652,8 +8592,6 @@
 DEF_IMGLIB_FN (void, g_object_unref, (gpointer));
 DEF_IMGLIB_FN (void, g_error_free, (GError *));
 
-Lisp_Object Qgdk_pixbuf, Qglib, Qgobject;
-
 static bool
 init_svg_functions (void)
 {
@@ -8946,10 +8884,6 @@
 static bool gs_load (struct frame *f, struct image *img);
 static void gs_clear_image (struct frame *f, struct image *img);
 
-/* Keyword symbols.  */
-
-static Lisp_Object QCloader, QCbounding_box, QCpt_width, QCpt_height;
-
 /* Indices of image specification fields in gs_format, below.  */
 
 enum gs_keyword_index
@@ -9369,10 +9303,12 @@
 non-numeric, there is no explicit limit on the size of images.  */);
   Vmax_image_size = make_float (MAX_IMAGE_SIZE);
 
+  /* Other symbols.  */
   DEFSYM (Qcount, "count");
   DEFSYM (Qextension_data, "extension-data");
   DEFSYM (Qdelay, "delay");
 
+  /* Keywords.  */
   DEFSYM (QCascent, ":ascent");
   DEFSYM (QCmargin, ":margin");
   DEFSYM (QCrelief, ":relief");
@@ -9387,6 +9323,7 @@
   DEFSYM (QCcolor_adjustment, ":color-adjustment");
   DEFSYM (QCmask, ":mask");
 
+  /* Other symbols.  */
   DEFSYM (Qlaplace, "laplace");
   DEFSYM (Qemboss, "emboss");
   DEFSYM (Qedge_detection, "edge-detection");
@@ -9404,6 +9341,10 @@
 #endif /* HAVE_GHOSTSCRIPT */
 
 #ifdef HAVE_NTGUI
+  /* Versions of libpng, libgif, and libjpeg that we were compiled with,
+     or -1 if no PNG/GIF support was compiled in.  This is tested by
+     w32-win.el to correctly set up the alist used to search for the
+     respective image libraries.  */
   DEFSYM (Qlibpng_version, "libpng-version");
   Fset (Qlibpng_version,
 #if HAVE_PNG

=== modified file 'src/inotify.c'
--- src/inotify.c	2013-07-12 02:03:47 +0000
+++ src/inotify.c	2013-11-12 22:28:24 +0000
@@ -29,34 +29,6 @@
 #include "frame.h" /* Required for termhooks.h.  */
 #include "termhooks.h"
 
-static Lisp_Object Qaccess;        /* IN_ACCESS */
-static Lisp_Object Qattrib;        /* IN_ATTRIB */
-static Lisp_Object Qclose_write;   /* IN_CLOSE_WRITE */
-static Lisp_Object Qclose_nowrite; /* IN_CLOSE_NOWRITE */
-static Lisp_Object Qcreate;        /* IN_CREATE */
-static Lisp_Object Qdelete;        /* IN_DELETE */
-static Lisp_Object Qdelete_self;   /* IN_DELETE_SELF */
-static Lisp_Object Qmodify;        /* IN_MODIFY */
-static Lisp_Object Qmove_self;     /* IN_MOVE_SELF */
-static Lisp_Object Qmoved_from;    /* IN_MOVED_FROM */
-static Lisp_Object Qmoved_to;      /* IN_MOVED_TO */
-static Lisp_Object Qopen;          /* IN_OPEN */
-
-static Lisp_Object Qall_events;    /* IN_ALL_EVENTS */
-static Lisp_Object Qmove;          /* IN_MOVE */
-static Lisp_Object Qclose;         /* IN_CLOSE */
-
-static Lisp_Object Qdont_follow;   /* IN_DONT_FOLLOW */
-static Lisp_Object Qexcl_unlink;   /* IN_EXCL_UNLINK */
-static Lisp_Object Qmask_add;      /* IN_MASK_ADD */
-static Lisp_Object Qoneshot;       /* IN_ONESHOT */
-static Lisp_Object Qonlydir;       /* IN_ONLYDIR */
-
-static Lisp_Object Qignored;       /* IN_IGNORED */
-static Lisp_Object Qisdir;         /* IN_ISDIR */
-static Lisp_Object Qq_overflow;    /* IN_Q_OVERFLOW */
-static Lisp_Object Qunmount;       /* IN_UNMOUNT */
-
 #include <sys/inotify.h>
 #include <sys/ioctl.h>
 
@@ -398,33 +370,34 @@
 void
 syms_of_inotify (void)
 {
-  DEFSYM (Qaccess, "access");
-  DEFSYM (Qattrib, "attrib");
-  DEFSYM (Qclose_write, "close-write");
+  DEFSYM (Qaccess, "access");		/* IN_ACCESS */
+  DEFSYM (Qattrib, "attrib");		/* IN_ATTRIB */
+  DEFSYM (Qclose_write, "close-write");	/* IN_CLOSE_WRITE */
   DEFSYM (Qclose_nowrite, "close-nowrite");
-  DEFSYM (Qcreate, "create");
-  DEFSYM (Qdelete, "delete");
-  DEFSYM (Qdelete_self, "delete-self");
-  DEFSYM (Qmodify, "modify");
-  DEFSYM (Qmove_self, "move-self");
-  DEFSYM (Qmoved_from, "moved-from");
-  DEFSYM (Qmoved_to, "moved-to");
-  DEFSYM (Qopen, "open");
-
-  DEFSYM (Qall_events, "all-events");
-  DEFSYM (Qmove, "move");
-  DEFSYM (Qclose, "close");
-
-  DEFSYM (Qdont_follow, "dont-follow");
-  DEFSYM (Qexcl_unlink, "excl-unlink");
-  DEFSYM (Qmask_add, "mask-add");
-  DEFSYM (Qoneshot, "oneshot");
-  DEFSYM (Qonlydir, "onlydir");
-
-  DEFSYM (Qignored, "ignored");
-  DEFSYM (Qisdir, "isdir");
-  DEFSYM (Qq_overflow, "q-overflow");
-  DEFSYM (Qunmount, "unmount");
+					/* IN_CLOSE_NOWRITE */
+  DEFSYM (Qcreate, "create");		/* IN_CREATE */
+  DEFSYM (Qdelete, "delete");		/* IN_DELETE */
+  DEFSYM (Qdelete_self, "delete-self");	/* IN_DELETE_SELF */
+  DEFSYM (Qmodify, "modify");		/* IN_MODIFY */
+  DEFSYM (Qmove_self, "move-self");	/* IN_MOVE_SELF */
+  DEFSYM (Qmoved_from, "moved-from");	/* IN_MOVED_FROM */
+  DEFSYM (Qmoved_to, "moved-to");	/* IN_MOVED_TO */
+  DEFSYM (Qopen, "open");		/* IN_OPEN */
+
+  DEFSYM (Qall_events, "all-events");	/* IN_ALL_EVENTS */
+  DEFSYM (Qmove, "move");		/* IN_MOVE */
+  DEFSYM (Qclose, "close");		/* IN_CLOSE */
+
+  DEFSYM (Qdont_follow, "dont-follow");	/* IN_DONT_FOLLOW */
+  DEFSYM (Qexcl_unlink, "excl-unlink");	/* IN_EXCL_UNLINK */
+  DEFSYM (Qmask_add, "mask-add");	/* IN_MASK_ADD */
+  DEFSYM (Qoneshot, "oneshot");		/* IN_ONESHOT */
+  DEFSYM (Qonlydir, "onlydir");		/* IN_ONLYDIR */
+
+  DEFSYM (Qignored, "ignored");		/* IN_IGNORED */
+  DEFSYM (Qisdir, "isdir");		/* IN_ISDIR */
+  DEFSYM (Qq_overflow, "q-overflow");	/* IN_Q_OVERFLOW */
+  DEFSYM (Qunmount, "unmount");		/* IN_UNMOUNT */
 
   defsubr (&Sinotify_add_watch);
   defsubr (&Sinotify_rm_watch);

=== modified file 'src/insdel.c'
--- src/insdel.c	2013-11-11 05:18:53 +0000
+++ src/insdel.c	2013-11-12 22:28:24 +0000
@@ -51,8 +51,6 @@
 /* Buffer which combine_after_change_list is about.  */
 static Lisp_Object combine_after_change_buffer;
 
-Lisp_Object Qinhibit_modification_hooks;
-
 static void signal_before_change (ptrdiff_t, ptrdiff_t, ptrdiff_t *);
 
 /* Also used in marker.c to enable expensive marker checks.  */
@@ -1778,8 +1776,6 @@
   bset_point_before_scroll (current_buffer, Qnil);
 }
 
-Lisp_Object Qregion_extract_function;
-
 /* Check that it is okay to modify the buffer between START and END,
    which are char positions.

=== modified file 'src/intervals.h'
--- src/intervals.h	2013-09-20 15:34:36 +0000
+++ src/intervals.h	2013-11-12 22:28:24 +0000
@@ -262,22 +262,7 @@
 /* Defined in xdisp.c.  */
 extern int invisible_p (Lisp_Object, Lisp_Object);
 
-/* Declared in textprop.c.  */
-
-/* Types of hooks.  */
-extern Lisp_Object Qpoint_left;
-extern Lisp_Object Qpoint_entered;
-extern Lisp_Object Qmodification_hooks;
-extern Lisp_Object Qcategory;
-extern Lisp_Object Qlocal_map;
-extern Lisp_Object Qkeymap;
-
-/* Visual properties text (including strings) may have.  */
-extern Lisp_Object Qfont;
-extern Lisp_Object Qinvisible, Qintangible;
-
-/* Sticky properties.  */
-extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
+/* Defined in textprop.c.  */
 
 extern Lisp_Object copy_text_properties (Lisp_Object, Lisp_Object,
                                          Lisp_Object, Lisp_Object,

=== modified file 'src/keyboard.c'
--- src/keyboard.c	2013-11-11 05:18:53 +0000
+++ src/keyboard.c	2013-11-12 22:28:24 +0000
@@ -87,11 +87,6 @@
 /* True in the single-kboard state, false in the any-kboard state.  */
 static bool single_kboard;
 
-/* Non-nil disable property on a command means
-   do not execute it; call disabled-command-function's value instead.  */
-Lisp_Object Qdisabled;
-static Lisp_Object Qdisabled_command_function;
-
 #define NUM_RECENT_KEYS (300)
 
 /* Index for storing next element into recent_keys.  */
@@ -218,42 +213,11 @@
    'volatile' here.  */
 Lisp_Object internal_last_event_frame;
 
-static Lisp_Object Qx_set_selection, Qhandle_switch_frame;
-static Lisp_Object Qhandle_select_window;
-Lisp_Object QPRIMARY;
-
-static Lisp_Object Qself_insert_command;
-static Lisp_Object Qforward_char;
-static Lisp_Object Qbackward_char;
-Lisp_Object Qundefined;
-static Lisp_Object Qtimer_event_handler;
-
 /* read_key_sequence stores here the command definition of the
    key sequence that it reads.  */
 static Lisp_Object read_key_sequence_cmd;
 static Lisp_Object read_key_sequence_remapped;
 
-static Lisp_Object Qinput_method_function;
-
-static Lisp_Object Qdeactivate_mark;
-
-Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
-
-static Lisp_Object Qecho_area_clear_hook;
-
-/* Hooks to run before and after each command.  */
-static Lisp_Object Qpre_command_hook;
-static Lisp_Object Qpost_command_hook;
-
-static Lisp_Object Qdeferred_action_function;
-
-static Lisp_Object Qdelayed_warnings_hook;
-
-static Lisp_Object Qinput_method_exit_on_first_char;
-static Lisp_Object Qinput_method_use_echo_area;
-
-static Lisp_Object Qhelp_form_show;
-
 /* File in which we write all commands we read.  */
 static FILE *dribble;
 
@@ -285,7 +249,7 @@
    at inopportune times.  */
 
 /* Symbols to head events.  */
-static Lisp_Object Qmouse_movement;
+static Lisp_Object Qmouse_movement; /* Also a kind of event.  */
 static Lisp_Object Qscroll_bar_movement;
 Lisp_Object Qswitch_frame;
 static Lisp_Object Qfocus_in, Qfocus_out;
@@ -293,75 +257,14 @@
 static Lisp_Object Qiconify_frame;
 static Lisp_Object Qmake_frame_visible;
 static Lisp_Object Qselect_window;
-Lisp_Object Qhelp_echo;
-
-static Lisp_Object Qmouse_fixup_help_message;
-
-/* Symbols to denote kinds of events.  */
-static Lisp_Object Qfunction_key;
-Lisp_Object Qmouse_click;
-#ifdef HAVE_NTGUI
-Lisp_Object Qlanguage_change;
-#endif
-static Lisp_Object Qdrag_n_drop;
-static Lisp_Object Qsave_session;
-#ifdef HAVE_DBUS
-static Lisp_Object Qdbus_event;
-#endif
-#ifdef USE_FILE_NOTIFY
-static Lisp_Object Qfile_notify;
-#endif /* USE_FILE_NOTIFY */
-static Lisp_Object Qconfig_changed_event;
-
-/* Lisp_Object Qmouse_movement; - also an event header */
-
-/* Properties of event headers.  */
-Lisp_Object Qevent_kind;
-static Lisp_Object Qevent_symbol_elements;
-
-/* Menu and tool bar item parts.  */
-static Lisp_Object Qmenu_enable;
-static Lisp_Object QCenable, QCvisible, QChelp, QCkeys, QCkey_sequence;
-Lisp_Object QCfilter;
-
-/* Non-nil disable property on a command means
-   do not execute it; call disabled-command-function's value instead.  */
-Lisp_Object QCtoggle, QCradio;
-static Lisp_Object QCbutton, QClabel;
-
-static Lisp_Object QCvert_only;
-
-/* 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.  */
-Lisp_Object Qevent_symbol_element_mask;
-
-/* An unmodified event header BASE may have a property named
-   Qmodifier_cache, which is an alist mapping modifier masks onto
-   modified versions of BASE.  If present, this helps speed up
-   apply_modifiers.  */
-static Lisp_Object Qmodifier_cache;
-
-/* Symbols to use for parts of windows.  */
-Lisp_Object Qmode_line;
-Lisp_Object Qvertical_line;
-static Lisp_Object Qvertical_scroll_bar;
-Lisp_Object Qmenu_bar;
-
-static Lisp_Object Qecho_keystrokes;
 
 static void recursive_edit_unwind (Lisp_Object buffer);
 static Lisp_Object command_loop (void);
-static Lisp_Object Qcommand_execute;
 struct timespec timer_check (void);
 
 static void echo_now (void);
 static ptrdiff_t echo_length (void);
 
-static Lisp_Object Qpolling_period;
-
 /* Incremented whenever a timer is run.  */
 unsigned timers_run;
 
@@ -1321,8 +1224,6 @@
 /* The last boundary auto-added to buffer-undo-list.  */
 Lisp_Object last_undo_boundary;
 
-extern Lisp_Object Qregion_extract_function;
-
 /* FIXME: This is wrong rather than test window-system, we should call
    a new set-selection, which will then dispatch to x-set-selection, or
    tty-set-selection, or w32-set-selection, ...  */
@@ -5159,13 +5060,6 @@
   "drag-n-drop"
 };
 
-/* Scroll bar parts.  */
-static Lisp_Object Qabove_handle, Qhandle, Qbelow_handle;
-Lisp_Object Qup, Qdown, Qbottom;
-static Lisp_Object Qend_scroll;
-Lisp_Object Qtop;
-static Lisp_Object Qratio;
-
 /* An array of scroll bar parts, indexed by an enum scroll_bar_part value.  */
 static Lisp_Object *const scroll_bar_parts[] = {
   &Qabove_handle, &Qhandle, &Qbelow_handle,
@@ -7880,11 +7774,6 @@
 
 static int ntool_bar_items;
 
-/* The symbols `:image' and `:rtl'.  */
-
-static Lisp_Object QCimage;
-static Lisp_Object QCrtl;
-
 /* Function prototypes.  */
 
 static void init_tool_bar_items (Lisp_Object);
@@ -10902,6 +10791,8 @@
   Lisp_Object *kind;
 };
 
+
+
 static const struct event_head head_table[] = {
   {&Qmouse_movement,      "mouse-movement",      &Qmouse_movement},
   {&Qscroll_bar_movement, "scroll-bar-movement", &Qmouse_movement},
@@ -10943,17 +10834,29 @@
   DEFSYM (Qself_insert_command, "self-insert-command");
   DEFSYM (Qforward_char, "forward-char");
   DEFSYM (Qbackward_char, "backward-char");
+
+  /* Non-nil disable property on a command means do not execute it;
+     call disabled-command-function's value instead.  */
   DEFSYM (Qdisabled, "disabled");
+
   DEFSYM (Qundefined, "undefined");
+
+  /* Hooks to run before and after each command.  */
   DEFSYM (Qpre_command_hook, "pre-command-hook");
   DEFSYM (Qpost_command_hook, "post-command-hook");
+
   DEFSYM (Qdeferred_action_function, "deferred-action-function");
   DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook");
   DEFSYM (Qfunction_key, "function-key");
+
+  /* The values of Qevent_kind properties.  */
   DEFSYM (Qmouse_click, "mouse-click");
+
   DEFSYM (Qdrag_n_drop, "drag-n-drop");
   DEFSYM (Qsave_session, "save-session");
   DEFSYM (Qconfig_changed_event, "config-changed-event");
+
+  /* Menu and tool bar item parts.  */
   DEFSYM (Qmenu_enable, "menu-enable");
 
 #ifdef HAVE_NTGUI
@@ -10968,6 +10871,7 @@
   DEFSYM (Qfile_notify, "file-notify");
 #endif /* USE_FILE_NOTIFY */
 
+  /* Menu and tool bar item parts.  */
   DEFSYM (QCenable, ":enable");
   DEFSYM (QCvisible, ":visible");
   DEFSYM (QChelp, ":help");
@@ -10975,11 +10879,15 @@
   DEFSYM (QCbutton, ":button");
   DEFSYM (QCkeys, ":keys");
   DEFSYM (QCkey_sequence, ":key-sequence");
+
+  /* Non-nil disable property on a command means
+     do not execute it; call disabled-command-function's value instead.  */
   DEFSYM (QCtoggle, ":toggle");
   DEFSYM (QCradio, ":radio");
   DEFSYM (QClabel, ":label");
   DEFSYM (QCvert_only, ":vert-only");
 
+  /* Symbols to use for parts of windows.  */
   DEFSYM (Qmode_line, "mode-line");
   DEFSYM (Qvertical_line, "vertical-line");
   DEFSYM (Qvertical_scroll_bar, "vertical-scroll-bar");
@@ -10997,9 +10905,21 @@
   DEFSYM (Qend_scroll, "end-scroll");
   DEFSYM (Qratio, "ratio");
 
+  /* Properties of event headers.  */
   DEFSYM (Qevent_kind, "event-kind");
   DEFSYM (Qevent_symbol_elements, "event-symbol-elements");
+
+  /* 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.  */
   DEFSYM (Qevent_symbol_element_mask, "event-symbol-element-mask");
+
+  /* An unmodified event header BASE may have a property named
+     Qmodifier_cache, which is an alist mapping modifier masks onto
+     modified versions of BASE.  If present, this helps speed up
+     apply_modifiers.  */
   DEFSYM (Qmodifier_cache, "modifier-cache");
 
   DEFSYM (Qrecompute_lucid_menubar, "recompute-lucid-menubar");
@@ -11008,7 +10928,10 @@
   DEFSYM (Qpolling_period, "polling-period");
 
   DEFSYM (Qx_set_selection, "x-set-selection");
+
+  /* The primary selection.  */
   DEFSYM (QPRIMARY, "PRIMARY");
+
   DEFSYM (Qhandle_switch_frame, "handle-switch-frame");
   DEFSYM (Qhandle_select_window, "handle-select-window");

=== modified file 'src/keyboard.h'
--- src/keyboard.h	2013-10-17 06:42:21 +0000
+++ src/keyboard.h	2013-11-12 22:28:24 +0000
@@ -248,8 +248,6 @@
    generated by the next character.  */
 extern Lisp_Object internal_last_event_frame;
 
-extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
-
 /* This holds a Lisp vector that holds the properties of a single
    menu item while decoding it in parse_menu_item.
    Using a Lisp vector to hold this information while we decode it
@@ -443,21 +441,10 @@
 /* Some of the event heads.  */
 extern Lisp_Object Qswitch_frame;
 
-/* Properties on event heads.  */
-extern Lisp_Object Qevent_kind;
-
-/* The values of Qevent_kind properties.  */
-extern Lisp_Object Qmouse_click;
-
-extern Lisp_Object Qhelp_echo;
-
 /* Getting the kind of an event head.  */
 #define EVENT_HEAD_KIND(event_head) \
   (Fget ((event_head), Qevent_kind))
 
-/* Symbols to use for non-text mouse positions.  */
-extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line;
-
 /* True while doing kbd input.  */
 extern bool waiting_for_input;
 
@@ -469,9 +456,6 @@
 extern bool ignore_mouse_drag_p;
 #endif
 
-/* The primary selection.  */
-extern Lisp_Object QPRIMARY;
-
 extern Lisp_Object parse_modifiers (Lisp_Object);
 extern Lisp_Object reorder_modifiers (Lisp_Object);
 extern Lisp_Object read_char (int, Lisp_Object, Lisp_Object,
@@ -482,17 +466,6 @@
 /* This is like Vthis_command, except that commands never set it.  */
 extern Lisp_Object real_this_command;
 
-/* Non-nil disable property on a command means
-   do not execute it; call disabled-command-function's value instead.  */
-extern Lisp_Object QCtoggle, QCradio;
-
-/* 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;
-
 extern int quit_char;
 
 extern unsigned int timers_run;

=== modified file 'src/keymap.c'
--- src/keymap.c	2013-08-11 01:30:20 +0000
+++ src/keymap.c	2013-11-12 22:28:24 +0000
@@ -76,12 +76,6 @@
 				   bindings when spaces are not encouraged
 				   in the minibuf.  */
 
-/* Keymap used for minibuffers when doing completion.  */
-/* Keymap used for minibuffers when doing completion and require a match.  */
-static Lisp_Object Qkeymapp, Qnon_ascii;
-Lisp_Object Qkeymap, Qmenu_item, Qremap;
-static Lisp_Object QCadvertised_binding;
-
 /* Alist of elements like (DEL . "\d").  */
 static Lisp_Object exclude_keys;
 
@@ -654,8 +648,6 @@
   UNGCPRO;
 }
 
-static Lisp_Object Qkeymap_canonicalize;
-
 /* Same as map_keymap, but does it right, properly eliminating duplicate
    bindings due to inheritance.   */
 void
@@ -2041,7 +2033,6 @@
     }
   return maps;
 }
-static Lisp_Object Qsingle_key_description, Qkey_description;
 
 /* This function cannot GC.  */
 
@@ -3781,6 +3772,9 @@
 
   DEFSYM (Qsingle_key_description, "single-key-description");
   DEFSYM (Qkey_description, "key-description");
+
+  /* Keymap used for minibuffers when doing completion.  */
+  /* Keymap used for minibuffers when doing completion and require a match.  */
   DEFSYM (Qkeymapp, "keymapp");
   DEFSYM (Qnon_ascii, "non-ascii");
   DEFSYM (Qmenu_item, "menu-item");

=== modified file 'src/keymap.h'
--- src/keymap.h	2013-01-01 09:11:05 +0000
+++ src/keymap.h	2013-11-12 22:28:24 +0000
@@ -30,9 +30,6 @@
 #define KEY_DESCRIPTION_SIZE ((2 * 6) + 1 + (CHARACTERBITS / 3) + 1 + 1)
 
 #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 current_global_map;
 extern char *push_key_description (EMACS_INT, char *);
 extern Lisp_Object access_keymap (Lisp_Object, Lisp_Object, bool, bool, bool);

=== modified file 'src/lisp.h'
--- src/lisp.h	2013-11-05 22:45:44 +0000
+++ src/lisp.h	2013-11-12 22:28:24 +0000
@@ -1644,8 +1644,10 @@
 
 LISP_MACRO_DEFUN (SYMBOL_CONSTANT_P, int, (Lisp_Object sym), (sym))
 
+#ifndef GENERATE_GLOBALS
 #define DEFSYM(sym, name)						\
   do { (sym) = intern_c_string ((name)); staticpro (&(sym)); } while (0)
+#endif
 
 
 /***********************************************************************
@@ -2606,6 +2608,7 @@
 
 /* This version of DEFUN declares a function prototype with the right
    arguments, so we can catch errors with maxargs at compile-time.  */
+#ifndef GENERATE_GLOBALS
 #ifdef _MSC_VER
 #define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc)	\
    Lisp_Object fnname DEFUN_ARGS_ ## maxargs ;				\
@@ -2629,6 +2632,7 @@
        minargs, maxargs, lname, intspec, 0};				\
    Lisp_Object fnname
 #endif
+#endif
 
 /* Note that the weird token-substitution semantics of ANSI C makes
    this work for MANY and UNEVALLED.  */
@@ -2688,6 +2692,8 @@
    All C code uses the `cons_cells_consed' name.  This is all done
    this way to support indirection for multi-threaded Emacs.  */
 
+#ifndef GENERATE_GLOBALS
+
 #define DEFVAR_LISP(lname, vname, doc)		\
   do {						\
     static struct Lisp_Objfwd o_fwd;		\
@@ -2720,6 +2726,8 @@
     static struct Lisp_Kboard_Objfwd ko_fwd;			\
     defvar_kboard (&ko_fwd, lname, offsetof (KBOARD, vname ## _)); \
   } while (0)
+
+#endif
 
 /* Save and restore the instruction and environment pointers,
    without affecting the signal mask.  */
@@ -3262,35 +3270,7 @@
 }
 
 /* Defined in data.c.  */
-extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qunbound;
-extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
-extern Lisp_Object Qerror, Qquit, Qargs_out_of_range;
-extern Lisp_Object Qvoid_variable, Qvoid_function;
-extern Lisp_Object Qinvalid_read_syntax;
-extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
-extern Lisp_Object Quser_error, 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 Qcircular_list;
-extern Lisp_Object Qintegerp, Qwholenump, Qsymbolp, Qlistp, Qconsp;
-extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
-extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
-extern Lisp_Object Qbuffer_or_string_p;
-extern Lisp_Object Qfboundp;
-extern Lisp_Object Qchar_table_p, Qvector_or_char_table_p;
-
-extern Lisp_Object Qcdr;
-
-extern Lisp_Object Qrange_error, Qoverflow_error;
-
-extern Lisp_Object Qfloatp;
-extern Lisp_Object Qnumberp, Qnumber_or_marker_p;
-
-extern Lisp_Object Qbuffer, Qinteger, Qsymbol;
-
-extern Lisp_Object Qfont_spec, Qfont_entity, Qfont_object;
-
+extern Lisp_Object Qunbound;
 EXFUN (Fbyteorder, 0) ATTRIBUTE_CONST;
 
 /* Defined in data.c.  */
@@ -3350,7 +3330,6 @@
 extern void keys_of_cmds (void);
 
 /* Defined in coding.c.  */
-extern Lisp_Object Qcharset;
 extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t,
                                          ptrdiff_t, bool, bool, Lisp_Object);
 extern void init_coding (void);
@@ -3380,15 +3359,11 @@
 extern void syms_of_syntax (void);
 
 /* Defined in fns.c.  */
-extern Lisp_Object QCrehash_size, QCrehash_threshold;
 enum { NEXT_ALMOST_PRIME_LIMIT = 11 };
 EXFUN (Fidentity, 1) ATTRIBUTE_CONST;
 extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST;
 extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t);
 extern void sweep_weak_hash_tables (void);
-extern Lisp_Object Qcursor_in_echo_area;
-extern Lisp_Object Qstring_lessp;
-extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq;
 EMACS_UINT hash_string (char const *, ptrdiff_t);
 EMACS_UINT sxhash (Lisp_Object, int);
 Lisp_Object make_hash_table (struct hash_table_test, Lisp_Object, Lisp_Object,
@@ -3428,14 +3403,11 @@
 #endif /* HAVE_WINDOW_SYSTEM */
 
 /* Defined in image.c.  */
-extern Lisp_Object QCascent, QCmargin, QCrelief;
-extern Lisp_Object QCconversion;
 extern int x_bitmap_mask (struct frame *, ptrdiff_t);
 extern void reset_image_types (void);
 extern void syms_of_image (void);
 
 /* Defined in insdel.c.  */
-extern Lisp_Object Qinhibit_modification_hooks;
 extern void move_gap_both (ptrdiff_t, ptrdiff_t);
 extern _Noreturn void buffer_overflow (void);
 extern void make_gap (ptrdiff_t);
@@ -3491,18 +3463,6 @@
 extern void syms_of_display (void);
 
 /* Defined in xdisp.c.  */
-extern Lisp_Object Qinhibit_point_motion_hooks;
-extern Lisp_Object Qinhibit_redisplay, Qdisplay;
-extern Lisp_Object Qmenu_bar_update_hook;
-extern Lisp_Object Qwindow_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 QCdata, QCfile;
-extern Lisp_Object QCmap;
-extern Lisp_Object Qrisky_local_variable;
 extern bool noninteractive_need_newline;
 extern Lisp_Object echo_area_buffer[2];
 extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
@@ -3632,8 +3592,6 @@
 
 extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
 extern void make_byte_code (struct Lisp_Vector *);
-extern Lisp_Object Qautomatic_gc;
-extern Lisp_Object Qchar_table_extra_slots;
 extern struct Lisp_Vector *allocate_vector (EMACS_INT);
 
 /* Make an uninitialized vector for SIZE objects.  NOTE: you must
@@ -3725,11 +3683,8 @@
 /* Defined in print.c.  */
 extern Lisp_Object Vprin1_to_string_buffer;
 extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
-extern Lisp_Object Qstandard_output;
-extern Lisp_Object Qexternal_debugging_output;
 extern void temp_output_buffer_setup (const char *);
 extern int print_level;
-extern Lisp_Object Qprint_escape_newlines;
 extern void write_string (const char *, int);
 extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
 				 Lisp_Object);
@@ -3753,9 +3708,6 @@
   ATTRIBUTE_FORMAT_PRINTF (5, 0);
 
 /* Defined in lread.c.  */
-extern Lisp_Object Qvariable_documentation, Qstandard_input;
-extern Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
-extern Lisp_Object Qlexical_binding;
 extern Lisp_Object check_obarray (Lisp_Object);
 extern Lisp_Object intern_1 (const char *, ptrdiff_t);
 extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t);
@@ -3789,9 +3741,6 @@
 }
 
 /* Defined in eval.c.  */
-extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qmacro;
-extern Lisp_Object Qinhibit_quit, Qinternal_interpreter_environment, Qclosure;
-extern Lisp_Object Qand_rest;
 extern Lisp_Object Vautoload_queue;
 extern Lisp_Object Vsignaling_function;
 extern Lisp_Object inhibit_lisp_code;
@@ -3804,7 +3753,6 @@
      call1 (Vrun_hooks, Qmy_funny_hook);
 
    should no longer be used.  */
-extern Lisp_Object Vrun_hooks;
 extern void run_hook_with_args_2 (Lisp_Object, Lisp_Object, Lisp_Object);
 extern Lisp_Object run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args,
 				       Lisp_Object (*funcall)
@@ -3866,7 +3814,6 @@

 /* Defined in editfns.c.  */
-extern Lisp_Object Qfield;
 extern void insert1 (Lisp_Object);
 extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object);
 extern Lisp_Object save_excursion_save (void);
@@ -3914,12 +3861,6 @@
 
 /* Defined in fileio.c.  */
 
-extern Lisp_Object Qfile_error;
-extern Lisp_Object Qfile_notify_error;
-extern Lisp_Object Qfile_exists_p;
-extern Lisp_Object Qfile_directory_p;
-extern Lisp_Object Qinsert_file_contents;
-extern Lisp_Object Qfile_name_history;
 extern Lisp_Object expand_and_dir_to_file (Lisp_Object, Lisp_Object);
 extern Lisp_Object write_region (Lisp_Object, Lisp_Object, Lisp_Object,
 				 Lisp_Object, Lisp_Object, Lisp_Object,
@@ -3937,7 +3878,6 @@
 extern void init_fileio (void);
 extern void syms_of_fileio (void);
 extern Lisp_Object make_temp_name (Lisp_Object, bool);
-extern Lisp_Object Qdelete_file;
 
 /* Defined in search.c.  */
 extern void shrink_regexp_cache (void);
@@ -3966,7 +3906,6 @@
 
 /* Defined in minibuf.c.  */
 
-extern Lisp_Object Qcompletion_ignore_case;
 extern Lisp_Object Vminibuffer_list;
 extern Lisp_Object last_minibuf_string;
 extern Lisp_Object get_minibuffer (EMACS_INT);
@@ -3975,14 +3914,10 @@
 
 /* Defined in callint.c.  */
 
-extern Lisp_Object Qminus, Qplus;
-extern Lisp_Object Qwhen;
-extern Lisp_Object Qmouse_leave_buffer_hook;
 extern void syms_of_callint (void);
 
 /* Defined in casefiddle.c.  */
 
-extern Lisp_Object Qidentity;
 extern void syms_of_casefiddle (void);
 extern void keys_of_casefiddle (void);
 
@@ -3996,9 +3931,6 @@
 extern Lisp_Object echo_message_buffer;
 extern struct kboard *echo_kboard;
 extern void cancel_echoing (void);
-extern Lisp_Object Qdisabled, QCfilter;
-extern Lisp_Object Qup, Qdown, Qbottom;
-extern Lisp_Object Qtop;
 extern Lisp_Object last_undo_boundary;
 extern bool input_pending;
 extern Lisp_Object menu_bar_items (Lisp_Object);
@@ -4029,8 +3961,6 @@
 extern void syms_of_indent (void);
 
 /* Defined in frame.c.  */
-extern Lisp_Object Qonly, Qnone;
-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);
 extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object);
@@ -4048,9 +3978,7 @@
 #endif
 extern Lisp_Object decode_env_path (const char *, const char *);
 extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
-extern Lisp_Object Qfile_name_handler_alist;
 extern _Noreturn void terminate_due_to_signal (int, int);
-extern Lisp_Object Qkill_emacs;
 #ifdef WINDOWSNT
 extern Lisp_Object Vlibrary_cache;
 #endif
@@ -4085,8 +4013,6 @@
 extern bool running_asynch_code;
 
 /* Defined in process.c.  */
-extern Lisp_Object QCtype, Qlocal;
-extern Lisp_Object Qprocessp;
 extern void kill_buffer_processes (Lisp_Object);
 extern bool wait_reading_process_output (intmax_t, int, int, bool,
 					 Lisp_Object,
@@ -4121,7 +4047,6 @@
 extern void syms_of_callproc (void);
 
 /* Defined in doc.c.  */
-extern Lisp_Object Qfunction_documentation;
 extern Lisp_Object read_doc_string (Lisp_Object);
 extern Lisp_Object get_doc_string (Lisp_Object, bool, bool);
 extern void syms_of_doc (void);
@@ -4142,8 +4067,6 @@
 extern void syms_of_macros (void);
 
 /* Defined in undo.c.  */
-extern Lisp_Object Qapply;
-extern Lisp_Object Qinhibit_read_only;
 extern void truncate_undo_list (struct buffer *);
 extern void record_marker_adjustment (Lisp_Object, ptrdiff_t);
 extern void record_insert (ptrdiff_t, ptrdiff_t);
@@ -4154,12 +4077,8 @@
 				    Lisp_Object, Lisp_Object,
                                     Lisp_Object);
 extern void syms_of_undo (void);
+
 /* 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;
-
 extern void report_interval_modification (Lisp_Object, Lisp_Object);
 
 /* Defined in menu.c.  */
@@ -4245,9 +4164,6 @@
 #ifdef HAVE_WINDOW_SYSTEM
 /* Defined in fontset.c.  */
 extern void syms_of_fontset (void);
-
-/* Defined in xfns.c, w32fns.c, or macfns.c.  */
-extern Lisp_Object Qfont_param;
 #endif
 
 /* Defined in gfilenotify.c */
@@ -4267,16 +4183,6 @@
 #endif
 
 /* Defined in xfaces.c.  */
-extern Lisp_Object Qdefault, Qtool_bar, Qfringe;
-extern Lisp_Object Qheader_line, Qscroll_bar, Qcursor;
-extern Lisp_Object Qmode_line_inactive;
-extern Lisp_Object Qface;
-extern Lisp_Object Qnormal;
-extern Lisp_Object QCfamily, QCweight, QCslant;
-extern Lisp_Object QCheight, QCname, QCwidth, QCforeground, QCbackground;
-extern Lisp_Object Qextra_light, Qlight, Qsemi_light, Qsemi_bold;
-extern Lisp_Object Qbold, Qextra_bold, Qultra_bold;
-extern Lisp_Object Qoblique, Qitalic;
 extern Lisp_Object Vface_alternative_font_family_alist;
 extern Lisp_Object Vface_alternative_font_registry_alist;
 extern void syms_of_xfaces (void);

=== modified file 'src/lread.c'
--- src/lread.c	2013-11-05 07:11:24 +0000
+++ src/lread.c	2013-11-12 22:28:24 +0000
@@ -64,31 +64,6 @@
 #define file_tell ftell
 #endif
 
-/* Hash table read constants.  */
-static Lisp_Object Qhash_table, Qdata;
-static Lisp_Object Qtest, Qsize;
-static Lisp_Object Qweakness;
-static Lisp_Object Qrehash_size;
-static Lisp_Object Qrehash_threshold;
-
-static Lisp_Object Qread_char, Qget_file_char, Qcurrent_load_list;
-Lisp_Object Qstandard_input;
-Lisp_Object Qvariable_documentation;
-static Lisp_Object Qascii_character, Qload, Qload_file_name;
-Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
-static Lisp_Object Qinhibit_file_name_operation;
-static Lisp_Object Qeval_buffer_list;
-Lisp_Object Qlexical_binding;
-static Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */
-
-/* Used instead of Qget_file_char while loading *.elc files compiled
-   by Emacs 21 or older.  */
-static Lisp_Object Qget_emacs_mule_file_char;
-
-static Lisp_Object Qload_force_doc_strings;
-
-static Lisp_Object Qload_in_progress;
-
 /* The association list of objects read with the #n=object form.
    Each member of the list has the form (n . object), and is used to
    look up the object for the corresponding #n# construct.
@@ -132,7 +107,6 @@
    Fread initializes this to false, so we need not specbind it
    or worry about what happens to it when there is an error.  */
 static bool new_backquote_flag;
-static Lisp_Object Qold_style_backquotes;
 
 /* A list of file names for files being loaded in Fload.  Used to
    check for recursive loads.  */
@@ -1420,8 +1394,6 @@
   return file;
 }
 
-static Lisp_Object Qdir_ok;
-
 /* Search for a file whose name is STR, looking in directories
    in the Lisp list PATH, and trying suffixes from SUFFIX.
    On success, return a file descriptor (or 1 or -2 as described below).
@@ -4644,7 +4616,11 @@
   DEFSYM (Qstandard_input, "standard-input");
   DEFSYM (Qread_char, "read-char");
   DEFSYM (Qget_file_char, "get-file-char");
+
+  /* Used instead of Qget_file_char while loading *.elc files compiled
+     by Emacs 21 or older.  */
   DEFSYM (Qget_emacs_mule_file_char, "get-emacs-mule-file-char");
+
   DEFSYM (Qload_force_doc_strings, "load-force-doc-strings");
 
   DEFSYM (Qbackquote, "`");

=== modified file 'src/macfont.m'
--- src/macfont.m	2013-11-07 22:21:08 +0000
+++ src/macfont.m	2013-11-12 22:28:24 +0000
@@ -41,9 +41,6 @@
 
 static struct font_driver macfont_driver;
 
-/* Core Text, for Mac OS X 10.5 and later.  */
-static Lisp_Object Qmac_ct;
-
 static double mac_ctfont_get_advance_width_for_glyph (CTFontRef, CGGlyph);
 static CGRect mac_ctfont_get_bounding_rect_for_glyph (CTFontRef, CGGlyph);
 static CFArrayRef mac_ctfont_create_available_families (void);
@@ -70,18 +67,6 @@
 					     CGFontIndex);
 #endif
 
-/* The font property key specifying the font design destination.  The
-   value is an unsigned integer code: 0 for WYSIWYG, and 1 for Video
-   text.  (See the documentation of X Logical Font Description
-   Conventions.)  In the Mac font driver, 1 means the screen font is
-   used for calculating some glyph metrics.  You can see the
-   difference with Monaco 8pt or 9pt, for example.  */
-static Lisp_Object QCdestination;
-
-/* The boolean-valued font property key specifying the use of
-   leading.  */
-static Lisp_Object QCminspace;
-
 struct macfont_metrics;
 
 /* The actual structure for Mac font that can be casted to struct font.  */
@@ -4047,11 +4032,21 @@
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
   static struct font_driver mac_font_driver;
 
+  /* Core Text, for Mac OS X 10.5 and later.  */
   DEFSYM (Qmac_ct, "mac-ct");
   macfont_driver.type = Qmac_ct;
   register_font_driver (&macfont_driver, NULL);
 
+  /* The font property key specifying the font design destination.  The
+     value is an unsigned integer code: 0 for WYSIWYG, and 1 for Video
+     text.  (See the documentation of X Logical Font Description
+     Conventions.)  In the Mac font driver, 1 means the screen font is
+     used for calculating some glyph metrics.  You can see the
+     difference with Monaco 8pt or 9pt, for example.  */
   DEFSYM (QCdestination, ":destination");
+
+  /* The boolean-valued font property key specifying the use of
+     leading.  */
   DEFSYM (QCminspace, ":minspace");
 #endif
 }

=== modified file 'src/macros.c'
--- src/macros.c	2013-11-06 18:41:31 +0000
+++ src/macros.c	2013-11-12 22:28:24 +0000
@@ -28,9 +28,6 @@
 #include "window.h"
 #include "keyboard.h"
 
-static Lisp_Object Qexecute_kbd_macro;
-static Lisp_Object Qkbd_macro_termination_hook;
-
 /* Number of successful iterations so far
    for innermost keyboard macro.
    This is not bound at each level,

=== modified file 'src/minibuf.c'
--- src/minibuf.c	2013-11-06 04:11:04 +0000
+++ src/minibuf.c	2013-11-12 22:28:24 +0000
@@ -51,37 +51,10 @@
 
 EMACS_INT minibuf_level;
 
-/* The maximum length of a minibuffer history.  */
-
-static Lisp_Object Qhistory_length;
-
 /* Fread_minibuffer leaves the input here as a string.  */
 
 Lisp_Object last_minibuf_string;
 
-static Lisp_Object Qminibuffer_history, Qbuffer_name_history;
-
-static Lisp_Object Qread_file_name_internal;
-
-/* Normal hooks for entry to and exit from minibuffer.  */
-
-static Lisp_Object Qminibuffer_setup_hook;
-static Lisp_Object Qminibuffer_exit_hook;
-
-Lisp_Object Qcompletion_ignore_case;
-static Lisp_Object Qminibuffer_completion_table;
-static Lisp_Object Qminibuffer_completion_predicate;
-static Lisp_Object Qminibuffer_completion_confirm;
-static Lisp_Object Qcustom_variable_p;
-
-static Lisp_Object Qminibuffer_default;
-
-static Lisp_Object Qcurrent_input_method, Qactivate_input_method;
-
-static Lisp_Object Qcase_fold_search;
-
-static Lisp_Object Qread_expression_history;
-
 /* Prompt to display in front of the mini-buffer contents.  */
 
 static Lisp_Object minibuf_prompt;
@@ -1799,8 +1772,6 @@
     return Qt;
 }
 
-static Lisp_Object Qmetadata;
-
 DEFUN ("internal-complete-buffer", Finternal_complete_buffer, Sinternal_complete_buffer, 3, 3, 0,
        doc: /* Perform completion on buffer names.
 STRING and PREDICATE have the same meanings as in `try-completion',
@@ -1934,9 +1905,14 @@
   Fset (Qbuffer_name_history, Qnil);
 
   DEFSYM (Qcustom_variable_p, "custom-variable-p");
+
+  /* Normal hooks for entry to and exit from minibuffer.  */
   DEFSYM (Qminibuffer_setup_hook, "minibuffer-setup-hook");
   DEFSYM (Qminibuffer_exit_hook, "minibuffer-exit-hook");
+
+  /* The maximum length of a minibuffer history.  */
   DEFSYM (Qhistory_length, "history-length");
+
   DEFSYM (Qcurrent_input_method, "current-input-method");
   DEFSYM (Qactivate_input_method, "activate-input-method");
   DEFSYM (Qcase_fold_search, "case-fold-search");

=== modified file 'src/nsfns.m'
--- src/nsfns.m	2013-11-06 18:41:31 +0000
+++ src/nsfns.m	2013-11-12 22:28:24 +0000
@@ -63,34 +63,6 @@
 
 extern NSArray *ns_send_types, *ns_return_types, *ns_drag_types;
 
-extern Lisp_Object Qforeground_color;
-extern Lisp_Object Qbackground_color;
-extern Lisp_Object Qcursor_color;
-extern Lisp_Object Qinternal_border_width;
-extern Lisp_Object Qvisibility;
-extern Lisp_Object Qcursor_type;
-extern Lisp_Object Qicon_type;
-extern Lisp_Object Qicon_name;
-extern Lisp_Object Qicon_left;
-extern Lisp_Object Qicon_top;
-extern Lisp_Object Qleft;
-extern Lisp_Object Qright;
-extern Lisp_Object Qtop;
-extern Lisp_Object Qdisplay;
-extern Lisp_Object Qvertical_scroll_bars;
-extern Lisp_Object Qauto_raise;
-extern Lisp_Object Qauto_lower;
-extern Lisp_Object Qbox;
-extern Lisp_Object Qscroll_bar_width;
-extern Lisp_Object Qx_resource_name;
-extern Lisp_Object Qface_set_after_frame_default;
-extern Lisp_Object Qunderline, Qundefined;
-extern Lisp_Object Qheight, Qminibuffer, Qname, Qonly, Qwidth;
-extern Lisp_Object Qunsplittable, Qmenu_bar_lines, Qbuffer_predicate, Qtitle;
-
-
-Lisp_Object Qbuffered;
-Lisp_Object Qfontsize;
 
 EmacsTooltip *ns_tooltip = nil;
 
@@ -2907,8 +2879,7 @@
 void
 syms_of_nsfns (void)
 {
-  Qfontsize = intern_c_string ("fontsize");
-  staticpro (&Qfontsize);
+  DEFSYM (Qfontsize, "fontsize");
 
   DEFVAR_LISP ("ns-icon-type-alist", Vns_icon_type_alist,
                doc: /* Alist of elements (REGEXP . IMAGE) for images of icons associated to frames.

=== modified file 'src/nsfont.m'
--- src/nsfont.m	2013-10-25 06:55:36 +0000
+++ src/nsfont.m	2013-11-12 22:28:24 +0000
@@ -45,11 +45,6 @@
 #define NSFONT_TRACE 0
 #define LCD_SMOOTHING_MARGIN 2
 
-extern Lisp_Object Qns;
-extern Lisp_Object Qnormal, Qbold, Qitalic;
-static Lisp_Object Qapple, Qroman, Qmedium;
-static Lisp_Object Qcondensed, Qexpanded;
-extern Lisp_Object Qappend;
 extern float ns_antialias_threshold;

@@ -1494,7 +1489,7 @@
         characterIndex: (NSUInteger)charIndex
 {
   len = glyphIndex+length;
-  for (i =glyphIndex; i<len; i++)
+  for (i =glyphIndex; i<len; i++)
     cglyphs[i] = glyphs[i-glyphIndex];
   if (len > maxGlyph)
     maxGlyph = len;

=== modified file 'src/nsimage.m'
--- src/nsimage.m	2013-06-02 19:14:25 +0000
+++ src/nsimage.m	2013-11-12 22:28:24 +0000
@@ -34,8 +34,6 @@
 #include "nsterm.h"
 #include "frame.h"
 
-extern Lisp_Object QCfile, QCdata;
-
 /* call tracing */
 #if 0
 int image_trace_num = 0;

=== modified file 'src/nsmenu.m'
--- src/nsmenu.m	2013-09-29 18:38:56 +0000
+++ src/nsmenu.m	2013-11-12 22:28:24 +0000
@@ -59,12 +59,6 @@
 #include "nsmenu_common.c"
 #endif
 
-extern Lisp_Object Qundefined, Qmenu_enable, Qmenu_bar_update_hook;
-extern Lisp_Object QCtoggle, QCradio;
-
-Lisp_Object Qdebug_on_next_call;
-extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
-
 extern long context_menu_value;
 EmacsMenu *mainMenu, *svcsMenu, *dockMenu;
 
@@ -1943,6 +1937,5 @@
   defsubr (&Sns_reset_menu);
   defsubr (&Smenu_or_popup_active_p);
 
-  Qdebug_on_next_call = intern_c_string ("debug-on-next-call");
-  staticpro (&Qdebug_on_next_call);
+  DEFSYM (Qdebug_on_next_call, "debug-on-next-call");
 }

=== modified file 'src/nsselect.m'
--- src/nsselect.m	2013-10-16 16:55:45 +0000
+++ src/nsselect.m	2013-11-12 22:28:24 +0000
@@ -34,12 +34,8 @@
 #include "termhooks.h"
 #include "keyboard.h"
 
-Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME;
-
 static Lisp_Object Vselection_alist;
 
-static Lisp_Object Qforeign_selection;
-
 /* NSGeneralPboard is pretty much analogous to X11 CLIPBOARD */
 NSString *NXPrimaryPboard;
 NSString *NXSecondaryPboard;
@@ -539,10 +535,11 @@
 void
 syms_of_nsselect (void)
 {
-  QCLIPBOARD = intern_c_string ("CLIPBOARD");	staticpro (&QCLIPBOARD);
-  QSECONDARY = intern_c_string ("SECONDARY");	staticpro (&QSECONDARY);
-  QTEXT      = intern_c_string ("TEXT"); 	staticpro (&QTEXT);
-  QFILE_NAME = intern_c_string ("FILE_NAME"); 	staticpro (&QFILE_NAME);
+  DEFSYM (QCLIPBOARD, "CLIPBOARD");
+  DEFSYM (QSECONDARY, "SECONDARY");
+  DEFSYM (QTEXT, "TEXT");
+  DEFSYM (QFILE_NAME, "FILE_NAME");
+  DEFSYM (Qforeign_selection, "foreign-selection");
 
   defsubr (&Sx_disown_selection_internal);
   defsubr (&Sx_get_selection_internal);
@@ -591,7 +588,4 @@
 The functions are called with one argument, the selection type\n\
 \(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').");
   Vns_lost_selection_hooks = Qnil;
-
-  Qforeign_selection = intern_c_string ("foreign-selection");
-  staticpro (&Qforeign_selection);
 }

=== modified file 'src/nsterm.h'
--- src/nsterm.h	2013-11-04 17:57:17 +0000
+++ src/nsterm.h	2013-11-12 22:28:24 +0000
@@ -794,7 +794,6 @@
 void ns_dump_glyphstring (struct glyph_string *s);
 
 /* Implemented in nsterm, published in or needed from nsfns. */
-extern Lisp_Object Qfontsize;
 extern Lisp_Object ns_list_fonts (struct frame *f, Lisp_Object pattern,
                                   int size, int maxnames);
 extern void ns_clear_frame (struct frame *f);

=== modified file 'src/nsterm.m'
--- src/nsterm.m	2013-11-06 04:11:04 +0000
+++ src/nsterm.m	2013-11-12 22:28:24 +0000
@@ -168,13 +168,6 @@
   0x1B,				0x1B   /* escape */
 };
 
-static Lisp_Object Qmodifier_value;
-Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper;
-extern Lisp_Object Qcursor_color, Qcursor_type, Qns, Qleft;
-
-static Lisp_Object QUTF8_STRING;
-static Lisp_Object Qcocoa, Qgnustep;
-
 /* On OS X picks up the default NSGlobalDomain AppleAntiAliasingThreshold,
    the maximum font size to NOT antialias.  On GNUstep there is currently
    no way to control this behavior. */
@@ -7554,5 +7547,5 @@
 #else
   Fprovide (Qgnustep, Qnil);
 #endif
-
+
 }

=== modified file 'src/print.c'
--- src/print.c	2013-11-05 07:11:24 +0000
+++ src/print.c	2013-11-12 22:28:24 +0000
@@ -37,14 +37,6 @@
 #include "termhooks.h"		/* For struct terminal.  */
 #include "font.h"
 
-Lisp_Object Qstandard_output;
-
-static Lisp_Object Qtemp_buffer_setup_hook;
-
-/* These are used to print like we read.  */
-
-static Lisp_Object Qfloat_output_format;
-
 #include <float.h>
 #include <ftoastr.h>
 
@@ -69,9 +61,6 @@
 /* Bytes stored in print_buffer.  */
 static ptrdiff_t print_buffer_pos_byte;
 
-Lisp_Object Qprint_escape_newlines;
-static Lisp_Object Qprint_escape_multibyte, Qprint_escape_nonascii;
-
 /* Vprint_number_table is a table, that keeps objects that are going to
    be printed, to allow use of #n= and #n# to express sharing.
    For any given object, the table can give the following values:
@@ -699,10 +688,6 @@
   return object;
 }
 
-/* The subroutine object for external-debugging-output is kept here
-   for the convenience of the debugger.  */
-Lisp_Object Qexternal_debugging_output;
-
 DEFUN ("external-debugging-output", Fexternal_debugging_output, Sexternal_debugging_output, 1, 1, 0,
        doc: /* Write CHARACTER to stderr.
 You can call print while debugging emacs, and pass it this function
@@ -2182,7 +2167,10 @@
 void
 init_print_once (void)
 {
+  /* The subroutine object for external-debugging-output is kept here
+     for the convenience of the debugger.  */
   DEFSYM (Qexternal_debugging_output, "external-debugging-output");
+
   defsubr (&Sexternal_debugging_output);
 }
 
@@ -2217,6 +2205,7 @@
 A value of nil means to use the shortest notation
 that represents the number without losing information.  */);
   Vfloat_output_format = Qnil;
+
   DEFSYM (Qfloat_output_format, "float-output-format");
 
   DEFVAR_LISP ("print-length", Vprint_length,

=== modified file 'src/process.c'
--- src/process.c	2013-11-06 18:41:31 +0000
+++ src/process.c	2013-11-12 22:28:24 +0000
@@ -171,12 +171,6 @@
 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 # pragma GCC diagnostic ignored "-Wstrict-overflow"
 #endif
-
-Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
-Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
-Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
-Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
-Lisp_Object QCname, QCtype;
 
 /* True if keyboard input is on hold, zero otherwise.  */
 
@@ -188,27 +182,6 @@
 
 #ifdef subprocesses
 
-Lisp_Object Qprocessp;
-static Lisp_Object Qrun, Qstop, Qsignal;
-static Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
-Lisp_Object Qlocal;
-static Lisp_Object Qipv4, Qdatagram, Qseqpacket;
-static Lisp_Object Qreal, Qnetwork, Qserial;
-#ifdef AF_INET6
-static Lisp_Object Qipv6;
-#endif
-static Lisp_Object QCport, QCprocess;
-Lisp_Object QCspeed;
-Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven;
-Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary;
-static Lisp_Object QCbuffer, QChost, QCservice;
-static Lisp_Object QClocal, QCremote, QCcoding;
-static Lisp_Object QCserver, QCnowait, QCnoquery, QCstop;
-static Lisp_Object QCsentinel, QClog, QCoptions, QCplist;
-static Lisp_Object Qlast_nonmenu_event;
-static Lisp_Object Qinternal_default_process_sentinel;
-static Lisp_Object Qinternal_default_process_filter;
-
 #define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork))
 #define NETCONN1_P(p) (EQ (p->type, Qnetwork))
 #define SERIALCONN_P(p) (EQ (XPROCESS (p)->type, Qserial))
@@ -7174,10 +7147,7 @@
   DEFSYM (Qsignal, "signal");
 
   /* Qexit is already staticpro'd by syms_of_eval; don't staticpro it
-     here again.
-
-     Qexit = intern_c_string ("exit");
-     staticpro (&Qexit); */
+     here again.  */
 
   DEFSYM (Qopen, "open");
   DEFSYM (Qclosed, "closed");

=== modified file 'src/process.h'
--- src/process.h	2013-10-17 06:42:21 +0000
+++ src/process.h	2013-11-12 22:28:24 +0000
@@ -194,15 +194,6 @@
    when exiting.  */
 extern bool inhibit_sentinels;
 
-extern Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname;
-extern Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime;
-extern Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
-extern Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime;
-extern Lisp_Object Qtime, Qctime;
-extern Lisp_Object QCspeed;
-extern Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven;
-extern Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary;
-
 /* Exit statuses for GNU programs that exec other programs.  */
 enum
 {

=== modified file 'src/profiler.c'
--- src/profiler.c	2013-08-27 18:47:55 +0000
+++ src/profiler.c	2013-11-12 22:28:24 +0000
@@ -35,7 +35,6 @@
 
 typedef struct Lisp_Hash_Table log_t;
 
-static Lisp_Object Qprofiler_backtrace_equal;
 static struct hash_table_test hashtest_profiler;
 
 static Lisp_Object

=== modified file 'src/search.c'
--- src/search.c	2013-11-11 16:37:54 +0000
+++ src/search.c	2013-11-12 22:28:24 +0000
@@ -84,12 +84,6 @@
    Qnil if no searching has been done yet.  */
 static Lisp_Object last_thing_searched;
 
-/* Error condition signaled when regexp compile_pattern fails.  */
-static Lisp_Object Qinvalid_regexp;
-
-/* Error condition used for failing searches.  */
-static Lisp_Object Qsearch_failed;
-
 static void set_search_regs (ptrdiff_t, ptrdiff_t);
 static void save_search_regs (void);
 static EMACS_INT simple_search (EMACS_INT, unsigned char *, ptrdiff_t,
@@ -3025,7 +3019,10 @@
     }
   searchbuf_head = &searchbufs[0];
 
+  /* Error condition used for failing searches.  */
   DEFSYM (Qsearch_failed, "search-failed");
+
+  /* Error condition signaled when regexp compile_pattern fails.  */
   DEFSYM (Qinvalid_regexp, "invalid-regexp");
 
   Fput (Qsearch_failed, Qerror_conditions,

=== modified file 'src/sound.c'
--- src/sound.c	2013-10-04 07:36:22 +0000
+++ src/sound.c	2013-11-12 22:28:24 +0000
@@ -94,12 +94,6 @@
 
 /* BEGIN: Common Definitions */
 
-/* Symbols.  */
-
-static Lisp_Object QCvolume, QCdevice;
-static Lisp_Object Qsound;
-static Lisp_Object Qplay_sound_functions;
-
 /* Indices of attributes in a sound attributes vector.  */
 
 enum sound_attr

=== modified file 'src/syntax.c'
--- src/syntax.c	2013-09-22 06:22:05 +0000
+++ src/syntax.c	2013-11-12 22:28:24 +0000
@@ -137,9 +137,6 @@
     ST_STRING_STYLE = 256 + 2
   };
 
-static Lisp_Object Qsyntax_table_p;
-static Lisp_Object Qsyntax_table, Qscan_error;
-
 /* This is the internal form of the parse state used in parse-partial-sexp.  */
 
 struct lisp_parse_state

=== modified file 'src/term.c'
--- src/term.c	2013-11-06 00:14:56 +0000
+++ src/term.c	2013-11-12 22:28:24 +0000
@@ -2768,12 +2768,6 @@
    last menu help message.  */
 static int menu_help_paneno, menu_help_itemno;
 
-static Lisp_Object Qtty_menu_navigation_map, Qtty_menu_exit;
-static Lisp_Object Qtty_menu_prev_item, Qtty_menu_next_item;
-static Lisp_Object Qtty_menu_next_menu, Qtty_menu_prev_menu;
-static Lisp_Object Qtty_menu_select, Qtty_menu_ignore;
-static Lisp_Object Qtty_menu_mouse_movement;
-
 typedef struct tty_menu_struct
 {
   int count;

=== modified file 'src/terminal.c'
--- src/terminal.c	2013-09-20 15:34:36 +0000
+++ src/terminal.c	2013-11-12 22:28:24 +0000
@@ -37,8 +37,6 @@
 /* The initial terminal device, created by initial_term_init. */
 struct terminal *initial_terminal;
 
-static Lisp_Object Qterminal_live_p;
-
 static void delete_initial_terminal (struct terminal *);
 
 /* This setter is used only in this file, so it can be private.  */
@@ -308,8 +306,6 @@
     }
 }
 
-Lisp_Object Qrun_hook_with_args;
-static Lisp_Object Qdelete_terminal_functions;
 DEFUN ("delete-terminal", Fdelete_terminal, Sdelete_terminal, 0, 2, 0,
        doc: /* Delete TERMINAL by deleting all frames on it and closing the terminal.
 TERMINAL may be a terminal object, a frame, or nil (meaning the

=== modified file 'src/textprop.c'
--- src/textprop.c	2013-08-06 05:30:18 +0000
+++ src/textprop.c	2013-11-12 22:28:24 +0000
@@ -44,21 +44,6 @@
   is enforced by the subrs installing properties onto the intervals.  */
 
 
-/* Types of hooks.  */
-static Lisp_Object Qmouse_left;
-static Lisp_Object Qmouse_entered;
-Lisp_Object Qpoint_left;
-Lisp_Object Qpoint_entered;
-Lisp_Object Qcategory;
-Lisp_Object Qlocal_map;
-
-/* Visual properties text (including strings) may have.  */
-static Lisp_Object Qforeground, Qbackground, Qunderline;
-Lisp_Object Qfont;
-static Lisp_Object Qstipple;
-Lisp_Object Qinvisible, Qintangible, Qmouse_face;
-static Lisp_Object Qread_only;
-Lisp_Object Qminibuffer_prompt;
 
 enum property_set_type
 {
@@ -67,9 +52,6 @@
   TEXT_PROPERTY_APPEND
 };
 
-/* Sticky properties.  */
-Lisp_Object Qfront_sticky, Qrear_nonsticky;
-
 /* If o1 is a cons whose cdr is a cons, return non-zero and set o2 to
    the o1's cdr.  Otherwise, return zero.  This is handy for
    traversing plists.  */
@@ -2355,7 +2337,7 @@
   interval_insert_in_front_hooks = Qnil;

-  /* Common attributes one might give text */
+  /* Common attributes one might give text.  */
 
   DEFSYM (Qforeground, "foreground");
   DEFSYM (Qbackground, "background");
@@ -2373,7 +2355,7 @@
   DEFSYM (Qmouse_face, "mouse-face");
   DEFSYM (Qminibuffer_prompt, "minibuffer-prompt");
 
-  /* Properties that text might use to specify certain actions */
+  /* Properties that text might use to specify certain actions.  */
 
   DEFSYM (Qmouse_left, "mouse-left");
   DEFSYM (Qmouse_entered, "mouse-entered");

=== modified file 'src/undo.c'
--- src/undo.c	2013-07-10 06:26:23 +0000
+++ src/undo.c	2013-11-12 22:28:24 +0000
@@ -34,12 +34,6 @@
 static struct buffer *last_boundary_buffer;
 static ptrdiff_t last_boundary_position;
 
-Lisp_Object Qinhibit_read_only;
-
-/* Marker for function call undo list elements.  */
-
-Lisp_Object Qapply;
-
 /* The first time a command records something for undo.
    it also allocates the undo-boundary object
    which will be added to the list at the end of the command.
@@ -449,6 +443,8 @@
 syms_of_undo (void)
 {
   DEFSYM (Qinhibit_read_only, "inhibit-read-only");
+
+  /* Marker for function call undo list elements.  */
   DEFSYM (Qapply, "apply");
 
   pending_boundary = Qnil;

=== modified file 'src/window.c'
--- src/window.c	2013-11-06 18:41:31 +0000
+++ src/window.c	2013-11-12 22:28:24 +0000
@@ -44,16 +44,6 @@
 #include "msdos.h"
 #endif
 
-Lisp_Object Qwindowp, Qwindow_live_p;
-static Lisp_Object Qwindow_valid_p;
-static Lisp_Object Qwindow_configuration_p;
-static Lisp_Object Qrecord_window_buffer;
-static Lisp_Object Qwindow_deletable_p, Qdelete_window, Qdisplay_buffer;
-static Lisp_Object Qreplace_buffer_in_windows, Qget_mru_window;
-static Lisp_Object Qwindow_resize_root_window, Qwindow_resize_root_window_vertically;
-static Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command;
-static Lisp_Object Qsafe, Qabove, Qbelow, Qwindow_size, Qclone_of;
-
 static int displayed_window_lines (struct window *);
 static int count_windows (struct window *);
 static int get_leaf_windows (struct window *, struct window **, int);
@@ -110,15 +100,9 @@
    shown as the selected window when the minibuffer is selected.  */
 Lisp_Object minibuf_selected_window;
 
-/* Hook run at end of temp_output_buffer_show.  */
-static Lisp_Object Qtemp_buffer_show_hook;
-
 /* Nonzero after init_window_once has finished.  */
 static int window_initialized;
 
-/* Hook to run when window config changes.  */
-static Lisp_Object Qwindow_configuration_change_hook;
-
 /* Used by the function window_scroll_pixel_based */
 static int window_scroll_pixel_based_preserve_x;
 static int window_scroll_pixel_based_preserve_y;
@@ -6546,7 +6530,9 @@
   Fput (Qscroll_up, Qscroll_command, Qt);
   Fput (Qscroll_down, Qscroll_command, Qt);
 
+  /* Hook to run when window config changes.  */
   DEFSYM (Qwindow_configuration_change_hook, "window-configuration-change-hook");
+
   DEFSYM (Qwindowp, "windowp");
   DEFSYM (Qwindow_configuration_p, "window-configuration-p");
   DEFSYM (Qwindow_live_p, "window-live-p");
@@ -6561,7 +6547,10 @@
   DEFSYM (Qrecord_window_buffer, "record-window-buffer");
   DEFSYM (Qget_mru_window, "get-mru-window");
   DEFSYM (Qwindow_size, "window-size");
+
+  /* Hook run at end of temp_output_buffer_show.  */
   DEFSYM (Qtemp_buffer_show_hook, "temp-buffer-show-hook");
+
   DEFSYM (Qabove, "above");
   DEFSYM (Qbelow, "below");
   DEFSYM (Qclone_of, "clone-of");

=== modified file 'src/window.h'
--- src/window.h	2013-10-29 16:11:50 +0000
+++ src/window.h	2013-11-12 22:28:24 +0000
@@ -939,7 +939,6 @@
 
 /* These used to be in lisp.h.  */
 
-extern Lisp_Object Qwindow_live_p;
 extern Lisp_Object Vwindow_list;
 
 extern struct window *decode_live_window (Lisp_Object);

=== modified file 'src/xdisp.c'
--- src/xdisp.c	2013-11-08 10:21:35 +0000
+++ src/xdisp.c	2013-11-12 22:28:24 +0000
@@ -308,52 +308,9 @@
 
 #define INFINITY 10000000
 
-Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
-Lisp_Object Qwindow_scroll_functions;
-static Lisp_Object Qwindow_text_change_functions;
-static Lisp_Object Qredisplay_end_trigger_functions;
-Lisp_Object Qinhibit_point_motion_hooks;
-static Lisp_Object QCeval, QCpropertize;
-Lisp_Object QCfile, QCdata;
-static Lisp_Object Qfontified;
-static Lisp_Object Qgrow_only;
-static Lisp_Object Qinhibit_eval_during_redisplay;
-static Lisp_Object Qbuffer_position, Qposition, Qobject;
-static Lisp_Object Qright_to_left, Qleft_to_right;
-
-/* Cursor shapes.  */
-Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
-
-/* Pointer shapes.  */
-static Lisp_Object Qarrow, Qhand;
-Lisp_Object Qtext;
-
 /* Holds the list (error).  */
 static Lisp_Object list_of_error;
 
-static Lisp_Object Qfontification_functions;
-
-static Lisp_Object Qwrap_prefix;
-static Lisp_Object Qline_prefix;
-static Lisp_Object Qredisplay_internal;
-
-/* Non-nil means don't actually do any redisplay.  */
-
-Lisp_Object Qinhibit_redisplay;
-
-/* Names of text properties relevant for redisplay.  */
-
-Lisp_Object Qdisplay;
-
-Lisp_Object Qspace, QCalign_to;
-static Lisp_Object QCrelative_width, QCrelative_height;
-Lisp_Object Qleft_margin, Qright_margin;
-static Lisp_Object Qspace_width, Qraise;
-static Lisp_Object Qslice;
-Lisp_Object Qcenter;
-static Lisp_Object Qmargin, Qpointer;
-static Lisp_Object Qline_height;
-
 #ifdef HAVE_WINDOW_SYSTEM
 
 /* Test if overflow newline into fringe.  Called with iterator IT
@@ -387,31 +344,6 @@
 	   && (*BYTE_POS_ADDR (IT_BYTEPOS (*it)) == ' '			\
 	       || *BYTE_POS_ADDR (IT_BYTEPOS (*it)) == '\t'))))		\
 
-/* Name of the face used to highlight trailing whitespace.  */
-
-static Lisp_Object Qtrailing_whitespace;
-
-/* Name and number of the face used to highlight escape glyphs.  */
-
-static Lisp_Object Qescape_glyph;
-
-/* Name and number of the face used to highlight non-breaking spaces.  */
-
-static Lisp_Object Qnobreak_space;
-
-/* The symbol `image' which is the car of the lists used to represent
-   images in Lisp.  Also a tool bar style.  */
-
-Lisp_Object Qimage;
-
-/* The image map types.  */
-Lisp_Object QCmap;
-static Lisp_Object QCpointer;
-static Lisp_Object Qrect, Qcircle, Qpoly;
-
-/* Tool bar styles */
-Lisp_Object Qboth, Qboth_horiz, Qtext_image_horiz;
-
 /* Non-zero means print newline to stdout before next mini-buffer
    message.  */
 
@@ -461,21 +393,6 @@
 
 static struct buffer *this_line_buffer;
 
-
-/* Values of those variables at last redisplay are stored as
-   properties on `overlay-arrow-position' symbol.  However, if
-   Voverlay_arrow_position is a marker, last-arrow-position is its
-   numerical position.  */
-
-static Lisp_Object Qlast_arrow_position, Qlast_arrow_string;
-
-/* Alternative overlay-arrow-string and overlay-arrow-bitmap
-   properties on a symbol in overlay-arrow-variable-list.  */
-
-static Lisp_Object Qoverlay_arrow_string, Qoverlay_arrow_bitmap;
-
-Lisp_Object Qmenu_bar_update_hook;
-
 /* Nonzero if an overlay arrow has been displayed in this window.  */
 
 static bool overlay_arrow_seen;
@@ -543,11 +460,6 @@
 
 static bool message_buf_print;
 
-/* The symbol `inhibit-menubar-update' and its DEFVAR_BOOL variable.  */
-
-static Lisp_Object Qinhibit_menubar_update;
-static Lisp_Object Qmessage_truncate_lines;
-
 /* Set to 1 in clear_message to make redisplay_internal aware
    of an emptied echo area.  */
 
@@ -617,8 +529,6 @@
 #define TRACE_MOVE(x)	(void) 0
 #endif
 
-static Lisp_Object Qauto_hscroll_mode;
-
 /* Buffer being redisplayed -- for redisplay_window_error.  */
 
 static struct buffer *displayed_buffer;
@@ -722,9 +632,6 @@
 
 bool redisplaying_p;
 
-static Lisp_Object Qinhibit_free_realized_faces;
-static Lisp_Object Qmode_line_default_help_echo;
-
 /* If a string, XTread_socket generates an event to display that string.
    (The display is done in read_char.)  */
 
@@ -750,15 +657,6 @@
 
 #endif /* HAVE_WINDOW_SYSTEM */
 
-/* Name of the face used to display glyphless characters.  */
-static Lisp_Object Qglyphless_char;
-
-/* Symbol for the purpose of Vglyphless_char_display.  */
-static Lisp_Object Qglyphless_char_display;
-
-/* Method symbols for Vglyphless_char_display.  */
-static Lisp_Object Qhex_code, Qempty_box, Qthin_space, Qzero_width;
-
 /* Default number of seconds to wait before displaying an hourglass
    cursor.  */
 #define DEFAULT_HOURGLASS_DELAY 1
@@ -2514,8 +2412,6 @@
   return safe_call (2, fn, arg);
 }
 
-static Lisp_Object Qeval;
-
 Lisp_Object
 safe_eval (Lisp_Object sexpr)
 {
@@ -29135,7 +29031,9 @@
   Vmessage_stack = Qnil;
   staticpro (&Vmessage_stack);
 
+  /* Non-nil means don't actually do any redisplay.  */
   DEFSYM (Qinhibit_redisplay, "inhibit-redisplay");
+
   DEFSYM (Qredisplay_internal, "redisplay_internal (C function)");
 
   message_dolog_marker1 = Fmake_marker ();
@@ -29172,6 +29070,8 @@
   DEFSYM (Qinhibit_point_motion_hooks, "inhibit-point-motion-hooks");
   DEFSYM (Qeval, "eval");
   DEFSYM (QCdata, ":data");
+
+  /* Names of text properties relevant for redisplay.  */
   DEFSYM (Qdisplay, "display");
   DEFSYM (Qspace_width, "space-width");
   DEFSYM (Qraise, "raise");
@@ -29191,19 +29091,33 @@
   DEFSYM (QCfile, ":file");
   DEFSYM (Qfontified, "fontified");
   DEFSYM (Qfontification_functions, "fontification-functions");
+
+  /* Name of the face used to highlight trailing whitespace.  */
   DEFSYM (Qtrailing_whitespace, "trailing-whitespace");
+
+  /* Name and number of the face used to highlight escape glyphs.  */
   DEFSYM (Qescape_glyph, "escape-glyph");
+
+  /* Name and number of the face used to highlight non-breaking spaces.  */
   DEFSYM (Qnobreak_space, "nobreak-space");
+
+  /* The symbol `image' which is the car of the lists used to represent
+     images in Lisp.  Also a tool bar style.  */
   DEFSYM (Qimage, "image");
+
+  /* Tool bar styles.  */
   DEFSYM (Qtext, "text");
   DEFSYM (Qboth, "both");
   DEFSYM (Qboth_horiz, "both-horiz");
   DEFSYM (Qtext_image_horiz, "text-image-horiz");
+
+  /* The image map types.  */
   DEFSYM (QCmap, ":map");
   DEFSYM (QCpointer, ":pointer");
   DEFSYM (Qrect, "rect");
   DEFSYM (Qcircle, "circle");
   DEFSYM (Qpoly, "poly");
+
   DEFSYM (Qmessage_truncate_lines, "message-truncate-lines");
   DEFSYM (Qgrow_only, "grow-only");
   DEFSYM (Qinhibit_menubar_update, "inhibit-menubar-update");
@@ -29211,20 +29125,33 @@
   DEFSYM (Qposition, "position");
   DEFSYM (Qbuffer_position, "buffer-position");
   DEFSYM (Qobject, "object");
+
+  /* Cursor shapes.  */
   DEFSYM (Qbar, "bar");
   DEFSYM (Qhbar, "hbar");
   DEFSYM (Qbox, "box");
   DEFSYM (Qhollow, "hollow");
+
+  /* Pointer shapes.  */
   DEFSYM (Qhand, "hand");
   DEFSYM (Qarrow, "arrow");
+  /* also Qtext */
+
   DEFSYM (Qinhibit_free_realized_faces, "inhibit-free-realized-faces");
 
   list_of_error = list1 (list2 (intern_c_string ("error"),
 				intern_c_string ("void-variable")));
   staticpro (&list_of_error);
 
+  /* Values of those variables at last redisplay are stored as
+     properties on `overlay-arrow-position' symbol.  However, if
+     Voverlay_arrow_position is a marker, last-arrow-position is its
+     numerical position.  */
   DEFSYM (Qlast_arrow_position, "last-arrow-position");
   DEFSYM (Qlast_arrow_string, "last-arrow-string");
+
+  /* Alternative overlay-arrow-string and overlay-arrow-bitmap
+     properties on a symbol in overlay-arrow-variable-list.  */
   DEFSYM (Qoverlay_arrow_string, "overlay-arrow-string");
   DEFSYM (Qoverlay_arrow_bitmap, "overlay-arrow-bitmap");
 
@@ -29713,7 +29640,10 @@
   hourglass_shown_p = 0;
 #endif /* HAVE_WINDOW_SYSTEM */
 
+  /* Name of the face used to display glyphless characters.  */
   DEFSYM (Qglyphless_char, "glyphless-char");
+
+  /* Method symbols for Vglyphless_char_display.  */
   DEFSYM (Qhex_code, "hex-code");
   DEFSYM (Qempty_box, "empty-box");
   DEFSYM (Qthin_space, "thin-space");
@@ -29726,6 +29656,7 @@
 or t (meaning all windows).  */);
   Vpre_redisplay_function = intern ("ignore");
 
+  /* Symbol for the purpose of Vglyphless_char_display.  */
   DEFSYM (Qglyphless_char_display, "glyphless-char-display");
   Fput (Qglyphless_char_display, Qchar_table_extra_slots, make_number (1));

=== modified file 'src/xfaces.c'
--- src/xfaces.c	2013-11-08 17:26:03 +0000
+++ src/xfaces.c	2013-11-12 22:28:24 +0000
@@ -282,54 +282,8 @@
 
 #define FACE_CACHE_BUCKETS_SIZE 1001
 
-/* Keyword symbols used for face attribute names.  */
-
-Lisp_Object QCfamily, QCheight, QCweight, QCslant;
-static Lisp_Object QCunderline;
-static Lisp_Object QCinverse_video, QCstipple;
-Lisp_Object QCforeground, QCbackground;
-Lisp_Object QCwidth;
-static Lisp_Object QCfont, QCbold, QCitalic;
-static Lisp_Object QCreverse_video;
-static Lisp_Object QCoverline, QCstrike_through, QCbox, QCinherit;
-static Lisp_Object QCfontset, QCdistant_foreground;
-
-/* Symbols used for attribute values.  */
-
-Lisp_Object Qnormal;
-Lisp_Object Qbold;
-static Lisp_Object Qline, Qwave;
-Lisp_Object Qextra_light, Qlight;
-Lisp_Object Qsemi_light, Qsemi_bold, Qextra_bold, Qultra_bold;
-Lisp_Object Qoblique;
-Lisp_Object Qitalic;
-static Lisp_Object Qreleased_button, Qpressed_button;
-static Lisp_Object QCstyle, QCcolor, QCline_width;
-Lisp_Object Qunspecified;	/* used in dosfns.c */
-static Lisp_Object QCignore_defface;
-
 char unspecified_fg[] = "unspecified-fg", unspecified_bg[] = "unspecified-bg";
 
-/* The name of the function to call when the background of the frame
-   has changed, frame_set_background_mode.  */
-
-static Lisp_Object Qframe_set_background_mode;
-
-/* Names of basic faces.  */
-
-Lisp_Object Qdefault, Qtool_bar, Qfringe;
-static Lisp_Object Qregion;
-Lisp_Object Qheader_line, Qscroll_bar, Qcursor;
-static Lisp_Object Qborder, Qmouse, Qmenu;
-Lisp_Object Qmode_line_inactive;
-static Lisp_Object Qvertical_border;
-
-/* The symbol `face-alias'.  A symbols having that property is an
-   alias for another face.  Value of the property is the name of
-   the aliased face.  */
-
-static Lisp_Object Qface_alias;
-
 /* Alist of alternative font families.  Each element is of the form
    (FAMILY FAMILY1 FAMILY2 ...).  If fonts of FAMILY can't be loaded,
    try FAMILY1, then FAMILY2, ...  */
@@ -342,32 +296,6 @@
 
 Lisp_Object Vface_alternative_font_registry_alist;
 
-/* Allowed scalable fonts.  A value of nil means don't allow any
-   scalable fonts.  A value of t means allow the use of any scalable
-   font.  Otherwise, value must be a list of regular expressions.  A
-   font may be scaled if its name matches a regular expression in the
-   list.  */
-
-static Lisp_Object Qscalable_fonts_allowed;
-
-/* The symbols `foreground-color' and `background-color' which can be
-   used as part of a `face' property.  This is for compatibility with
-   Emacs 20.2.  */
-
-Lisp_Object Qforeground_color, Qbackground_color;
-
-/* The symbols `face' and `mouse-face' used as text properties.  */
-
-Lisp_Object Qface;
-
-/* Property for basic faces which other faces cannot inherit.  */
-
-static Lisp_Object Qface_no_inherit;
-
-/* Error symbol for wrong_type_argument in load_pixmap.  */
-
-static Lisp_Object Qbitmap_spec_p;
-
 /* The next ID to assign to Lisp faces.  */
 
 static int next_lface_id;
@@ -377,14 +305,6 @@
 static Lisp_Object *lface_id_to_name;
 static ptrdiff_t lface_id_to_name_size;
 
-/* TTY color-related functions (defined in tty-colors.el).  */
-
-static Lisp_Object Qtty_color_desc, Qtty_color_by_index, Qtty_color_standard_values;
-
-/* The name of the function used to compute colors on TTYs.  */
-
-static Lisp_Object Qtty_color_alist;
-
 #ifdef HAVE_WINDOW_SYSTEM
 
 /* Counter for calls to clear_face_cache.  If this counter reaches
@@ -6385,9 +6305,17 @@
 void
 syms_of_xfaces (void)
 {
+  /* The symbols `face' and `mouse-face' used as text properties.  */
   DEFSYM (Qface, "face");
+
+  /* Property for basic faces which other faces cannot inherit.  */
   DEFSYM (Qface_no_inherit, "face-no-inherit");
+
+  /* Error symbol for wrong_type_argument in load_pixmap.  */
   DEFSYM (Qbitmap_spec_p, "bitmap-spec-p");
+
+  /* The name of the function to call when the background of the frame
+     has changed, frame_set_background_mode.  */
   DEFSYM (Qframe_set_background_mode, "frame-set-background-mode");
 
   /* Lisp face attribute keywords.  */
@@ -6430,12 +6358,22 @@
   DEFSYM (Qultra_bold, "ultra-bold");
   DEFSYM (Qoblique, "oblique");
   DEFSYM (Qitalic, "italic");
+
+  /* The symbols `foreground-color' and `background-color' which can be
+     used as part of a `face' property.  This is for compatibility with
+     Emacs 20.2.  */
   DEFSYM (Qbackground_color, "background-color");
   DEFSYM (Qforeground_color, "foreground-color");
+
   DEFSYM (Qunspecified, "unspecified");
   DEFSYM (QCignore_defface, ":ignore-defface");
 
+  /* The symbol `face-alias'.  A symbols having that property is an
+     alias for another face.  Value of the property is the name of
+     the aliased face.  */
   DEFSYM (Qface_alias, "face-alias");
+
+  /* Names of basic faces.  */
   DEFSYM (Qdefault, "default");
   DEFSYM (Qtool_bar, "tool-bar");
   DEFSYM (Qregion, "region");
@@ -6448,10 +6386,20 @@
   DEFSYM (Qmouse, "mouse");
   DEFSYM (Qmode_line_inactive, "mode-line-inactive");
   DEFSYM (Qvertical_border, "vertical-border");
+
+  /* TTY color-related functions (defined in tty-colors.el).  */
   DEFSYM (Qtty_color_desc, "tty-color-desc");
   DEFSYM (Qtty_color_standard_values, "tty-color-standard-values");
   DEFSYM (Qtty_color_by_index, "tty-color-by-index");
+
+  /* The name of the function used to compute colors on TTYs.  */
   DEFSYM (Qtty_color_alist, "tty-color-alist");
+
+  /* Allowed scalable fonts.  A value of nil means don't allow any
+     scalable fonts.  A value of t means allow the use of any scalable
+     font.  Otherwise, value must be a list of regular expressions.  A
+     font may be scaled if its name matches a regular expression in the
+     list.  */
   DEFSYM (Qscalable_fonts_allowed, "scalable-fonts-allowed");
 
   Vparam_value_alist = list1 (Fcons (Qnil, Qnil));

=== modified file 'src/xfns.c'
--- src/xfns.c	2013-11-06 18:41:31 +0000
+++ src/xfns.c	2013-11-12 22:28:24 +0000
@@ -112,23 +112,10 @@
 
 extern LWLIB_ID widget_id_tick;
 
-#ifdef USE_MOTIF
-
-#endif /* USE_MOTIF */
-
 #endif /* USE_X_TOOLKIT */
 
-#ifdef USE_GTK
-
-#endif /* USE_GTK */
-
 #define MAXREQUEST(dpy) (XMaxRequestSize (dpy))
 
-static Lisp_Object Qsuppress_icon;
-static Lisp_Object Qundefined_color;
-static Lisp_Object Qcompound_text, Qcancel_timer;
-Lisp_Object Qfont_param;
-
 #ifdef GLYPH_DEBUG
 static ptrdiff_t image_cache_refcount;
 static int dpyinfo_refcount;
@@ -640,6 +627,7 @@
     cursor = XCreateFontCursor (dpy, XC_xterm);
   x_check_errors (dpy, "bad text pointer cursor: %s");
 
+#if 0
   if (!NILP (Vx_nontext_pointer_shape))
     {
       CHECK_NUMBER (Vx_nontext_pointer_shape);
@@ -647,6 +635,7 @@
 	= XCreateFontCursor (dpy, XINT (Vx_nontext_pointer_shape));
     }
   else
+#endif
     nontext_cursor = XCreateFontCursor (dpy, XC_left_ptr);
   x_check_errors (dpy, "bad nontext pointer cursor: %s");
 
@@ -660,12 +649,14 @@
     hourglass_cursor = XCreateFontCursor (dpy, XC_watch);
   x_check_errors (dpy, "bad hourglass pointer cursor: %s");
 
+#if 0
   if (!NILP (Vx_mode_pointer_shape))
     {
       CHECK_NUMBER (Vx_mode_pointer_shape);
       mode_cursor = XCreateFontCursor (dpy, XINT (Vx_mode_pointer_shape));
     }
   else
+#endif
     mode_cursor = XCreateFontCursor (dpy, XC_xterm);
   x_check_errors (dpy, "bad modeline pointer cursor: %s");
 
@@ -6010,8 +6001,8 @@
     doc: /* The shape of the pointer when not over text.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
-#endif
   Vx_nontext_pointer_shape = Qnil;
+#endif
 
   DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape,
     doc: /* The shape of the pointer when Emacs is busy.
@@ -6024,8 +6015,8 @@
     doc: /* The shape of the pointer when over the mode line.
 This variable takes effect when you create a new frame
 or when you set the mouse color.  */);
-#endif
   Vx_mode_pointer_shape = Qnil;
+#endif
 
   DEFVAR_LISP ("x-sensitive-text-pointer-shape",
 	      Vx_sensitive_text_pointer_shape,

=== modified file 'src/xftfont.c'
--- src/xftfont.c	2013-10-27 05:30:34 +0000
+++ src/xftfont.c	2013-11-12 22:28:24 +0000
@@ -38,9 +38,6 @@
 
 /* Xft font driver.  */
 
-Lisp_Object Qxft;
-static Lisp_Object QChinting, QCautohint, QChintstyle, QCrgba, QCembolden,
-  QClcdfilter;
 
 /* The actual structure for Xft font that can be casted to struct
    font.  */

=== modified file 'src/xmenu.c'
--- src/xmenu.c	2013-11-04 06:09:03 +0000
+++ src/xmenu.c	2013-11-12 22:28:24 +0000
@@ -108,8 +108,6 @@
 #define TRUE 1
 #endif /* no TRUE */
 
-static Lisp_Object Qdebug_on_next_call;
-
 #if defined (USE_X_TOOLKIT) || defined (USE_GTK)
 static Lisp_Object xdialog_show (struct frame *, bool, Lisp_Object, Lisp_Object,
                                  const char **);

=== modified file 'src/xml.c'
--- src/xml.c	2013-07-16 06:39:49 +0000
+++ src/xml.c	2013-11-12 22:28:24 +0000
@@ -29,8 +29,6 @@
 #include "buffer.h"
 
 
-static Lisp_Object Qlibxml2_dll;
-
 #ifdef WINDOWSNT
 
 #include <windows.h>

=== modified file 'src/xselect.c'
--- src/xselect.c	2013-11-05 22:45:44 +0000
+++ src/xselect.c	2013-11-12 22:28:24 +0000
@@ -80,19 +80,6 @@
 #define TRACE2(fmt, a0, a1)	(void) 0
 #endif
 
-
-static Lisp_Object QSECONDARY, QSTRING, QINTEGER, QCLIPBOARD, QTIMESTAMP,
-  QTEXT, QDELETE, QMULTIPLE, QINCR, QEMACS_TMP, QTARGETS, QATOM, QNULL,
-  QATOM_PAIR, QCLIPBOARD_MANAGER, QSAVE_TARGETS;
-
-static Lisp_Object QCOMPOUND_TEXT;	/* This is a type of selection.  */
-static Lisp_Object QUTF8_STRING;	/* This is a type of selection.  */
-
-static Lisp_Object Qcompound_text_with_extensions;
-
-static Lisp_Object Qforeign_selection;
-static Lisp_Object Qx_lost_selection_functions, Qx_sent_selection_functions;
-
 /* Bytes needed to represent 'long' data.  This is as per libX11; it
    is not necessarily sizeof (long).  */
 #define X_LONG_SIZE 4
@@ -2742,8 +2729,11 @@
   DEFSYM (QCLIPBOARD, "CLIPBOARD");
   DEFSYM (QTIMESTAMP, "TIMESTAMP");
   DEFSYM (QTEXT, "TEXT");
+
+  /* These are types of selection.  */
   DEFSYM (QCOMPOUND_TEXT, "COMPOUND_TEXT");
   DEFSYM (QUTF8_STRING, "UTF8_STRING");
+
   DEFSYM (QDELETE, "DELETE");
   DEFSYM (QMULTIPLE, "MULTIPLE");
   DEFSYM (QINCR, "INCR");

=== modified file 'src/xsettings.c'
--- src/xsettings.c	2013-10-29 16:08:08 +0000
+++ src/xsettings.c	2013-11-12 22:28:24 +0000
@@ -51,8 +51,6 @@
 static char *current_mono_font;
 static char *current_font;
 static struct x_display_info *first_dpyinfo;
-static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render,
-  Qtool_bar_style;
 static Lisp_Object current_tool_bar_style;
 
 /* Store an config changed event in to the event queue.  */

=== modified file 'src/xterm.c'
--- src/xterm.c	2013-11-12 06:07:37 +0000
+++ src/xterm.c	2013-11-12 22:28:24 +0000
@@ -174,17 +174,9 @@
 
 static int x_noop_count;
 
-static Lisp_Object Qalt, Qhyper, Qmeta, Qsuper, Qmodifier_value;
-
-static Lisp_Object Qvendor_specific_keysyms;
-static Lisp_Object Qlatin_1;
-
 #ifdef USE_GTK
 /* The name of the Emacs icon file.  */
 static Lisp_Object xg_default_icon_file;
-
-/* Used in gtkutil.c.  */
-Lisp_Object Qx_gtk_map_stock;
 #endif
 
 /* Some functions take this as char *, not const char *.  */

=== modified file 'src/xterm.h'
--- src/xterm.h	2013-10-29 05:55:25 +0000
+++ src/xterm.h	2013-11-12 22:28:24 +0000
@@ -1053,9 +1053,6 @@
 extern void x_session_close (void);
 #endif
 
-/* Defined in xterm.c */
-
-extern Lisp_Object Qx_gtk_map_stock;
 
 /* Is the frame embedded into another application? */