summaryrefslogtreecommitdiff
path: root/lisp/nxml
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2023-08-05 17:58:19 +0200
committerStefan Kangas <stefankangas@gmail.com>2023-08-05 17:58:19 +0200
commit8e20da1517aa585e6286fa8e439db10fb62aaa57 (patch)
tree02713f4f52d1c36e43e48b67ba28fd27d356a997 /lisp/nxml
parented3954445045aca3cdc60dbd6b75a3a55470e28b (diff)
downloademacs-8e20da1517aa585e6286fa8e439db10fb62aaa57.tar.gz
Simplify rng-substq with cl-substitute
* lisp/nxml/rng-util.el (rng-substq): Simplify. (cl-lib): Require.
Diffstat (limited to 'lisp/nxml')
-rw-r--r--lisp/nxml/rng-util.el23
1 files changed, 3 insertions, 20 deletions
diff --git a/lisp/nxml/rng-util.el b/lisp/nxml/rng-util.el
index 27c924d960f..4f49885fc45 100644
--- a/lisp/nxml/rng-util.el
+++ b/lisp/nxml/rng-util.el
@@ -24,6 +24,8 @@
;;; Code:
+(require 'cl-lib)
+
(defun rng-make-datatypes-uri (uri)
(if (string-equal uri "")
;; The spec doesn't say to do this, but it's perfectly conformant
@@ -39,26 +41,7 @@
(defun rng-substq (new old list)
"Replace first member of LIST (if any) that is `eq' to OLD by NEW.
LIST is not modified."
- (cond ((null list) nil)
- ((eq (car list) old)
- (cons new (cdr list)))
- (t
- (let ((tail (cons (car list)
- nil))
- (rest (cdr list)))
- (setq list tail)
- (while rest
- (let ((item (car rest)))
- (setq rest (cdr rest))
- (cond ((eq item old)
- (setcdr tail
- (cons new rest))
- (setq rest nil))
- (t
- (setq tail
- (setcdr tail
- (cons item nil))))))))
- list)))
+ (cl-substitute new old list :count 1 :test #'eq))
(defun rng-escape-string (s)
(replace-regexp-in-string "[&\"<>]"