aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog62
-rw-r--r--lisp/button.el2
-rw-r--r--lisp/calendar/holidays.el33
-rw-r--r--lisp/dnd.el8
-rw-r--r--lisp/emacs-lisp/byte-run.el2
-rw-r--r--lisp/emacs-lisp/lisp-mode.el4
-rw-r--r--lisp/emacs-lisp/trace.el2
-rw-r--r--lisp/emacs-lisp/warnings.el2
-rw-r--r--lisp/epa-hook.el2
-rw-r--r--lisp/facemenu.el10
-rw-r--r--lisp/faces.el25
-rw-r--r--lisp/files.el23
-rw-r--r--lisp/find-dired.el4
-rw-r--r--lisp/image-file.el2
-rw-r--r--lisp/international/fontset.el6
-rw-r--r--lisp/international/latexenc.el3
-rw-r--r--lisp/international/mule-conf.el4
-rw-r--r--lisp/isearch.el2
-rw-r--r--lisp/jka-cmpr-hook.el7
-rw-r--r--lisp/mail/sendmail.el6
-rw-r--r--lisp/menu-bar.el6
-rw-r--r--lisp/mouse.el2
-rw-r--r--lisp/net/browse-url.el4
-rw-r--r--lisp/paths.el12
-rw-r--r--lisp/progmodes/etags.el4
-rw-r--r--lisp/progmodes/python.el4
-rw-r--r--lisp/rfn-eshadow.el5
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/startup.el4
-rw-r--r--lisp/textmodes/dns-mode.el2
-rw-r--r--lisp/textmodes/fill.el4
-rw-r--r--lisp/textmodes/ispell.el5
-rw-r--r--lisp/textmodes/rst.el2
-rw-r--r--lisp/textmodes/tex-mode.el18
-rw-r--r--lisp/tool-bar.el2
-rw-r--r--lisp/x-dnd.el3
36 files changed, 188 insertions, 100 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9bc780788b..a93c84ca15 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,65 @@
+2009-11-05 Dan Nicolaescu <[email protected]>
+
+ * 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 <[email protected]>
* Makefile.in (ELCFILES): Update.
diff --git a/lisp/button.el b/lisp/button.el
index 9732b8bae0..25012ae59b 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -84,7 +84,7 @@ Mode-specific keymaps may want to use this as their parent keymap.")
(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
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index d4d1e91433..d41f2cf9af 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -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 @@ See the documentation for `calendar-holidays' for details."
;;;###autoload
(defcustom holiday-oriental-holidays
+ (mapcar 'purecopy
'((holiday-chinese-new-year)
(if calendar-chinese-all-holidays-flag
(append
@@ -82,7 +84,7 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###autoload
(defvar hebrew-holidays-1
+ (mapcar 'purecopy
'((holiday-hebrew-rosh-hashanah)
(if calendar-hebrew-all-holidays-flag
(holiday-julian
@@ -131,7 +134,7 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
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 @@ See the documentation for `calendar-holidays' for details."
;;;###autoload
(defvar hebrew-holidays-3
+ (mapcar 'purecopy
'((if calendar-hebrew-all-holidays-flag
(holiday-hebrew
11
@@ -185,7 +190,7 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###autoload
(defvar hebrew-holidays-4
+ (mapcar 'purecopy
'((holiday-hebrew-passover)
(and calendar-hebrew-all-holidays-flag
(let* ((m displayed-month)
@@ -205,7 +211,7 @@ See the documentation for `calendar-holidays' for details."
(= 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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
(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 @@ See the documentation for `calendar-holidays' for details."
;;;###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 @@ See the documentation for `calendar-holidays' for details."
(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
diff --git a/lisp/dnd.el b/lisp/dnd.el
index dea373d439..34df9e8801 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -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.
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index af3150ffe6..62975407aa 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -224,7 +224,7 @@ obsolete."
`(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).
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f4f2f62166..1a837dc200 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -348,7 +348,7 @@ font-lock keywords will not be case sensitive."
(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 @@ if that value is non-nil."
(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")))
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 40c3e13826..32073adb7b 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -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)
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el
index 2a88c1ce5e..fcf5e74554 100644
--- a/lisp/emacs-lisp/warnings.el
+++ b/lisp/emacs-lisp/warnings.el
@@ -157,7 +157,7 @@ also call that function before the next warning.")
;;; 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'.")
diff --git a/lisp/epa-hook.el b/lisp/epa-hook.el
index 0987b2a221..e8ba17eab5 100644
--- a/lisp/epa-hook.el
+++ b/lisp/epa-hook.el
@@ -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
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 389fbf804e..130dd4855a 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -163,7 +163,7 @@ it will remove any faces not explicitly in the list."
(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 @@ it will remove any faces not explicitly in the list."
(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 @@ it will remove any faces not explicitly in the list."
(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 @@ This is called whenever you create a new face, and at other times."
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))
diff --git a/lisp/faces.el b/lisp/faces.el
index 9904cf674f..ebdca45717 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -70,10 +70,11 @@ a font height that isn't optimal."
;; 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 @@ ALTERNATIVE2 etc."
;; 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 @@ ALTERNATIVE2 etc."
'(("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 @@ If FRAME is omitted or nil, use the selected frame."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(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 @@ If FRAME is omitted or nil, use the selected frame."
(: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 @@ Note: Other faces cannot inherit from the cursor face."
(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)
diff --git a/lisp/files.el b/lisp/files.el
index 11249a4cd3..8c26b0bbfa 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1567,7 +1567,7 @@ Spaces at the start of FILENAME (sans directory) are removed."
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 @@ When checking `inhibit-first-line-modes-regexps', we first discard
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 @@ If FUNCTION is nil, then it is not called. (That is a way of saying
(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 @@ If FUNCTION is nil, then it is not called. (That is a way of saying
(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 @@ by `sh' are supported."
(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 @@ need to be passed verbatim to shell commands."
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 @@ preference to the program given by this variable."
: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 @@ program specified by `directory-free-space-program' if that is non-nil."
;; 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.")
diff --git a/lisp/find-dired.el b/lisp/find-dired.el
index 3becbcb7c8..12590c0874 100644
--- a/lisp/find-dired.el
+++ b/lisp/find-dired.el
@@ -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.
diff --git a/lisp/image-file.el b/lisp/image-file.el
index 63f156907f..a27233e339 100644
--- a/lisp/image-file.el
+++ b/lisp/image-file.el
@@ -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'.
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 87ea17805c..9b4a5d59ed 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -796,15 +796,15 @@ Internal use only. Should be called at startup time."
;; 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.")
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index bd8d5748a1..7adca285fa 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -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'."
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index 9b23101552..8805d5c17a 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -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)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 95e45c7e58..7505d3e4d3 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -109,7 +109,7 @@ string, and RET terminates editing and does a nonincremental search."
: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
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el
index fa2fd40e43..fab5c6ba92 100644
--- a/lisp/jka-cmpr-hook.el
+++ b/lisp/jka-cmpr-hook.el
@@ -195,6 +195,7 @@ options through Custom does this automatically."
;; 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 @@ options through Custom does this automatically."
["\\.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 @@ variables. Setting this through Custom does that automatically."
: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 @@ variables. Setting this through Custom does that automatically."
: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
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 9a55f4051a..34d5f4af7a 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -284,7 +284,7 @@ This enables the hook functions to see the whole message header
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 @@ and should insert whatever you want to insert."
(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."
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index bae181c02e..fbcf75a329 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1283,11 +1283,11 @@ mail status in mode line"))
(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 @@ Buffers menu is regenerated."
: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
diff --git a/lisp/mouse.el b/lisp/mouse.el
index ccf8fb77e0..943f53c781 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -2573,7 +2573,7 @@ choose a font."
(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)
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 2f8304771c..20311f6d4c 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -313,7 +313,7 @@ Defaults to the value of `browse-url-mozilla-arguments' at the time
: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 @@ Defaults to the value of `browse-url-firefox-arguments' at the time
: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)
diff --git a/lisp/paths.el b/lisp/paths.el
index ea10762a3a..7af0136a47 100644
--- a/lisp/paths.el
+++ b/lisp/paths.el
@@ -102,23 +102,24 @@ for initializing `Info-directory-list' when Info is started, unless
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 @@ Name of user's primary mail file."
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 @@ Its name should end with a slash.")
((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)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 015a2619d0..f3c3791633 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -39,7 +39,7 @@ To switch to a new tags table, setting this variable is sufficient.
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 @@ Use the `etags' program to make a tags table file."
: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
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ce54d2a087..eff599c77a 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -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*"))
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el
index 5788ab7447..6d4f1673c8 100644
--- a/lisp/rfn-eshadow.el
+++ b/lisp/rfn-eshadow.el
@@ -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 @@ If Emacs is not running under a window system,
: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
diff --git a/lisp/shell.el b/lisp/shell.el
index df5dee2618..0f7eca3557 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -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
diff --git a/lisp/startup.el b/lisp/startup.el
index 3c070f4e95..1efab6218c 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -305,7 +305,7 @@ looked for.
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 @@ this variable usefully is to set it while building and dumping Emacs."
: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
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index beab676e30..d5e259e5f9 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -222,7 +222,7 @@ This function is run from `before-save-hook'."
;; 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)
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 26dec949e9..3d0fbae969 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -92,7 +92,7 @@ reinserts the fill prefix in each resulting line."
;; 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 @@ a role."
: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
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 5005d70d2b..75cc8e0de4 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1429,6 +1429,7 @@ Valid forms include:
;;;###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 @@ Valid forms include:
("\\(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 @@ for skipping in latex mode.")
;;;###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]>")
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index d24bcf7e2b..f94ba6949b 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -363,7 +363,7 @@ The value of this variable is used when Rst mode is turned on."
;; 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.
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 40d26ee380..9f7ff975e5 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -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 @@ if the variable is non-nil."
: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 @@ See the documentation of that variable."
: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 @@ See the documentation of that variable."
: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 @@ See the documentation of that variable."
: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 @@ If nil, TeX runs with no options. See the documentation of `tex-command'."
: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 @@ Combined with `latex-standard-block-names' for minibuffer completion."
: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 @@ otherwise, the file name, preceded by blank, is added at the end."
: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 @@ otherwise, the file name, preceded by blank, is added at the end."
: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.
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el
index 226b1ddba5..db517830e8 100644
--- a/lisp/tool-bar.el
+++ b/lisp/tool-bar.el
@@ -90,7 +90,7 @@ See `tool-bar-mode' for more information."
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))
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index fc593224d2..b75d650416 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -79,6 +79,7 @@ if drop is successful, nil if not."
:group 'x)
(defcustom x-dnd-known-types
+ (mapcar 'purecopy
'("text/uri-list"
"text/x-moz-url"
"_NETSCAPE_URL"
@@ -91,7 +92,7 @@ if drop is successful, nil if not."
"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"