Mercurial > emacs
changeset 10214:82e7df72b8a0
(dired-string-replace-match): Function moved here.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 22 Dec 1994 04:17:30 +0000 |
parents | dd2102e33b29 |
children | 7690653b9231 |
files | lisp/dired.el |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/dired.el Thu Dec 22 04:16:36 1994 +0000 +++ b/lisp/dired.el Thu Dec 22 04:17:30 1994 +0000 @@ -1161,6 +1161,35 @@ 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. +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 + (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)))))) + (defun dired-make-absolute (file &optional dir) ;;"Convert FILE (a pathname relative to DIR) to an absolute pathname." ;; We can't always use expand-file-name as this would get rid of `.'