GNU bug report logs -
#9311
23.3.50; Can't load some byte-compiled files on Windows
Previous Next
Reported by: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
Date: Wed, 17 Aug 2011 00:28:02 UTC
Severity: normal
Found in version 23.3.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> In order to let Tramp continue its work, we have accepted remote file
> names with a leading volume letter, which are removed by Tramp
> then. This worked almost OK, except such cases as discussed in the
> current (and earlier) bug reports.
> Eli did suggest to remove this hack from Tramp, and to see during the
> test where the unexpected volume letter prefix happens. Problems shall
> be fixed there.
Sounds good. We should fix it right instead of using the current workaround.
> @@ -861,13 +861,8 @@
> 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'.")
> +(defconst tramp-root-regexp "\\`/"
> + "Beginning of an incomplete Tramp file name.")
Looks OK.
> @@ -1503,7 +1498,7 @@
> 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)))
Shouldn't tramp-drop-volume-letter disappear completely?
Stefan
PS: by the way, here's a tiny informational patch about common
subexpression elimination and about how to silence the compiler
without a hack.
=== modified file 'lisp/net/tramp.el'
--- lisp/net/tramp.el 2011-07-24 14:57:37 +0000
+++ lisp/net/tramp.el 2011-08-30 16:27:59 +0000
@@ -871,9 +871,8 @@
;;;###autoload
(defconst tramp-completion-file-name-regexp-unified
- (if (memq system-type '(cygwin windows-nt))
- (concat tramp-root-regexp "[^/]\\{2,\\}\\'")
- (concat tramp-root-regexp "[^/]*\\'"))
+ (concat tramp-root-regexp (if (memq system-type '(cygwin windows-nt))
+ "[^/]\\{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.
@@ -1494,9 +1493,9 @@
(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
@@ -1506,8 +1505,7 @@
(if (string-match tramp-root-regexp name)
(replace-match "/" nil t name)
name)))
-
- (defalias 'tramp-drop-volume-letter 'identity)))
+ #'identity))
;;; Config Manipulation Functions:
This bug report was last modified 13 years and 271 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.