aboutsummaryrefslogtreecommitdiffstats
path: root/admin/charsets
diff options
context:
space:
mode:
authorPaul Eggert2020-05-16 17:04:15 -0700
committerPaul Eggert2020-05-16 17:05:37 -0700
commitc7bc28bf038e08fcc03e5dc96cd762af06b34e09 (patch)
tree378ddd85e5549bddeb5642314c8ac1627743e324 /admin/charsets
parenta6ebca21b349ccfffdc0d4b84578d4c7a0f3ee22 (diff)
downloademacs-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.awk13
-rw-r--r--admin/charsets/eucjp-ms.awk14
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
44END { 44END {
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
94END { 94END {
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)";