diff options
| author | Paul Eggert | 2020-05-16 17:04:15 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-05-16 17:05:37 -0700 |
| commit | c7bc28bf038e08fcc03e5dc96cd762af06b34e09 (patch) | |
| tree | 378ddd85e5549bddeb5642314c8ac1627743e324 /admin/charsets | |
| parent | a6ebca21b349ccfffdc0d4b84578d4c7a0f3ee22 (diff) | |
| download | emacs-c7bc28bf038e08fcc03e5dc96cd762af06b34e09.tar.gz emacs-c7bc28bf038e08fcc03e5dc96cd762af06b34e09.zip | |
Don’t attempt to modify constant conses
From a patch privately suggested by Mattias Engdegård on 2020-05-11
in a followup to Bug#40671.
* admin/charsets/cp51932.awk:
* admin/charsets/eucjp-ms.awk:
Generate code that does not modify constant conses.
* doc/misc/emacs-mime.texi (Encoding Customization):
* lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops):
* lisp/frameset.el (frameset-persistent-filter-alist):
* lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist):
Use append instead of nconc.
* lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map)
(jisx0213-to-unicode):
Use mapcar instead of mapc.
* lisp/language/lao-util.el (lao-transcription-consonant-alist)
(lao-transcription-vowel-alist):
* lisp/language/tibetan.el (tibetan-subjoined-transcription-alist):
Use copy-sequence.
* test/src/fns-tests.el (fns-tests-nreverse):
(fns-tests-sort, fns-tests-collate-sort)
(fns-tests-string-version-lessp, fns-tests-mapcan):
Use copy-sequence, vector, and list.
Diffstat (limited to 'admin/charsets')
| -rw-r--r-- | admin/charsets/cp51932.awk | 13 | ||||
| -rw-r--r-- | admin/charsets/eucjp-ms.awk | 14 |
2 files changed, 15 insertions, 12 deletions
diff --git a/admin/charsets/cp51932.awk b/admin/charsets/cp51932.awk index 6aac98815b5..c3555095249 100644 --- a/admin/charsets/cp51932.awk +++ b/admin/charsets/cp51932.awk | |||
| @@ -43,13 +43,14 @@ BEGIN { | |||
| 43 | 43 | ||
| 44 | END { | 44 | END { |
| 45 | print ")))"; | 45 | print ")))"; |
| 46 | print " (mapc #'(lambda (x)"; | 46 | print " (setq map (mapcar (lambda (x)"; |
| 47 | print " (setcar x (decode-char 'japanese-jisx0208 (car x))))"; | 47 | print " (cons (decode-char 'japanese-jisx0208 (car x))"; |
| 48 | print " map)"; | 48 | print " (cdr x)))"; |
| 49 | print " map))"; | ||
| 49 | print " (define-translation-table 'cp51932-decode map)"; | 50 | print " (define-translation-table 'cp51932-decode map)"; |
| 50 | print " (mapc #'(lambda (x)"; | 51 | print " (mapc (lambda (x)"; |
| 51 | print " (let ((tmp (car x)))"; | 52 | print " (let ((tmp (car x)))"; |
| 52 | print " (setcar x (cdr x)) (setcdr x tmp)))"; | 53 | print " (setcar x (cdr x)) (setcdr x tmp)))"; |
| 53 | print " map)"; | 54 | print " map)"; |
| 54 | print " (define-translation-table 'cp51932-encode map))"; | 55 | print " (define-translation-table 'cp51932-encode map))"; |
| 55 | print ""; | 56 | print ""; |
diff --git a/admin/charsets/eucjp-ms.awk b/admin/charsets/eucjp-ms.awk index 0c9f94d0f48..f6a6748ce51 100644 --- a/admin/charsets/eucjp-ms.awk +++ b/admin/charsets/eucjp-ms.awk | |||
| @@ -93,15 +93,17 @@ function write_entry (unicode) { | |||
| 93 | 93 | ||
| 94 | END { | 94 | END { |
| 95 | print ")))"; | 95 | print ")))"; |
| 96 | print " (mapc #'(lambda (x)"; | 96 | print " (setq map"; |
| 97 | print " (mapcar"; | ||
| 98 | print " (lambda (x)"; | ||
| 97 | print " (let ((code (logand (car x) #x7F7F)))"; | 99 | print " (let ((code (logand (car x) #x7F7F)))"; |
| 98 | print " (if (integerp (cdr x))"; | 100 | print " (if (integerp (cdr x))"; |
| 99 | print " (setcar x (decode-char 'japanese-jisx0208 code))"; | 101 | print " (cons (decode-char 'japanese-jisx0208 code) (cdr x))"; |
| 100 | print " (setcar x (decode-char 'japanese-jisx0212 code))"; | 102 | print " (cons (decode-char 'japanese-jisx0212 code)" |
| 101 | print " (setcdr x (cadr x)))))"; | 103 | print " (cadr x)))))"; |
| 102 | print " map)"; | 104 | print " map))"; |
| 103 | print " (define-translation-table 'eucjp-ms-decode map)"; | 105 | print " (define-translation-table 'eucjp-ms-decode map)"; |
| 104 | print " (mapc #'(lambda (x)"; | 106 | print " (mapc (lambda (x)"; |
| 105 | print " (let ((tmp (car x)))"; | 107 | print " (let ((tmp (car x)))"; |
| 106 | print " (setcar x (cdr x)) (setcdr x tmp)))"; | 108 | print " (setcar x (cdr x)) (setcdr x tmp)))"; |
| 107 | print " map)"; | 109 | print " map)"; |