]> git.eshelyaron.com Git - emacs.git/commitdiff
(define-charset): Purecopy props.
authorDan Nicolaescu <dann@ics.uci.edu>
Wed, 11 Nov 2009 06:27:23 +0000 (06:27 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Wed, 11 Nov 2009 06:27:23 +0000 (06:27 +0000)
(load-with-code-conversion): Purecopy doc string and file name.
(put-charset-property): Purecopy strings.
(auto-coding-alist, auto-coding-regexp-alist): Purecopy initial value.

lisp/ChangeLog
lisp/international/mule.el

index 0bd7a705ea6a316eada20cd066013d5c4e350020..8cb2f2121cb4634428c8d4c11904739a9b342bfb 100644 (file)
@@ -1,5 +1,10 @@
 2009-11-11  Dan Nicolaescu  <dann@ics.uci.edu>
 
+       * international/mule.el (define-charset): Purecopy props.
+       (load-with-code-conversion): Purecopy doc string and file name.
+       (put-charset-property): Purecopy strings.
+       (auto-coding-alist, auto-coding-regexp-alist): Purecopy initial value.
+
        * international/mule-cmds.el (register-input-method); Purecopy arguments.
        (define-char-code-property): Correctly purecopy the table.
 
index 9be8e2fee43ef5460af0008c516a2691b8d7bd3b..c4e8f06f5e024d810653de53d8b5177c5095e141 100644 (file)
@@ -264,7 +264,7 @@ attribute."
          (aset emacs-mule-charset-table emacs-mule-id name)))
 
     (dolist (slot attrs)
-      (setcdr slot (plist-get props (car slot))))
+      (setcdr slot (purecopy (plist-get props (car slot)))))
 
     ;; Make sure that the value of :code-space is a vector of 8
     ;; elements.
@@ -277,7 +277,7 @@ attribute."
 
     ;; Add :name and :docstring properties to PROPS.
     (setq props
-         (cons :name (cons name (cons :docstring (cons docstring props)))))
+         (cons :name (cons name (cons :docstring (cons (purecopy docstring) props)))))
     (or (plist-get props :short-name)
        (plist-put props :short-name (symbol-name name)))
     (or (plist-get props :long-name)
@@ -317,7 +317,7 @@ Return t if file exists."
            (message "Loading %s (source)..." file)
          (message "Loading %s..." file)))
       (when purify-flag
-       (push file preloaded-file-list))
+       (push (purecopy file) preloaded-file-list))
       (unwind-protect
          (let ((load-file-name fullname)
                (set-auto-coding-for-load t)
@@ -433,7 +433,10 @@ This is the last value stored with
   "Set CHARSETS's PROPNAME property to value VALUE.
 It can be retrieved with `(get-charset-property CHARSET PROPNAME)'."
   (set-charset-plist charset
-                    (plist-put (charset-plist charset) propname value)))
+                    (plist-put (charset-plist charset) propname
+                               (if (stringp value)
+                                   (purecopy value)
+                                 value))))
 
 (defun charset-description (charset)
   "Return description string of CHARSET."
@@ -1620,7 +1623,7 @@ and convert it in the temporary buffer.  Otherwise, convert in-place."
 (defcustom auto-coding-alist
   ;; .exe and .EXE are added to support archive-mode looking at DOS
   ;; self-extracting exe archives.
-  '(("\\.\\(\
+  (purecopy '(("\\.\\(\
 arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|\
 ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\)\\'"
      . no-conversion-multibyte)
@@ -1629,7 +1632,7 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\)\\'"
     ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
     ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)
     ("\\.pdf\\'" . no-conversion)
-    ("/#[^/]+#\\'" . emacs-mule))
+    ("/#[^/]+#\\'" . emacs-mule)))
   "Alist of filename patterns vs corresponding coding systems.
 Each element looks like (REGEXP . CODING-SYSTEM).
 A file whose name matches REGEXP is decoded by CODING-SYSTEM on reading.
@@ -1643,11 +1646,12 @@ and the contents of `file-coding-system-alist'."
                       (symbol :tag "Coding system"))))
 
 (defcustom auto-coding-regexp-alist
+  (purecopy
   '(("\\`BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion)
     ("\\`\xFE\xFF" . utf-16be-with-signature)
     ("\\`\xFF\xFE" . utf-16le-with-signature)
     ("\\`\xEF\xBB\xBF" . utf-8-with-signature)
-    ("\\`;ELC\024\0\0\0" . emacs-mule))        ; Emacs 20-compiled
+    ("\\`;ELC\024\0\0\0" . emacs-mule)))       ; Emacs 20-compiled
   "Alist of patterns vs corresponding coding systems.
 Each element looks like (REGEXP . CODING-SYSTEM).
 A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading.