[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 32763da 2/2: Replace add-to-list to lexical variable with push
From: |
Mattias Engdegård |
Subject: |
emacs-27 32763da 2/2: Replace add-to-list to lexical variable with push (bug#39373) |
Date: |
Sat, 1 Feb 2020 16:41:36 -0500 (EST) |
branch: emacs-27
commit 32763dac46e61cc34e8fe4d19df4905d09c1a27f
Author: Mattias Engdegård <address@hidden>
Commit: Mattias Engdegård <address@hidden>
Replace add-to-list to lexical variable with push (bug#39373)
Since 'add-to-list', being a plain function, cannot access lexical
variables, such use must be rewritten for correctness.
(Some instances actually do work thanks to a compiler macro,
but it's not something code should rely on.)
* lisp/autoinsert.el (auto-insert-alist):
* lisp/cedet/mode-local.el (mode-local-print-bindings):
* lisp/net/tramp-cache.el (tramp-flush-connection-properties)
(tramp-list-connections):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services):
* lisp/org/org.el (org-reload):
* lisp/whitespace.el (whitespace-report-region):
* test/lisp/emacs-lisp/map-tests.el (test-map-do):
Replace add-to-list with push.
---
lisp/autoinsert.el | 2 +-
lisp/cedet/mode-local.el | 14 ++++++--------
lisp/net/tramp-cache.el | 4 ++--
lisp/net/zeroconf.el | 12 ++++++------
lisp/org/org.el | 5 +++--
lisp/whitespace.el | 2 +-
test/lisp/emacs-lisp/map-tests.el | 2 +-
7 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el
index 9bc3aad..25961d4 100644
--- a/lisp/autoinsert.el
+++ b/lisp/autoinsert.el
@@ -171,7 +171,7 @@ If this contains a %s, that will be replaced by the
matching rule."
(mapatoms (lambda (mode)
(let ((name (symbol-name mode)))
(when (string-match "-mode$" name)
- (add-to-list 'modes name)))))
+ (push name modes)))))
(sort modes 'string<)))
(completing-read "Local variables for mode: " v1 nil t)
" . (("
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
index a6e143c..a1aea30 100644
--- a/lisp/cedet/mode-local.el
+++ b/lisp/cedet/mode-local.el
@@ -819,14 +819,12 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)."
)
;; Order symbols by type
(mapatoms
- #'(lambda (s)
- (add-to-list (cond
- ((get s 'mode-variable-flag)
- (if (get s 'constant-flag) 'mc 'mv))
- ((get s 'override-flag)
- (if (get s 'constant-flag) 'fo 'ov))
- ('us))
- s))
+ (lambda (s) (push s (cond
+ ((get s 'mode-variable-flag)
+ (if (get s 'constant-flag) mc mv))
+ ((get s 'override-flag)
+ (if (get s 'constant-flag) fo ov))
+ (t us))))
table)
;; Print symbols by type
(when us
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index b81a1a2..62e25fa 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -373,7 +373,7 @@ used to cache connection properties of the local machine."
(let ((hash (gethash key tramp-cache-data))
properties)
(when (hash-table-p hash)
- (maphash (lambda (x _y) (add-to-list 'properties x 'append)) hash))
+ (maphash (lambda (x _y) (push x properties)) hash))
properties))
(setq tramp-cache-data-changed t)
(remhash key tramp-cache-data))
@@ -427,7 +427,7 @@ used to cache connection properties of the local machine."
(when (and (tramp-file-name-p key)
(null (tramp-file-name-localname key))
(tramp-connection-property-p key "process-buffer"))
- (add-to-list 'result key)))
+ (push key result)))
tramp-cache-data)
result))
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index b8becd7..cb3c0f2 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -256,17 +256,17 @@ supported keys depend on the service type.")
"Return all discovered Avahi service names as list."
(let (result)
(maphash
- (lambda (_key value) (add-to-list 'result (zeroconf-service-name value)))
+ (lambda (_key value) (push (zeroconf-service-name value) result))
zeroconf-services-hash)
- result))
+ (delete-dups result)))
(defun zeroconf-list-service-types ()
"Return all discovered Avahi service types as list."
(let (result)
(maphash
- (lambda (_key value) (add-to-list 'result (zeroconf-service-type value)))
+ (lambda (_key value) (push (zeroconf-service-type value) result))
zeroconf-services-hash)
- result))
+ (delete-dups result)))
(defun zeroconf-list-services (type)
"Return all discovered Avahi services for a given service type TYPE.
@@ -278,9 +278,9 @@ format of SERVICE."
(maphash
(lambda (_key value)
(when (equal type (zeroconf-service-type value))
- (add-to-list 'result value)))
+ (push value result)))
zeroconf-services-hash)
- result))
+ (delete-dups result)))
(defvar zeroconf-service-added-hooks-hash (make-hash-table :test 'equal)
"Hash table of hooks for newly added services.
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 5c8b02b..568f5b9 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -18682,13 +18682,14 @@ With prefix arg UNCOMPILED, load the uncompiled
versions."
(and (string= org-dir contrib-dir)
(org-load-noerror-mustsuffix (concat
contrib-dir f)))
(and (org-load-noerror-mustsuffix (concat
(org-find-library-dir f) f))
- (add-to-list 'load-uncore f 'append)
+ (push f load-uncore)
't)
f))
lfeat)))
(when load-uncore
(message "The following feature%s found in load-path, please check if
that's correct:\n%s"
- (if (> (length load-uncore) 1) "s were" " was") load-uncore))
+ (if (> (length load-uncore) 1) "s were" " was")
+ (reverse load-uncore)))
(if load-misses
(message "Some error occurred while reloading Org feature%s\n%s\nPlease
check *Messages*!\n%s"
(if (> (length load-misses) 1) "s" "") load-misses
(org-version nil 'full))
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 111b175..db7c023 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -1684,7 +1684,7 @@ cleaning up these problems."
(mapcar
#'(lambda (option)
(when force
- (add-to-list 'style (car option)))
+ (push (car option) style))
(goto-char rstart)
(let ((regexp
(cond
diff --git a/test/lisp/emacs-lisp/map-tests.el
b/test/lisp/emacs-lisp/map-tests.el
index 06fd55f..c52bb83 100644
--- a/test/lisp/emacs-lisp/map-tests.el
+++ b/test/lisp/emacs-lisp/map-tests.el
@@ -227,7 +227,7 @@ Evaluate BODY for each created map.
(with-maps-do map
(let ((result nil))
(map-do (lambda (k v)
- (add-to-list 'result (list (int-to-string k) v)))
+ (push (list (int-to-string k) v) result))
map)
(should (equal result '(("2" 5) ("1" 4) ("0" 3)))))))