Mercurial > emacs
changeset 74832:d53f5b616853
(convert-standard-filename): Wrap in save-match-data.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 22 Dec 2006 23:32:24 +0000 |
parents | 809fa10d2c90 |
children | be554347de52 |
files | lisp/w32-fns.el |
diffstat | 1 files changed, 21 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/w32-fns.el Fri Dec 22 23:27:28 2006 +0000 +++ b/lisp/w32-fns.el Fri Dec 22 23:32:24 2006 +0000 @@ -240,28 +240,28 @@ sure to obey the 8.3 limitations. On Windows, turn Cygwin names into native names, and also turn slashes into backslashes if the shell requires it (see `w32-shell-dos-semantics')." - (let ((name - (save-match-data - (if (string-match "\\`/cygdrive/\\([a-zA-Z]\\)/" filename) + (save-match-data + (let ((name + (if (string-match "\\`/cygdrive/\\([a-zA-Z]\\)/" filename) (replace-match "\\1:/" t nil filename) - (copy-sequence filename)))) - (start 0)) - ;; leave ':' if part of drive specifier - (if (and (> (length name) 1) - (eq (aref name 1) ?:)) - (setq start 2)) - ;; destructively replace invalid filename characters with ! - (while (string-match "[?*:<>|\"\000-\037]" name start) - (aset name (match-beginning 0) ?!) - (setq start (match-end 0))) - ;; convert directory separators to Windows format - ;; (but only if the shell in use requires it) - (when (w32-shell-dos-semantics) - (setq start 0) - (while (string-match "/" name start) - (aset name (match-beginning 0) ?\\) - (setq start (match-end 0)))) - name)) + (copy-sequence filename))) + (start 0)) + ;; leave ':' if part of drive specifier + (if (and (> (length name) 1) + (eq (aref name 1) ?:)) + (setq start 2)) + ;; destructively replace invalid filename characters with ! + (while (string-match "[?*:<>|\"\000-\037]" name start) + (aset name (match-beginning 0) ?!) + (setq start (match-end 0))) + ;; convert directory separators to Windows format + ;; (but only if the shell in use requires it) + (when (w32-shell-dos-semantics) + (setq start 0) + (while (string-match "/" name start) + (aset name (match-beginning 0) ?\\) + (setq start (match-end 0)))) + name))) ;;; Fix interface to (X-specific) mouse.el (defun x-set-selection (type data)