[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex b326502 05/23: Don't use `add-to-list' on lexica
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex b326502 05/23: Don't use `add-to-list' on lexical vars |
Date: |
Sat, 23 Jan 2021 04:10:06 -0500 (EST) |
branch: externals/auctex
commit b326502954199d5f4339f09e82dfd1dcb32ca1d6
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>
Don't use `add-to-list' on lexical vars
* tex.el (TeX-view-program-list, TeX-view-program-selection):
(TeX-add-to-alist):
Don't use `add-to-list' on lexical scope variables.
* tests/tex/utility.el (TeX-adding-to-alist): New test.
(): Enable lexical binding. Update copyright year.
---
tests/tex/utility.el | 31 +++++++++++++++++++++++++++++--
tex.el | 14 ++++++++------
2 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/tests/tex/utility.el b/tests/tex/utility.el
index 92442ba..ac0a8aa 100644
--- a/tests/tex/utility.el
+++ b/tests/tex/utility.el
@@ -1,6 +1,6 @@
-;;; utility.el --- tests for AUCTeX utility functions
+;;; utility.el --- tests for AUCTeX utility functions -*- lexical-binding: t;
-*-
-;; Copyright (C) 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2017, 2021 Free Software Foundation, Inc.
;; This file is part of AUCTeX.
@@ -28,4 +28,31 @@
(should (TeX-delete-duplicate-strings '("nil")))
(should (TeX-delete-dups-by-car '(("nil" . 1)))))
+;; `TeX-add-to-alist' needs dynamic scope variable as its first
+;; argument.
+(defvar TeX-dummy-alist nil)
+
+(ert-deftest TeX-adding-to-alist ()
+ "Check whether `TeX-add-to-alist' works as expected."
+ (TeX-add-to-alist 'TeX-dummy-alist '((a 1)))
+ (should (equal TeX-dummy-alist '((a 1))))
+
+ (TeX-add-to-alist 'TeX-dummy-alist '((b 2 3)))
+ (should (equal TeX-dummy-alist '((a 1) (b 2 3))))
+
+ ;; Append new value(s) of the same key. The target cons is moved to
+ ;; the last of the alist.
+ (TeX-add-to-alist 'TeX-dummy-alist '((a 4)))
+ (should (equal TeX-dummy-alist '((b 2 3) (a 1 4))))
+
+ ;; Adding the same value again should not create duplicated
+ ;; elements.
+ (TeX-add-to-alist 'TeX-dummy-alist '((a 1)))
+ (should (equal TeX-dummy-alist '((b 2 3) (a 1 4))))
+
+ ;; A value which is the same as the key should be included in the
+ ;; result.
+ (TeX-add-to-alist 'TeX-dummy-alist '((a a)))
+ (should (equal TeX-dummy-alist '((b 2 3) (a 1 4 a)))))
+
;;; utility.el ends here
diff --git a/tex.el b/tex.el
index 8469dd0..915702f 100644
--- a/tex.el
+++ b/tex.el
@@ -1365,7 +1365,7 @@ restarting Emacs."
,(let (list)
;; Build the list of available predicates.
(mapc (lambda (spec)
- (add-to-list 'list `(const ,(car spec))))
+ (cl-pushnew `(const ,(car spec)) list :test
#'equal))
(append TeX-view-predicate-list
TeX-view-predicate-list-builtin))
;; Sort the list alphabetically.
@@ -1421,7 +1421,7 @@ are evaluated positively is chosen."
;; Offer list of defined predicates.
,(let (list)
(mapc (lambda (spec)
- (add-to-list 'list `(const ,(car spec))))
+ (cl-pushnew `(const ,(car spec)) list :test
#'equal))
(append TeX-view-predicate-list
TeX-view-predicate-list-builtin))
(setq list (sort list
@@ -1437,8 +1437,8 @@ are evaluated positively is chosen."
(group (choice :tag "Viewer"
,@(let (list)
(mapc (lambda (spec)
- (add-to-list 'list
- `(const ,(car spec))))
+ (cl-pushnew `(const ,(car spec))
+ list :test #'equal))
(append TeX-view-program-list
TeX-view-program-list-builtin))
(sort list
@@ -4713,9 +4713,11 @@ element to ALIST-VAR."
(set alist-var (delete old-element (symbol-value alist-var)))
;; Append to `old-element' the values of the current element of
;; NEW-ALIST.
- (mapc (lambda (elt) (add-to-list 'old-element elt t))
+ (mapc (lambda (elt)
+ (unless (member elt (cdr old-element))
+ (setq old-element (append old-element (list elt)))))
(cdr new-element))
- (set alist-var (add-to-list alist-var old-element t)))
+ (add-to-list alist-var old-element t))
(add-to-list alist-var new-element t)))
;; Next element of NEW-ALIST.
(setq new-alist (cdr new-alist))))
- [elpa] externals/auctex updated (4473c1f -> 7b07019), Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 83d68ae 02/23: Add use-package recipe to installation info docs, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex eba6bab 03/23: Fix docstring too wide warnings, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex b465e38 04/23: Fix mistake in use-package recipe, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex b326502 05/23: Don't use `add-to-list' on lexical vars,
Tassilo Horn <=
- [elpa] externals/auctex 3baaff2 08/23: Update style/fancyhdr.el to package version 4.0, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 130010b 09/23: Add new style/extramarks.el, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 8e012b3 06/23: Fix off-by-one behavior of preview-latex (bug#39927), Tassilo Horn, 2021/01/23
- [elpa] externals/auctex db98d06 11/23: ; * style/fancyhdr.el: Fix package year., Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 46c356b 18/23: Update style/multirow.el to package version 2.6, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 3f38eb2 07/23: Support page(box) options for dvipdfmx in graphicx.el, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex a1569ca 12/23: Fix use-package recipe in install docs (once again), Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 74f5675 01/23: Adapt preview.el.in for `TeX-translate-location-hook', Tassilo Horn, 2021/01/23
- [elpa] externals/auctex 2c5c2e1 10/23: Add support for some missing kernel macros, Tassilo Horn, 2021/01/23
- [elpa] externals/auctex ba0b1af 21/23: Prevent inadvertent destruction of list variable, Tassilo Horn, 2021/01/23