changeset 105870:26baacb565b0

* textmodes/tex-mode.el (tex-alt-dvi-print-command) (tex-dvi-print-command, tex-bibtex-command, tex-start-commands) (tex-start-options, slitex-run-command, latex-run-command) (tex-run-command, tex-directory): * textmodes/ispell.el (ispell-html-skip-alists) (ispell-tex-skip-alists, ispell-tex-skip-alists): * textmodes/fill.el (adaptive-fill-first-line-regexp): (adaptive-fill-regexp): * textmodes/dns-mode.el (auto-mode-alist): * progmodes/python.el (interpreter-mode-alist): * progmodes/etags.el (tags-compression-info-list): * progmodes/etags.el (tags-file-name): * net/browse-url.el (browse-url-galeon-program) (browse-url-firefox-program): * mail/sendmail.el (mail-signature-file) (mail-citation-prefix-regexp): * international/mule-conf.el (eight-bit): * international/latexenc.el (latex-inputenc-coding-alist): * international/fontset.el (x-pixel-size-width-font-regexp): * emacs-lisp/warnings.el (warning-type-format): * emacs-lisp/trace.el (trace-buffer): * emacs-lisp/lisp-mode.el (lisp-interaction-mode-map) (emacs-lisp-mode-map): * calendar/holidays.el (holiday-solar-holidays) (holiday-bahai-holidays, holiday-islamic-holidays) (holiday-christian-holidays, holiday-hebrew-holidays) (hebrew-holidays-4, hebrew-holidays-3, hebrew-holidays-2) (hebrew-holidays-1, holiday-oriental-holidays) (holiday-general-holidays): * x-dnd.el (x-dnd-known-types): * tool-bar.el (tool-bar): * startup.el (site-run-file): * shell.el (shell-dumb-shell-regexp): * rfn-eshadow.el (file-name-shadow-tty-properties) (file-name-shadow-properties): * paths.el (remote-shell-program, news-directory): * mouse.el ([C-down-mouse-3]): * menu-bar.el (menu-bar-tools-menu): * jka-cmpr-hook.el (jka-compr-load-suffixes) (jka-compr-mode-alist-additions, jka-compr-compression-info-list) (jka-compr-compression-info-list): * isearch.el (search-whitespace-regexp): * image-file.el (image-file-name-extensions): * find-dired.el (find-ls-option): * files.el (directory-listing-before-filename-regexp) (directory-free-space-args, insert-directory-program) (list-directory-brief-switches, magic-fallback-mode-alist) (magic-fallback-mode-alist, auto-mode-interpreter-regexp) (automount-dir-prefix): * faces.el (face-x-resources, x-font-regexp, x-font-regexp-head) (x-font-regexp-slant, x-font-regexp-weight, face-x-resources) (face-font-registry-alternatives, face-font-registry-alternatives) (face-font-family-alternatives): * facemenu.el (facemenu-add-new-face, facemenu-background-menu) (facemenu-foreground-menu, facemenu-face-menu): * epa-hook.el (epa-file-name-regexp): * dnd.el (dnd-protocol-alist): * textmodes/rst.el (auto-mode-alist): * button.el (default-button): Purecopy strings.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 06 Nov 2009 05:16:23 +0000
parents 95beb2b6cd0e
children 1fa408e42f53
files lisp/ChangeLog lisp/button.el lisp/calendar/holidays.el lisp/dnd.el lisp/emacs-lisp/byte-run.el lisp/emacs-lisp/lisp-mode.el lisp/emacs-lisp/trace.el lisp/emacs-lisp/warnings.el lisp/epa-hook.el lisp/facemenu.el lisp/faces.el lisp/files.el lisp/find-dired.el lisp/image-file.el lisp/international/fontset.el lisp/international/latexenc.el lisp/international/mule-conf.el lisp/isearch.el lisp/jka-cmpr-hook.el lisp/mail/sendmail.el lisp/menu-bar.el lisp/mouse.el lisp/net/browse-url.el lisp/paths.el lisp/progmodes/etags.el lisp/progmodes/python.el lisp/rfn-eshadow.el lisp/shell.el lisp/startup.el lisp/textmodes/dns-mode.el lisp/textmodes/fill.el lisp/textmodes/ispell.el lisp/textmodes/rst.el lisp/textmodes/tex-mode.el lisp/tool-bar.el lisp/x-dnd.el
diffstat 36 files changed, 188 insertions(+), 100 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/ChangeLog	Fri Nov 06 05:16:23 2009 +0000
@@ -1,3 +1,65 @@
+2009-11-05  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* textmodes/tex-mode.el (tex-alt-dvi-print-command)
+	(tex-dvi-print-command, tex-bibtex-command, tex-start-commands)
+	(tex-start-options, slitex-run-command, latex-run-command)
+	(tex-run-command, tex-directory):
+	* textmodes/ispell.el (ispell-html-skip-alists)
+	(ispell-tex-skip-alists, ispell-tex-skip-alists):
+	* textmodes/fill.el (adaptive-fill-first-line-regexp):
+	(adaptive-fill-regexp):
+	* textmodes/dns-mode.el (auto-mode-alist):
+	* progmodes/python.el (interpreter-mode-alist):
+	* progmodes/etags.el (tags-compression-info-list):
+	* progmodes/etags.el (tags-file-name):
+	* net/browse-url.el (browse-url-galeon-program)
+	(browse-url-firefox-program):
+	* mail/sendmail.el (mail-signature-file)
+	(mail-citation-prefix-regexp):
+	* international/mule-conf.el (eight-bit):
+	* international/latexenc.el (latex-inputenc-coding-alist):
+	* international/fontset.el (x-pixel-size-width-font-regexp):
+	* emacs-lisp/warnings.el (warning-type-format):
+	* emacs-lisp/trace.el (trace-buffer):
+	* emacs-lisp/lisp-mode.el (lisp-interaction-mode-map)
+	(emacs-lisp-mode-map):
+	* calendar/holidays.el (holiday-solar-holidays)
+	(holiday-bahai-holidays, holiday-islamic-holidays)
+	(holiday-christian-holidays, holiday-hebrew-holidays)
+	(hebrew-holidays-4, hebrew-holidays-3, hebrew-holidays-2)
+	(hebrew-holidays-1, holiday-oriental-holidays)
+	(holiday-general-holidays):
+	* x-dnd.el (x-dnd-known-types):
+	* tool-bar.el (tool-bar):
+	* startup.el (site-run-file):
+	* shell.el (shell-dumb-shell-regexp):
+	* rfn-eshadow.el (file-name-shadow-tty-properties)
+	(file-name-shadow-properties):
+	* paths.el (remote-shell-program, news-directory):
+	* mouse.el ([C-down-mouse-3]):
+	* menu-bar.el (menu-bar-tools-menu):
+	* jka-cmpr-hook.el (jka-compr-load-suffixes)
+	(jka-compr-mode-alist-additions, jka-compr-compression-info-list)
+	(jka-compr-compression-info-list):
+	* isearch.el (search-whitespace-regexp):
+	* image-file.el (image-file-name-extensions):
+	* find-dired.el (find-ls-option):
+	* files.el (directory-listing-before-filename-regexp)
+	(directory-free-space-args, insert-directory-program)
+	(list-directory-brief-switches, magic-fallback-mode-alist)
+	(magic-fallback-mode-alist, auto-mode-interpreter-regexp)
+	(automount-dir-prefix):
+	* faces.el (face-x-resources, x-font-regexp, x-font-regexp-head)
+	(x-font-regexp-slant, x-font-regexp-weight, face-x-resources)
+	(face-font-registry-alternatives, face-font-registry-alternatives)
+	(face-font-family-alternatives):
+	* facemenu.el (facemenu-add-new-face, facemenu-background-menu)
+	(facemenu-foreground-menu, facemenu-face-menu):
+	* epa-hook.el (epa-file-name-regexp):
+	* dnd.el (dnd-protocol-alist):
+	* textmodes/rst.el (auto-mode-alist):
+	* button.el (default-button):  Purecopy strings.
+
 2009-11-06  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in (ELCFILES): Update.
