+2011-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-root-regexp): Remove.
+ (tramp-completion-file-name-regexp-unified)
+ (tramp-completion-file-name-regexp-separate)
+ (tramp-completion-file-name-regexp-url): Don't use leading volume
+ letter on win32 systems. (Bug#5303, Bug#9311)
+ (tramp-drop-volume-letter): Simplify definition. Suggested by
+ Stefan Monnier <monnier@iro.umontreal.ca>.
+
2011-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (event-modifiers): Fix "missing modifier" part of docstring
Also see `tramp-file-name-structure'.")
-;;;###autoload
-(defconst tramp-root-regexp
- (if (memq system-type '(cygwin windows-nt))
- "\\`\\([a-zA-Z]:\\)?/"
- "\\`/")
- "Beginning of an incomplete Tramp file name.
-Usually, it is just \"\\\\`/\". On W32 systems, there might be a
-volume letter, which will be removed by `tramp-drop-volume-letter'.")
-
;;;###autoload
(defconst tramp-completion-file-name-regexp-unified
(if (memq system-type '(cygwin windows-nt))
- (concat tramp-root-regexp "[^/]\\{2,\\}\\'")
- (concat tramp-root-regexp "[^/]*\\'"))
+ "\\`/[^/]\\{2,\\}\\'" "\\`/[^/]*\\'")
"Value for `tramp-completion-file-name-regexp' for unified remoting.
GNU Emacs uses a unified filename syntax for Tramp and Ange-FTP.
See `tramp-file-name-structure' for more explanations.
;;;###autoload
(defconst tramp-completion-file-name-regexp-separate
- (concat tramp-root-regexp "\\([[][^]]*\\)?\\'")
+ "\\`/\\([[][^]]*\\)?\\'"
"Value for `tramp-completion-file-name-regexp' for separate remoting.
XEmacs uses a separate filename syntax for Tramp and EFS.
See `tramp-file-name-structure' for more explanations.")
;;;###autoload
(defconst tramp-completion-file-name-regexp-url
- (concat tramp-root-regexp "[^/:]+\\(:\\(/\\(/[^/]*\\)?\\)?\\)?\\'")
+ "\\`/[^/:]+\\(:\\(/\\(/[^/]*\\)?\\)?\\)?\\'"
"Value for `tramp-completion-file-name-regexp' for URL-like remoting.
See `tramp-file-name-structure' for more explanations.")
(tramp-compat-font-lock-add-keywords
'emacs-lisp-mode '("\\<tramp-with-progress-reporter\\>"))
-(eval-and-compile ;; Silence compiler.
+(defalias 'tramp-drop-volume-letter
(if (memq system-type '(cygwin windows-nt))
- (defun tramp-drop-volume-letter (name)
+ (lambda (name)
"Cut off unnecessary drive letter from file NAME.
The functions `tramp-*-handle-expand-file-name' call `expand-file-name'
locally on a remote file name. When the local system is a W32 system
but the remote system is Unix, this introduces a superfluous drive
letter into the file name. This function removes it."
(save-match-data
- (if (string-match tramp-root-regexp name)
+ (if (string-match "\\`[a-zA-Z]:/" name)
(replace-match "/" nil t name)
name)))
- (defalias 'tramp-drop-volume-letter 'identity)))
+ 'identity))
;;; Config Manipulation Functions: