Commit 856321e2 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(dired-string-replace-match): Simplify using replace-match.

parent 0b1c32a1
......@@ -1177,8 +1177,6 @@ Optional arg NO-ERROR-IF-NOT-FILEP means return nil if no filename on
file
(and file (concat (dired-current-directory localp) file)))))
;; Cloning replace-match to work on strings instead of in buffer:
;; The FIXEDCASE parameter of replace-match is not implemented.
(defun dired-string-replace-match (regexp string newtext
&optional literal global)
"Replace first match of REGEXP in STRING with NEWTEXT.
......@@ -1186,25 +1184,15 @@ If it does not match, nil is returned instead of the new string.
Optional arg LITERAL means to take NEWTEXT literally.
Optional arg GLOBAL means to replace all matches."
(if global
(let ((result "") (start 0) mb me)
(while (string-match regexp string start)
(setq mb (match-beginning 0)
me (match-end 0)
result (concat result
(substring string start mb)
(if literal
newtext
(dired-expand-newtext string newtext)))
start me))
(if mb ; matched at least once
(concat result (substring string start))
nil))
;; not GLOBAL
(let ((start 0))
(while (string-match regexp string start)
(let ((from-end (- (length string) (match-end 0))))
(setq string (replace-match newtext t literal string))
(setq start (- (length string) from-end))))
string)
(if (not (string-match regexp string 0))
nil
(concat (substring string 0 (match-beginning 0))
(if literal newtext (dired-expand-newtext string newtext))
(substring string (match-end 0))))))
(replace-match newtext t literal string))))
(defun dired-make-absolute (file &optional dir)
;;"Convert FILE (a pathname relative to DIR) to an absolute pathname."
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment