# HG changeset patch # User Dan Nicolaescu # Date 1257920843 0 # Node ID d319f1aaff7cf86f86aefe67fa043573b1638abd # Parent 6bc99fd16720b913772f5587eae67b9db14018c5 (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. diff -r 6bc99fd16720 -r d319f1aaff7c lisp/ChangeLog --- a/lisp/ChangeLog Wed Nov 11 06:22:30 2009 +0000 +++ b/lisp/ChangeLog Wed Nov 11 06:27:23 2009 +0000 @@ -1,5 +1,10 @@ 2009-11-11 Dan Nicolaescu + * 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. diff -r 6bc99fd16720 -r d319f1aaff7c lisp/international/mule.el --- a/lisp/international/mule.el Wed Nov 11 06:22:30 2009 +0000 +++ b/lisp/international/mule.el Wed Nov 11 06:27:23 2009 +0000 @@ -264,7 +264,7 @@ (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 @@ ;; 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 @@ (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 @@ "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 @@ (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 @@ ("\\.\\(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 @@ (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.