--- a/lisp/button.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/button.el	Fri Nov 06 05:16:23 2009 +0000
@@ -84,7 +84,7 @@
 (put 'default-button 'type 'button)
 ;; action may be either a function to call, or a marker to go to
 (put 'default-button 'action 'ignore)
-(put 'default-button 'help-echo "mouse-2, RET: Push this button")
+(put 'default-button 'help-echo (purecopy "mouse-2, RET: Push this button"))
 ;; Make overlay buttons go away if their underlying text is deleted.
 (put 'default-button 'evaporate t)
 ;; Prevent insertions adjacent to the text-property buttons from
--- a/lisp/calendar/holidays.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/calendar/holidays.el	Fri Nov 06 05:16:23 2009 +0000
@@ -43,6 +43,7 @@
 
 ;;;###autoload
 (defcustom holiday-general-holidays
+  (mapcar 'purecopy
   '((holiday-fixed 1 1 "New Year's Day")
     (holiday-float 1 1 3 "Martin Luther King Day")
     (holiday-fixed 2 2 "Groundhog Day")
@@ -59,7 +60,7 @@
     (holiday-float 10 1 2 "Columbus Day")
     (holiday-fixed 10 31 "Halloween")
     (holiday-fixed 11 11 "Veteran's Day")
-    (holiday-float 11 4 4 "Thanksgiving"))
+    (holiday-float 11 4 4 "Thanksgiving")))
   "General holidays.  Default value is for the United States.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
@@ -72,6 +73,7 @@
 
 ;;;###autoload
 (defcustom holiday-oriental-holidays
+  (mapcar 'purecopy
   '((holiday-chinese-new-year)
     (if calendar-chinese-all-holidays-flag
         (append
@@ -82,7 +84,7 @@
          (holiday-chinese 8 15 "Mid-Autumn Festival")
          (holiday-chinese 9  9 "Double Ninth Festival")
          (holiday-chinese-winter-solstice)
-         )))
+         ))))
   "Oriental holidays.
 See the documentation for `calendar-holidays' for details."
   :version "23.1"                       ; added more holidays
@@ -118,6 +120,7 @@
 
 ;;;###autoload
 (defvar hebrew-holidays-1
+  (mapcar 'purecopy
   '((holiday-hebrew-rosh-hashanah)
     (if calendar-hebrew-all-holidays-flag
         (holiday-julian
@@ -131,7 +134,7 @@
                         (calendar-absolute-from-gregorian (list m 1 y)))))
            (if (zerop (% (1+ year) 4))
                22
-             21)) "\"Tal Umatar\" (evening)")))
+             21)) "\"Tal Umatar\" (evening)"))))
   "Component of the old default value of `holiday-hebrew-holidays'.")
 ;;;###autoload
 (put 'hebrew-holidays-1 'risky-local-variable t)
@@ -139,6 +142,7 @@
 
 ;;;###autoload
 (defvar hebrew-holidays-2
+  (mapcar 'purecopy
   '((holiday-hebrew-hanukkah) ; respects calendar-hebrew-all-holidays-flag
     (if calendar-hebrew-all-holidays-flag
       (holiday-hebrew
@@ -152,7 +156,7 @@
              11 10))
        "Tzom Teveth"))
     (if calendar-hebrew-all-holidays-flag
-        (holiday-hebrew 11 15 "Tu B'Shevat")))
+        (holiday-hebrew 11 15 "Tu B'Shevat"))))
   "Component of the old default value of `holiday-hebrew-holidays'.")
 ;;;###autoload
 (put 'hebrew-holidays-2 'risky-local-variable t)
@@ -160,6 +164,7 @@
 
 ;;;###autoload
 (defvar hebrew-holidays-3
+  (mapcar 'purecopy
   '((if calendar-hebrew-all-holidays-flag
         (holiday-hebrew
          11
@@ -185,7 +190,7 @@
                         (list 11 16 h-year))))))
                 (day (calendar-extract-day s-s)))
            day)
-         "Shabbat Shirah")))
+         "Shabbat Shirah"))))
   "Component of the old default value of `holiday-hebrew-holidays'.")
 ;;;###autoload
 (put 'hebrew-holidays-3 'risky-local-variable t)
@@ -193,6 +198,7 @@
 
 ;;;###autoload
 (defvar hebrew-holidays-4
+  (mapcar 'purecopy
   '((holiday-hebrew-passover)
     (and calendar-hebrew-all-holidays-flag
          (let* ((m displayed-month)
@@ -205,7 +211,7 @@
            (= 21 (% year 28)))
          (holiday-julian 3 26 "Kiddush HaHamah"))
     (if calendar-hebrew-all-holidays-flag
-        (holiday-hebrew-tisha-b-av)))
+        (holiday-hebrew-tisha-b-av))))
     "Component of the old default value of `holiday-hebrew-holidays'.")
 ;;;###autoload
 (put 'hebrew-holidays-4 'risky-local-variable t)
@@ -213,13 +219,14 @@
 
 ;;;###autoload
 (defcustom holiday-hebrew-holidays
+  (mapcar 'purecopy
   '((holiday-hebrew-passover)
     (holiday-hebrew-rosh-hashanah)
     (holiday-hebrew-hanukkah)
     (if calendar-hebrew-all-holidays-flag
         (append
          (holiday-hebrew-tisha-b-av)
-         (holiday-hebrew-misc))))
+         (holiday-hebrew-misc)))))
   "Jewish holidays.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
@@ -233,6 +240,7 @@
 
 ;;;###autoload
 (defcustom holiday-christian-holidays
+  (mapcar 'purecopy
   '((holiday-easter-etc)    ; respects calendar-christian-all-holidays-flag
     (holiday-fixed 12 25 "Christmas")
     (if calendar-christian-all-holidays-flag
@@ -241,7 +249,7 @@
          (holiday-julian 12 25 "Eastern Orthodox Christmas")
          (holiday-greek-orthodox-easter)
          (holiday-fixed 8 15 "Assumption")
-         (holiday-advent 0 "Advent"))))
+         (holiday-advent 0 "Advent")))))
   "Christian holidays.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
@@ -254,6 +262,7 @@
 
 ;;;###autoload
 (defcustom holiday-islamic-holidays
+  (mapcar 'purecopy
   '((holiday-islamic-new-year)
     (holiday-islamic 9 1 "Ramadan Begins")
     (if calendar-islamic-all-holidays-flag
@@ -264,7 +273,7 @@
          (holiday-islamic 8 15 "Shab-e-Bara't")
          (holiday-islamic 9 27 "Shab-e Qadr")
          (holiday-islamic 10 1 "Id-al-Fitr")
-         (holiday-islamic 12 10 "Id-al-Adha"))))
+         (holiday-islamic 12 10 "Id-al-Adha")))))
   "Islamic holidays.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
