From: Stefan Kangas Date: Sat, 5 Aug 2023 15:58:19 +0000 (+0200) Subject: Simplify rng-substq with cl-substitute X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8e20da1517aa585e6286fa8e439db10fb62aaa57;p=emacs.git Simplify rng-substq with cl-substitute * lisp/nxml/rng-util.el (rng-substq): Simplify. (cl-lib): Require. --- 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 "[&\"<>]"