From 8e20da1517aa585e6286fa8e439db10fb62aaa57 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 5 Aug 2023 17:58:19 +0200 Subject: [PATCH] Simplify rng-substq with cl-substitute * lisp/nxml/rng-util.el (rng-substq): Simplify. (cl-lib): Require. --- lisp/nxml/rng-util.el | 23 +++-------------------- 1 file 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 "[&\"<>]" -- 2.39.5