@@ -277,6 +286,7 @@
 
 ;;;###autoload
 (defcustom holiday-bahai-holidays
+  (mapcar 'purecopy
   '((holiday-bahai-new-year)
     (holiday-bahai-ridvan)      ; respects calendar-bahai-all-holidays-flag
     (holiday-fixed  5 23 "Declaration of the Bab")
@@ -287,7 +297,7 @@
     (if calendar-bahai-all-holidays-flag
         (append
          (holiday-fixed 11 26 "Day of the Covenant")
-         (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha"))))
+         (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha")))))
   "Baha'i holidays.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
@@ -299,6 +309,7 @@
 
 ;;;###autoload
 (defcustom holiday-solar-holidays
+  (mapcar 'purecopy
   '((solar-equinoxes-solstices)
     (holiday-sexp calendar-daylight-savings-starts
                   (format "Daylight Saving Time Begins %s"
@@ -309,7 +320,7 @@
                   (format "Daylight Saving Time Ends %s"
                           (solar-time-string
                            (/ calendar-daylight-savings-ends-time (float 60))
-                           calendar-daylight-time-zone-name))))
+                           calendar-daylight-time-zone-name)))))
   "Sun-related holidays.
 See the documentation for `calendar-holidays' for details."
   :type 'sexp
--- a/lisp/dnd.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/dnd.el	Fri Nov 06 05:16:23 2009 +0000
@@ -35,10 +35,10 @@
 
 ;;;###autoload
 (defcustom dnd-protocol-alist
-  '(("^file:///"  . dnd-open-local-file)	; XDND format.
-    ("^file://"   . dnd-open-file)		; URL with host
-    ("^file:"     . dnd-open-local-file)	; Old KDE, Motif, Sun
-    ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file)
+  `((,(purecopy "^file:///")  . dnd-open-local-file)	; XDND format.
+    (,(purecopy "^file://")   . dnd-open-file)		; URL with host
+    (,(purecopy "^file:")     . dnd-open-local-file)	; Old KDE, Motif, Sun
+    (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)
    )
 
   "The functions to call for different protocols when a drop is made.
--- a/lisp/emacs-lisp/byte-run.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/emacs-lisp/byte-run.el	Fri Nov 06 05:16:23 2009 +0000
@@ -224,7 +224,7 @@
   `(progn
      (put ,obsolete-face 'face-alias ,current-face)
      ;; Used by M-x describe-face.
-     (put ,obsolete-face 'obsolete-face (or ,when t))))
+     (put ,obsolete-face 'obsolete-face (or (purecopy ,when) t))))
 
 (defmacro dont-compile (&rest body)
   "Like `progn', but the body always runs interpreted (not compiled).
--- a/lisp/emacs-lisp/lisp-mode.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Fri Nov 06 05:16:23 2009 +0000
@@ -348,7 +348,7 @@
     (define-key menu-map [edebug-defun]
       `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun
 		  :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug")
-		  :keys "C-u C-M-x"))
+		  :keys ,(purecopy "C-u C-M-x")))
     (define-key menu-map [separator-byte] '("--"))
     (define-key menu-map [disas]
       `(menu-item ,(purecopy "Disassemble byte compiled object...") disassemble
@@ -530,7 +530,7 @@
     (define-key menu-map [edebug-defun-lisp-interaction]
       `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun
 		  :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug")
-		  :keys "C-u C-M-x"))
+		  :keys ,(purecopy "C-u C-M-x")))
     (define-key menu-map [indent-pp-sexp]
       `(menu-item ,(purecopy "Indent or Pretty-Print") indent-pp-sexp
 		  :help ,(purecopy "Indent each line of the list starting just after point, or prettyprint it")))
--- a/lisp/emacs-lisp/trace.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/emacs-lisp/trace.el	Fri Nov 06 05:16:23 2009 +0000
@@ -160,7 +160,7 @@
   :group 'lisp)
 
 ;;;###autoload
-(defcustom trace-buffer "*trace-output*"
+(defcustom trace-buffer (purecopy "*trace-output*")
   "Trace output will by default go to that buffer."
   :type 'string
   :group 'trace)
--- a/lisp/emacs-lisp/warnings.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/emacs-lisp/warnings.el	Fri Nov 06 05:16:23 2009 +0000
@@ -157,7 +157,7 @@
 ;;; safely, testing the existing value, before they call one of the
 ;;; warnings functions.
 ;;;###autoload
-(defvar warning-type-format " (%s)"
+(defvar warning-type-format (purecopy " (%s)")
   "Format for displaying the warning type in the warning message.
 The result of formatting the type this way gets included in the
 message under the control of the string in `warning-levels'.")
--- a/lisp/epa-hook.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/epa-hook.el	Fri Nov 06 05:16:23 2009 +0000
@@ -31,7 +31,7 @@
   (if (fboundp 'epa-file-name-regexp-update)
       (epa-file-name-regexp-update)))
 
-(defcustom epa-file-name-regexp "\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'"
+(defcustom epa-file-name-regexp (purecopy "\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'")
   "Regexp which matches filenames to be encrypted with GnuPG.
 
 If you set this outside Custom while epa-file is already enabled, you
--- a/lisp/facemenu.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/facemenu.el	Fri Nov 06 05:16:23 2009 +0000
@@ -163,7 +163,7 @@
 
 (defvar facemenu-face-menu
   (let ((map (make-sparse-keymap "Face")))
-    (define-key map "o" (cons "Other..." 'facemenu-set-face))
+    (define-key map "o" (cons (purecopy "Other...") 'facemenu-set-face))
     map)
   "Menu keymap for faces.")
 (defalias 'facemenu-face-menu facemenu-face-menu)
@@ -171,7 +171,7 @@
 
 (defvar facemenu-foreground-menu
   (let ((map (make-sparse-keymap "Foreground Color")))
-    (define-key map "o" (cons "Other..." 'facemenu-set-foreground))
+    (define-key map "o" (cons (purecopy "Other...") 'facemenu-set-foreground))
     map)
   "Menu keymap for foreground colors.")
 (defalias 'facemenu-foreground-menu facemenu-foreground-menu)
@@ -179,7 +179,7 @@
 
 (defvar facemenu-background-menu
   (let ((map (make-sparse-keymap "Background Color")))
-    (define-key map "o" (cons "Other..." 'facemenu-set-background))
+    (define-key map "o" (cons (purecopy "Other...") 'facemenu-set-background))
     map)
   "Menu keymap for background colors.")
 (defalias 'facemenu-background-menu facemenu-background-menu)
@@ -674,11 +674,11 @@
 	    symbol (intern name)))
     (setq menu 'facemenu-face-menu)
     (setq docstring
-	  (format "Select face `%s' for subsequent insertion.
+	  (purecopy (format "Select face `%s' for subsequent insertion.
 If the mark is active and there is no prefix argument,
 apply face `%s' to the region instead.
 This command was defined by `facemenu-add-new-face'."
-		  name name))
+		  name name)))
     (cond ((facemenu-iterate ; check if equivalent face is already in the menu
 	    (lambda (m) (and (listp m)
 			     (symbolp (car m))
--- a/lisp/faces.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/faces.el	Fri Nov 06 05:16:23 2009 +0000
@@ -70,10 +70,11 @@
 ;; unavailable, and we fall back on the courier and helv families,
 ;; which are generally available.
 (defcustom face-font-family-alternatives
+  (mapcar (lambda (arg) (mapcar 'purecopy arg))
   '(("Monospace" "courier" "fixed")
     ("courier" "CMU Typewriter Text" "fixed")
     ("Sans Serif" "helv" "helvetica" "arial" "fixed")
-    ("helv" "helvetica" "arial" "fixed"))
+    ("helv" "helvetica" "arial" "fixed")))
   "Alist of alternative font family names.
 Each element has the form (FAMILY ALTERNATIVE1 ALTERNATIVE2 ...).
 If fonts of family FAMILY can't be loaded, try ALTERNATIVE1, then
@@ -88,6 +89,7 @@
 
 ;; This is defined originally in xfaces.c.
 (defcustom face-font-registry-alternatives
+  (mapcar (lambda (arg) (mapcar 'purecopy arg))
   (if (eq system-type 'windows-nt)
       '(("iso8859-1" "ms-oemlatin")
 	("gb2312.1980" "gb2312" "gbk" "gb18030")
@@ -97,7 +99,7 @@
     '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk" "gb18030")
       ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978")
       ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987")
-      ("muletibetan-2" "muletibetan-0")))
+      ("muletibetan-2" "muletibetan-0"))))
   "Alist of alternative font registry names.
 Each element has the form (REGISTRY ALTERNATIVE1 ALTERNATIVE2 ...).
 If fonts of registry REGISTRY can be loaded, font selection
@@ -284,6 +286,11 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defcustom face-x-resources
+  (mapcar
+   (lambda (arg)
+     ;; FIXME; can we purecopy some of the conses too?
+     (cons (car arg)
+	   (cons (purecopy (car (cdr arg))) (purecopy (cdr (cdr arg))))))
   '((:family (".attributeFamily" . "Face.AttributeFamily"))
     (:foundry (".attributeFoundry" . "Face.AttributeFoundry"))
     (:width (".attributeWidth" . "Face.AttributeWidth"))
@@ -303,7 +310,7 @@
     (:bold (".attributeBold" . "Face.AttributeBold"))
     (:italic (".attributeItalic" . "Face.AttributeItalic"))
     (:font (".attributeFont" . "Face.AttributeFont"))
-    (:inherit (".attributeInherit" . "Face.AttributeInherit")))
+    (:inherit (".attributeInherit" . "Face.AttributeInherit"))))
   "List of X resources and classes for face attributes.
 Each element has the form (ATTRIBUTE ENTRY1 ENTRY2...) where ATTRIBUTE is
 the name of a face attribute, and each ENTRY is a cons of the form
@@ -2578,16 +2585,16 @@
       (encoding		"[^-]+")
       )
   (setq x-font-regexp
-	(concat "\\`\\*?[-?*]"
+	(purecopy (concat "\\`\\*?[-?*]"
 		foundry - family - weight\? - slant\? - swidth - adstyle -
 		pixelsize - pointsize - resx - resy - spacing - avgwidth -
 		registry - encoding "\\*?\\'"
-		))
+		)))
   (setq x-font-regexp-head
-	(concat "\\`[-?*]" foundry - family - weight\? - slant\?
-		"\\([-*?]\\|\\'\\)"))
-  (setq x-font-regexp-slant (concat - slant -))
-  (setq x-font-regexp-weight (concat - weight -))
+	(purecopy (concat "\\`[-?*]" foundry - family - weight\? - slant\?
+		"\\([-*?]\\|\\'\\)")))
+  (setq x-font-regexp-slant (purecopy (concat - slant -)))
+  (setq x-font-regexp-weight (purecopy (concat - weight -)))
   nil)
 
 
--- a/lisp/files.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/files.el	Fri Nov 06 05:16:23 2009 +0000
@@ -1567,7 +1567,7 @@
 Choose the buffer's name using `generate-new-buffer-name'."
   (get-buffer-create (generate-new-buffer-name name)))
 
-(defcustom automount-dir-prefix "^/tmp_mnt/"
+(defcustom automount-dir-prefix (purecopy "^/tmp_mnt/")
   "Regexp to match the automounter prefix in a directory name."
   :group 'files
   :type 'regexp)
@@ -2415,8 +2415,8 @@
 from the end of the file name anything that matches one of these regexps.")
 
 (defvar auto-mode-interpreter-regexp
-  "#![ \t]?\\([^ \t\n]*\
-/bin/env[ \t]\\)?\\([^ \t\n]+\\)"
+  (purecopy "#![ \t]?\\([^ \t\n]*\
+/bin/env[ \t]\\)?\\([^ \t\n]+\\)")
   "Regexp matching interpreters, for file mode determination.
 This regular expression is matched against the first line of a file
 to determine the file's mode in `set-auto-mode'.  If it matches, the file
@@ -2437,6 +2437,7 @@
 (put 'magic-mode-alist 'risky-local-variable t)
 
 (defvar magic-fallback-mode-alist
+  (purecopy
   `((image-type-auto-detected-p . image-mode)
     ("\\(PK00\\)?[P]K\003\004" . archive-mode) ; zip
     ;; The < comes before the groups (but the first) to reduce backtracking.
@@ -2457,7 +2458,7 @@
 	(concat "[ \t\r\n]*<" comment-re "*!DOCTYPE "))
      . sgml-mode)
     ("%!PS" . ps-mode)
-    ("# xmcd " . conf-unix-mode))
+    ("# xmcd " . conf-unix-mode)))
   "Like `magic-mode-alist' but has lower priority than `auto-mode-alist'.
 Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION).
 After visiting a file, if REGEXP matches the text at the beginning of the
@@ -5333,13 +5334,13 @@
     (concat "\\`" result "\\'")))
 
 (defcustom list-directory-brief-switches
-  "-CF"
+  (purecopy "-CF")
   "Switches for `list-directory' to pass to `ls' for brief listing."
   :type 'string
   :group 'dired)
 
 (defcustom list-directory-verbose-switches
-    "-l"
+    (purecopy "-l")
   "Switches for `list-directory' to pass to `ls' for verbose listing."
   :type 'string
   :group 'dired)
@@ -5469,10 +5470,10 @@
       pattern))))
 
 
-(defvar insert-directory-program "ls"
+(defvar insert-directory-program (purecopy "ls")
   "Absolute or relative name of the `ls' program used by `insert-directory'.")
 
-(defcustom directory-free-space-program "df"
+(defcustom directory-free-space-program (purecopy "df")
   "Program to get the amount of free space on a file system.
 We assume the output has the format of `df'.
 The value of this variable must be just a command name or file name;
@@ -5486,7 +5487,7 @@
   :group 'dired)
 
 (defcustom directory-free-space-args
-  (if (eq system-type 'darwin) "-k" "-Pk")
+  (purecopy (if (eq system-type 'darwin) "-k" "-Pk"))
   "Options to use when running `directory-free-space-program'."
   :type 'string
   :group 'dired)
@@ -5577,9 +5578,9 @@
          ;; parantheses:
          ;; -rw-r--r-- (modified) 2005-10-22 21:25 files.el
          ;; This is not supported yet.
-    (concat ".*[0-9][BkKMGTPEZY]?" s
+    (purecopy (concat ".*[0-9][BkKMGTPEZY]?" s
 	    "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)"
-	    s "+"))
+	    s "+")))
   "Regular expression to match up to the file name in a directory listing.
 The default value is designed to recognize dates and times
 regardless of the language.")
--- a/lisp/find-dired.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/find-dired.el	Fri Nov 06 05:16:23 2009 +0000
@@ -38,8 +38,8 @@
 ;; Note -b, at least GNU find quotes spaces etc. in filenames
 ;;;###autoload
 (defcustom find-ls-option
-  (if (eq system-type 'berkeley-unix) '("-ls" . "-gilsb")
-    '("-exec ls -ld {} \\;" . "-ld"))
+  (if (eq system-type 'berkeley-unix) (purecopy '("-ls" . "-gilsb"))
+    (purecopy '("-exec ls -ld {} \\;" . "-ld")))
   "Description of the option to `find' to produce an `ls -l'-type listing.
 This is a cons of two strings (FIND-OPTION . LS-SWITCHES).  FIND-OPTION
 gives the option (or options) to `find' that produce the desired output.
--- a/lisp/image-file.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/image-file.el	Fri Nov 06 05:16:23 2009 +0000
@@ -37,7 +37,7 @@
 
 ;;;###autoload
 (defcustom image-file-name-extensions
-  '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")
+  (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg"))
   "A list of image-file filename extensions.
 Filenames having one of these extensions are considered image files,
 in addition to those matching `image-file-name-regexps'.
--- a/lisp/international/fontset.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/international/fontset.el	Fri Nov 06 05:16:23 2009 +0000
@@ -796,15 +796,15 @@
 
 ;; Setting for suppressing XLoadQueryFont on big fonts.
 (setq x-pixel-size-width-font-regexp
-      "gb2312\\|gbk\\|gb18030\\|jisx0208\\|ksc5601\\|cns11643\\|big5")
+      (purecopy "gb2312\\|gbk\\|gb18030\\|jisx0208\\|ksc5601\\|cns11643\\|big5"))
 
 ;; These fonts require vertical centering.
 (setq vertical-centering-font-regexp
-      "gb2312\\|gbk\\|gb18030\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5")
+      (purecopy "gb2312\\|gbk\\|gb18030\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5"))
 
 ;; CDAC fonts are actually smaller than their design sizes.
 (setq face-font-rescale-alist
-      '(("-cdac$" . 1.3)))
+      (list (cons (purecopy "-cdac$")  1.3)))
 
 (defvar x-font-name-charset-alist nil
   "This variable has no meaning now.  Just kept for backward compatibility.")
--- a/lisp/international/latexenc.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/international/latexenc.el	Fri Nov 06 05:16:23 2009 +0000
@@ -51,6 +51,7 @@
 
 ;;;###autoload
 (defcustom latex-inputenc-coding-alist
+  (purecopy
   '(("ansinew" . windows-1252) ; MS Windows ANSI encoding, extension of Latin-1
     ("applemac" . mac-roman)
     ("ascii" . us-ascii)
@@ -73,7 +74,7 @@
     ;; ("macce" . undecided) ; Apple Central European
     ("next" . next) ; The Next encoding
     ("utf8" . utf-8)
-    ("utf8x" . utf-8)) ; used by the Unicode LaTeX package
+    ("utf8x" . utf-8))) ; used by the Unicode LaTeX package
   "Mapping from LaTeX encodings in \"inputenc.sty\" to Emacs coding systems.
 LaTeX encodings are specified with \"\\usepackage[encoding]{inputenc}\".
 Used by the function `latexenc-find-file-coding-system'."
--- a/lisp/international/mule-conf.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/international/mule-conf.el	Fri Nov 06 05:16:23 2009 +0000
@@ -109,8 +109,8 @@
 (put-charset-property
  'emacs :long-name "Emacs")
 
-(put-charset-property 'eight-bit :docstring (purecopy "Raw bytes 128-255"))
-(put-charset-property 'eight-bit :short-name (purecopy "Raw bytes"))
+(put-charset-property 'eight-bit :docstring "Raw bytes 128-255")
+(put-charset-property 'eight-bit :short-name "Raw bytes")
 
 (define-charset-alias 'ucs 'unicode)
 
--- a/lisp/isearch.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/isearch.el	Fri Nov 06 05:16:23 2009 +0000
@@ -109,7 +109,7 @@
   :type 'boolean
   :group 'isearch)
 
-(defcustom search-whitespace-regexp "\\s-+"
+(defcustom search-whitespace-regexp (purecopy "\\s-+")
   "If non-nil, regular expression to match a sequence of whitespace chars.
 This applies to regular expression incremental search.
 When you put a space or spaces in the incremental regexp, it stands for
--- a/lisp/jka-cmpr-hook.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/jka-cmpr-hook.el	Fri Nov 06 05:16:23 2009 +0000
@@ -195,6 +195,7 @@
   ;; compr-message  compr-prog  compr-args
   ;; uncomp-message uncomp-prog uncomp-args
   ;; can-append strip-extension-flag file-magic-bytes]
+  (mapcar 'purecopy
   '(["\\.Z\\(~\\|\\.~[0-9]+~\\)?\\'"
      "compressing"    "compress"     ("-c")
      ;; gzip is more common than uncompress. It can only read, not write.
@@ -229,7 +230,7 @@
     ["\\.dz\\'"
      nil              nil            nil
      "uncompressing"      "gzip"         ("-c" "-q" "-d")
-     nil t "\037\213"])
+     nil t "\037\213"]))
 
   "List of vectors that describe available compression techniques.
 Each element, which describes a compression technique, is a vector of
@@ -290,7 +291,7 @@
   :group 'jka-compr)
 
 (defcustom jka-compr-mode-alist-additions
-  (list (cons "\\.tgz\\'" 'tar-mode) (cons "\\.tbz2?\\'" 'tar-mode))
+  (list (cons (purecopy "\\.tgz\\'") 'tar-mode) (cons (purecopy "\\.tbz2?\\'") 'tar-mode))
   "List of pairs added to `auto-mode-alist' when installing jka-compr.
 Uninstalling jka-compr removes all pairs from `auto-mode-alist' that
 installing added.
@@ -303,7 +304,7 @@
   :set 'jka-compr-set
   :group 'jka-compr)
 
-(defcustom jka-compr-load-suffixes '(".gz")
+(defcustom jka-compr-load-suffixes (list (purecopy ".gz"))
   "List of compression related suffixes to try when loading files.
 Enabling Auto Compression mode appends this list to `load-file-rep-suffixes',
 which see.  Disabling Auto Compression mode removes all suffixes
--- a/lisp/mail/sendmail.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/mail/sendmail.el	Fri Nov 06 05:16:23 2009 +0000
@@ -284,7 +284,7 @@
 regardless of what part of it (if any) is included in the cited text.")
 
 ;;;###autoload
-(defcustom mail-citation-prefix-regexp "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|[ \t]*"
+(defcustom mail-citation-prefix-regexp (purecopy "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|[ \t]*")
   "Regular expression to match a citation prefix plus whitespace.
 It should match whatever sort of citation prefixes you want to handle,
 with whitespace before and after; it should also match just whitespace.
@@ -409,13 +409,13 @@
 (put 'mail-signature 'risky-local-variable t)
 
 ;;;###autoload
-(defcustom mail-signature-file "~/.signature"
+(defcustom mail-signature-file (purecopy "~/.signature")
   "File containing the text inserted at end of mail buffer."
   :type 'file
   :group 'sendmail)
 
 ;;;###autoload
-(defcustom mail-default-directory "~/"
+(defcustom mail-default-directory (purecopy "~/")
   "Directory for mail buffers.
 Value of `default-directory' for mail buffers.
 This directory is used for auto-save files of mail buffers."
--- a/lisp/menu-bar.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/menu-bar.el	Fri Nov 06 05:16:23 2009 +0000
@@ -1283,11 +1283,11 @@
 (define-key menu-bar-tools-menu [directory-search]
   `(menu-item ,(purecopy "Directory Search") eudc-tools-menu))
 (define-key menu-bar-tools-menu [compose-mail]
-  `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail
+  `(menu-item ,(purecopy (format "Send Mail (with %s)" (send-mail-item-name))) compose-mail
 	      :visible (and mail-user-agent (not (eq mail-user-agent 'ignore)))
 	      :help ,(purecopy "Send a mail message")))
 (define-key menu-bar-tools-menu [rmail]
-  `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) menu-bar-read-mail
+  `(menu-item ,(purecopy (format "Read Mail (with %s)" (read-mail-item-name))) menu-bar-read-mail
 	      :visible (and read-mail-command (not (eq read-mail-command 'ignore)))
 	      :help ,(purecopy "Read your mail and reply to it")))
 
@@ -1894,7 +1894,7 @@
 		:help ,(purecopy "Abort input and exit minibuffer")))
   (define-key map [menu-bar minibuf return]
     `(menu-item ,(purecopy "Enter") exit-minibuffer
-		:key-sequence "\r"
+		:key-sequence ,(purecopy "\r")
 		:help ,(purecopy "Terminate input and exit minibuffer")))
   (define-key map [menu-bar minibuf isearch-forward]
     `(menu-item ,(purecopy "Isearch History Forward") isearch-forward
--- a/lisp/mouse.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/mouse.el	Fri Nov 06 05:16:23 2009 +0000
@@ -2573,7 +2573,7 @@
     (global-set-key [S-down-mouse-1] 'mouse-appearance-menu))
 ;; C-down-mouse-2 is bound in facemenu.el.
 (global-set-key [C-down-mouse-3]
-  '(menu-item "Menu Bar" ignore
+  `(menu-item ,(purecopy "Menu Bar") ignore
     :filter (lambda (_)
               (if (zerop (or (frame-parameter nil 'menu-bar-lines) 0))
                   (mouse-menu-bar-map)
--- a/lisp/net/browse-url.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/net/browse-url.el	Fri Nov 06 05:16:23 2009 +0000
@@ -313,7 +313,7 @@
   :group 'browse-url)
 
 ;;;###autoload
-(defcustom browse-url-firefox-program "firefox"
+(defcustom browse-url-firefox-program (purecopy "firefox")
   "The name by which to invoke Firefox."
   :type 'string
   :group 'browse-url)
@@ -331,7 +331,7 @@
   :group 'browse-url)
 
 ;;;###autoload
-(defcustom browse-url-galeon-program "galeon"
+(defcustom browse-url-galeon-program (purecopy "galeon")
   "The name by which to invoke Galeon."
   :type 'string
   :group 'browse-url)
--- a/lisp/paths.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/paths.el	Fri Nov 06 05:16:23 2009 +0000
@@ -102,23 +102,24 @@
 the environment variable INFOPATH is set.")
 
 (defvar news-directory
-  (if (file-exists-p "/usr/spool/news/")
+  (purecopy (if (file-exists-p "/usr/spool/news/")
       "/usr/spool/news/"
-    "/var/spool/news/")
+    "/var/spool/news/"))
   "The root directory below which all news files are stored.")
 (defvaralias 'news-path 'news-directory)
 
 (defvar news-inews-program
+  (purecopy
   (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews")
 	((file-exists-p "/usr/local/inews") "/usr/local/inews")
 	((file-exists-p "/usr/local/bin/inews") "/usr/local/bin/inews")
 	((file-exists-p "/usr/contrib/lib/news/inews") "/usr/contrib/lib/news/inews")
 	((file-exists-p "/usr/lib/news/inews") "/usr/lib/news/inews")
-	(t "inews"))
+	(t "inews")))
   "Program to post news.")
 
 ;; set this to your local server
-(defvar gnus-default-nntp-server "" "\
+(defvar gnus-default-nntp-server (purecopy "") "\
 The name of the host running an NNTP server.
 The null string means use the local host as the server site.")
 
@@ -154,6 +155,7 @@
 Its name should end with a slash.")
 
 (defcustom remote-shell-program
+  (purecopy
   (cond
    ;; Some systems use rsh for the remote shell; others use that name for the
    ;; restricted shell and use remsh for the remote shell.  Let's try to guess
@@ -173,7 +175,7 @@
    ((file-exists-p "/bin/rcmd") "/bin/rcmd")
    ((file-exists-p "/bin/rsh") "/bin/rsh")
    ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh")
-   (t "rsh"))
+   (t "rsh")))
   "File name for remote-shell program (often rsh or remsh)."
   :group 'environment
   :type 'file)
--- a/lisp/progmodes/etags.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/progmodes/etags.el	Fri Nov 06 05:16:23 2009 +0000
@@ -39,7 +39,7 @@
 If you set this variable, do not also set `tags-table-list'.
 Use the `etags' program to make a tags table file.")
 ;; Make M-x set-variable tags-file-name like M-x visit-tags-table.
-;;;###autoload (put 'tags-file-name 'variable-interactive "fVisit tags table: ")
+;;;###autoload (put 'tags-file-name 'variable-interactive (purecopy "fVisit tags table: "))
 
 (defgroup etags nil "Tags tables."
   :group 'tools)
@@ -67,7 +67,7 @@
   :type '(repeat file))
 
 ;;;###autoload
-(defcustom tags-compression-info-list '("" ".Z" ".bz2" ".gz" ".tgz")
+(defcustom tags-compression-info-list (purecopy '("" ".Z" ".bz2" ".gz" ".tgz"))
   "*List of extensions tried by etags when jka-compr is used.
 An empty string means search the non-compressed file.
 These extensions will be tried only if jka-compr was activated
--- a/lisp/progmodes/python.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/progmodes/python.el	Fri Nov 06 05:16:23 2009 +0000
@@ -83,9 +83,9 @@
   :link '(emacs-commentary-link "python"))
 
 ;;;###autoload
-(add-to-list 'interpreter-mode-alist '("jython" . jython-mode))
+(add-to-list 'interpreter-mode-alist (cons (purecopy "jython") 'jython-mode))
 ;;;###autoload
-(add-to-list 'interpreter-mode-alist '("python" . python-mode))
+(add-to-list 'interpreter-mode-alist (cons (purecopy "python") 'python-mode))
 ;;;###autoload
 (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'")  'python-mode))
 (add-to-list 'same-window-buffer-names (purecopy "*Python*"))
--- a/lisp/rfn-eshadow.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/rfn-eshadow.el	Fri Nov 06 05:16:23 2009 +0000
@@ -92,7 +92,8 @@
 		  (sexp :tag "Value")))))
 
 (defcustom file-name-shadow-properties
-  '(face file-name-shadow field shadow)
+  ;; FIXME: should we purecopy this?
+'(face file-name-shadow field shadow)
   "Properties given to the `shadowed' part of a filename in the minibuffer.
 Only used when `file-name-shadow-mode' is active.
 If Emacs is not running under a window system,
@@ -102,7 +103,7 @@
   :version "22.1")
 
 (defcustom file-name-shadow-tty-properties
-  '(before-string "{" after-string "} " field shadow)
+  (purecopy '(before-string "{" after-string "} " field shadow))
   "Properties given to the `shadowed' part of a filename in the minibuffer.
 Only used when `file-name-shadow-mode' is active and Emacs
 is not running under a window-system; if Emacs is running under a window
--- a/lisp/shell.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/shell.el	Fri Nov 06 05:16:23 2009 +0000
@@ -115,7 +115,7 @@
   :group 'shell)
 
 ;;;###autoload
-(defcustom shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe"
+(defcustom shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe")
   "Regexp to match shells that don't save their command history, and
 don't handle the backslash as a quote character.  For shells that
 match this regexp, Emacs will write out the command history when the
--- a/lisp/startup.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/startup.el	Fri Nov 06 05:16:23 2009 +0000
@@ -305,7 +305,7 @@
 Setting `init-file-user' does not prevent Emacs from loading
 `site-start.el'.  The only way to do that is to use `--no-site-file'.")
 
-(defcustom site-run-file "site-start"
+(defcustom site-run-file (purecopy "site-start")
   "File containing site-wide run-time initializations.
 This file is loaded at run-time before `~/.emacs'.  It contains inits
 that need to be in place for the entire site, but which, due to their
@@ -327,7 +327,7 @@
   :type '(choice (const :tag "none" nil) string)
   :group 'initialization
   :initialize 'custom-initialize-default
-  :set '(lambda (variable value)
+  :set (lambda (variable value)
 	  (error "Customizing `site-run-file' does not work")))
 
 (defcustom mail-host-address nil
--- a/lisp/textmodes/dns-mode.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/textmodes/dns-mode.el	Fri Nov 06 05:16:23 2009 +0000
@@ -222,7 +222,7 @@
 	   ;; We return nil in case this is used in write-contents-functions.
 	   nil)))
 
-;;;###autoload(add-to-list 'auto-mode-alist '("\\.soa\\'" . dns-mode))
+;;;###autoload(add-to-list 'auto-mode-alist (purecopy '("\\.soa\\'" . dns-mode)))
 
 (provide 'dns-mode)
 
--- a/lisp/textmodes/fill.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/textmodes/fill.el	Fri Nov 06 05:16:23 2009 +0000
@@ -92,7 +92,7 @@
   ;; Added `!' for doxygen comments starting with `//!' or `/*!'.
   ;; Added `%' for TeX comments.
   ;; RMS: deleted the code to match `1.' and `(1)'.
-  "[ \t]*\\([-!|#%;>*·•‣⁃◦]+[ \t]*\\)*"
+  (purecopy "[ \t]*\\([-!|#%;>*·•‣⁃◦]+[ \t]*\\)*")
   "Regexp to match text at start of line that constitutes indentation.
 If Adaptive Fill mode is enabled, a prefix matching this pattern
 on the first and second lines of a paragraph is used as the
@@ -104,7 +104,7 @@
   :type 'regexp
   :group 'fill)
 
-(defcustom adaptive-fill-first-line-regexp "\\`[ \t]*\\'"
+(defcustom adaptive-fill-first-line-regexp (purecopy "\\`[ \t]*\\'")
   "Regexp specifying whether to set fill prefix from a one-line paragraph.
 When a paragraph has just one line, then after `adaptive-fill-regexp'
 finds the prefix at the beginning of the line, if it doesn't
--- a/lisp/textmodes/ispell.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/textmodes/ispell.el	Fri Nov 06 05:16:23 2009 +0000
@@ -1429,6 +1429,7 @@
 
 ;;;###autoload
 (defvar ispell-tex-skip-alists
+  (purecopy
   '((;;("%\\[" . "%\\]") ; AMStex block comment...
      ;; All the standard LaTeX keywords from L. Lamport's guide:
      ;; \cite, \hspace, \hspace*, \hyphenation, \include, \includeonly, \input,
@@ -1447,7 +1448,7 @@
      ("\\(figure\\|table\\)\\*?"	 ispell-tex-arg-end 0)
      ("list"				 ispell-tex-arg-end 2)
      ("program"		. "\\\\end[ \t\n]*{[ \t\n]*program[ \t\n]*}")
-     ("verbatim\\*?"	. "\\\\end[ \t\n]*{[ \t\n]*verbatim\\*?[ \t\n]*}")))
+     ("verbatim\\*?"	. "\\\\end[ \t\n]*{[ \t\n]*verbatim\\*?[ \t\n]*}"))))
   "*Lists of regions to be skipped in TeX mode.
 First list is used raw.
 Second list has key placed inside \\begin{}.
@@ -1458,7 +1459,7 @@
 
 
 ;;;###autoload
-(defvar ispell-html-skip-alists
+(defconst ispell-html-skip-alists
   '(("<[cC][oO][dD][eE]\\>[^>]*>"	  "</[cC][oO][dD][eE]*>")
     ("<[sS][cC][rR][iI][pP][tT]\\>[^>]*>" "</[sS][cC][rR][iI][pP][tT]>")
     ("<[aA][pP][pP][lL][eE][tT]\\>[^>]*>" "</[aA][pP][pP][lL][eE][tT]>")
--- a/lisp/textmodes/rst.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/textmodes/rst.el	Fri Nov 06 05:16:23 2009 +0000
@@ -363,7 +363,7 @@
 
 ;; Use rst-mode for *.rst and *.rest files.  Many ReStructured-Text files
 ;; use *.txt, but this is too generic to be set as a default.
-;;;###autoload (add-to-list 'auto-mode-alist '("\\.re?st\\'" . rst-mode))
+;;;###autoload (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
 ;;;###autoload
 (define-derived-mode rst-mode text-mode "ReST"
   "Major mode for editing reStructuredText documents.
--- a/lisp/textmodes/tex-mode.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/textmodes/tex-mode.el	Fri Nov 06 05:16:23 2009 +0000
@@ -64,7 +64,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom tex-directory "."
+(defcustom tex-directory (purecopy ".")
   "*Directory in which temporary files are written.
 You can make this `/tmp' if your TEXINPUTS has no relative directories in it
 and you don't try to apply \\[tex-region] or \\[tex-buffer] when there are
@@ -98,7 +98,7 @@
   :group 'tex-file)
 
 ;;;###autoload
-(defcustom tex-run-command "tex"
+(defcustom tex-run-command (purecopy "tex")
   "*Command used to run TeX subjob.
 TeX Mode sets `tex-command' to this string.
 See the documentation of that variable."
@@ -106,7 +106,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom latex-run-command "latex"
+(defcustom latex-run-command (purecopy "latex")
   "*Command used to run LaTeX subjob.
 LaTeX Mode sets `tex-command' to this string.
 See the documentation of that variable."
@@ -114,7 +114,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom slitex-run-command "slitex"
+(defcustom slitex-run-command (purecopy "slitex")
   "*Command used to run SliTeX subjob.
 SliTeX Mode sets `tex-command' to this string.
 See the documentation of that variable."
@@ -122,7 +122,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom tex-start-options ""
+(defcustom tex-start-options (purecopy "")
   "*TeX options to use when starting TeX.
 These immediately precede the commands in `tex-start-commands'
 and the input file name, with no separating space and are not shell-quoted.
@@ -132,7 +132,7 @@
   :version "22.1")
 
 ;;;###autoload
-(defcustom tex-start-commands "\\nonstopmode\\input"
+(defcustom tex-start-commands (purecopy "\\nonstopmode\\input")
   "*TeX commands to use when starting TeX.
 They are shell-quoted and precede the input file name, with a separating space.
 If nil, no commands are used.  See the documentation of `tex-command'."
@@ -163,7 +163,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom tex-bibtex-command "bibtex"
+(defcustom tex-bibtex-command (purecopy "bibtex")
   "*Command used by `tex-bibtex-file' to gather bibliographic data.
 If this string contains an asterisk (`*'), that is replaced by the file name;
 otherwise, the file name, preceded by blank, is added at the end."
@@ -171,7 +171,7 @@
   :group 'tex-run)
 
 ;;;###autoload
-(defcustom tex-dvi-print-command "lpr -d"
+(defcustom tex-dvi-print-command (purecopy "lpr -d")
   "*Command used by \\[tex-print] to print a .dvi file.
 If this string contains an asterisk (`*'), that is replaced by the file name;
 otherwise, the file name, preceded by blank, is added at the end."
@@ -179,7 +179,7 @@
   :group 'tex-view)
 
 ;;;###autoload
-(defcustom tex-alt-dvi-print-command "lpr -d"
+(defcustom tex-alt-dvi-print-command (purecopy "lpr -d")
   "*Command used by \\[tex-print] with a prefix arg to print a .dvi file.
 If this string contains an asterisk (`*'), that is replaced by the file name;
 otherwise, the file name, preceded by blank, is added at the end.
--- a/lisp/tool-bar.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/tool-bar.el	Fri Nov 06 05:16:23 2009 +0000
@@ -90,7 +90,7 @@
 Define this locally to override the global tool bar.")
 
 (global-set-key [tool-bar]
-		'(menu-item "tool bar" ignore
+		`(menu-item ,(purecopy "tool bar") ignore
 			    :filter tool-bar-make-keymap))
 
 (declare-function image-mask-p "image.c" (spec &optional frame))
--- a/lisp/x-dnd.el	Fri Nov 06 03:22:13 2009 +0000
+++ b/lisp/x-dnd.el	Fri Nov 06 05:16:23 2009 +0000
@@ -79,6 +79,7 @@
   :group 'x)
 
 (defcustom x-dnd-known-types
+  (mapcar 'purecopy
   '("text/uri-list"
     "text/x-moz-url"
     "_NETSCAPE_URL"
@@ -91,7 +92,7 @@
     "COMPOUND_TEXT"
     "STRING"
     "TEXT"
-    )
+    ))
   "The types accepted by default for dropped data.
 The types are chosen in the order they appear in the list."
   :version "22.1"