diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2023-08-05 17:58:19 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2023-08-05 17:58:19 +0200 |
commit | 8e20da1517aa585e6286fa8e439db10fb62aaa57 (patch) | |
tree | 02713f4f52d1c36e43e48b67ba28fd27d356a997 /lisp/nxml | |
parent | ed3954445045aca3cdc60dbd6b75a3a55470e28b (diff) | |
download | emacs-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.el | 23 |
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 "[&\"<>]" |