# HG changeset patch # User Michael Albinus # Date 1092172718 0 # Node ID 0cee455027edfe58134b51db30fcd6db0e7a125a # Parent 629b8defcfb4771a0d7f9d4831aa31b7fc77c8f5 Sync with Tramp 2.0.44. diff -r 629b8defcfb4 -r 0cee455027ed lisp/ChangeLog --- a/lisp/ChangeLog Tue Aug 10 15:45:54 2004 +0000 +++ b/lisp/ChangeLog Tue Aug 10 21:18:38 2004 +0000 @@ -1,3 +1,30 @@ +2004-08-10 Michael Albinus + + Sync with Tramp 2.0.44. + + * net/tramp.el (tramp-post-connection): Quote $1 and $2 of shell + function "tramp_file_attributes". Otherwise, file names + containing spaces are misinterpreted. Reported by Magnus Henoch + . + (tramp-handle-file-truename): FILENAME must be expanded first. + Otherwise, parameters like "/ssh:deego@gnufans.net:~" will return + obscure results. Reported by D. Goel . + (tramp-handle-verify-visited-file-modtime): If file does not + exist, say it is not modified if and only if that agrees with the + buffer's record. Check whether a file is visiting the buffer, or + the buffer has no recorded last modification time. Return t in + case the visiting file doesn't exist. Suggested by Luc Teirlinck + . + (tramp-handle-write-region): Pass modtime explicitely to + `set-visited-file-modtime', because filename can be different + from (buffer-file-name) if `file-precious-flag' is set. + `set-visited-file-modtime' must be called always when `visit' is t + or a string. Suggested by Luc Teirlinck . + (tramp-handle-set-visited-file-modtime): If `time-list' is not + nil, don't apply the whole body. If the file doesn't exists, set + modtime to '(-1 65535). Suggested by Luc Teirlinck + . + 2004-08-09 Luc Teirlinck * help.el (describe-bindings): Doc fix. diff -r 629b8defcfb4 -r 0cee455027ed lisp/net/tramp.el --- a/lisp/net/tramp.el Tue Aug 10 15:45:54 2004 +0000 +++ b/lisp/net/tramp.el Tue Aug 10 21:18:38 2004 +0000 @@ -2055,7 +2055,7 @@ (defun tramp-handle-file-truename (filename &optional counter prev-dirs) "Like `file-truename' for tramp files." - (with-parsed-tramp-file-name filename nil + (with-parsed-tramp-file-name (expand-file-name filename) nil (let* ((steps (tramp-split-string localname "/")) (localnamedir (tramp-let-maybe directory-sep-char ?/ ;for XEmacs (file-name-as-directory localname))) @@ -2299,32 +2299,33 @@ (unless (buffer-file-name) (error "Can't set-visited-file-modtime: buffer `%s' not visiting a file" (buffer-name))) - (when time-list - (tramp-run-real-handler 'set-visited-file-modtime (list time-list))) - (let ((f (buffer-file-name)) - (coding-system-used nil)) - (with-parsed-tramp-file-name f nil - (let* ((attr (file-attributes f)) - (modtime (nth 5 attr))) - ;; We use '(0 0) as a don't-know value. See also - ;; `tramp-handle-file-attributes-with-ls'. - (when (boundp 'last-coding-system-used) - (setq coding-system-used last-coding-system-used)) - (if (not (equal modtime '(0 0))) - (tramp-run-real-handler 'set-visited-file-modtime (list modtime)) - (save-excursion - (tramp-send-command - multi-method method user host - (format "%s -ild %s" - (tramp-get-ls-command multi-method method user host) - (tramp-shell-quote-argument localname))) - (tramp-wait-for-output) - (setq attr (buffer-substring (point) - (progn (end-of-line) (point))))) - (setq tramp-buffer-file-attributes attr)) - (when (boundp 'last-coding-system-used) - (setq last-coding-system-used coding-system-used)) - nil)))) + (if time-list + (tramp-run-real-handler 'set-visited-file-modtime (list time-list)) + (let ((f (buffer-file-name)) + (coding-system-used nil)) + (with-parsed-tramp-file-name f nil + (let* ((attr (file-attributes f)) + ;; '(-1 65535) means file doesn't exists yet. + (modtime (or (nth 5 attr) '(-1 65535)))) + ;; We use '(0 0) as a don't-know value. See also + ;; `tramp-handle-file-attributes-with-ls'. + (when (boundp 'last-coding-system-used) + (setq coding-system-used last-coding-system-used)) + (if (not (equal modtime '(0 0))) + (tramp-run-real-handler 'set-visited-file-modtime (list modtime)) + (save-excursion + (tramp-send-command + multi-method method user host + (format "%s -ild %s" + (tramp-get-ls-command multi-method method user host) + (tramp-shell-quote-argument localname))) + (tramp-wait-for-output) + (setq attr (buffer-substring (point) + (progn (end-of-line) (point))))) + (setq tramp-buffer-file-attributes attr)) + (when (boundp 'last-coding-system-used) + (setq last-coding-system-used coding-system-used)) + nil))))) ;; CCC continue here @@ -3811,8 +3812,11 @@ (unless (equal curbuf (current-buffer)) (error "Buffer has changed from `%s' to `%s'" curbuf (current-buffer))) - (when (eq visit t) - (set-visited-file-modtime)) + (when (or (eq visit t) (stringp visit)) + (set-visited-file-modtime + ;; We must pass modtime explicitely, because filename can be different + ;; from (buffer-file-name), f.e. if `file-precious-flag' is set. + (nth 5 (file-attributes filename)))) ;; Make `last-coding-system-used' have the right value. (when (boundp 'last-coding-system-used) (setq last-coding-system-used coding-system-used)) @@ -5847,7 +5851,8 @@ multi-method method user host (concat "tramp_file_attributes () {\n" tramp-remote-perl - " -e '" tramp-perl-file-attributes "' $1 $2 2>/dev/null\n" + " -e '" tramp-perl-file-attributes "'" + " \"$1\" \"$2\" 2>/dev/null\n" "}")) (tramp-wait-for-output) (unless (tramp-method-out-of-band-p multi-method method user host) diff -r 629b8defcfb4 -r 0cee455027ed lisp/net/trampver.el --- a/lisp/net/trampver.el Tue Aug 10 15:45:54 2004 +0000 +++ b/lisp/net/trampver.el Tue Aug 10 21:18:38 2004 +0000 @@ -30,7 +30,7 @@ ;; are auto-frobbed from configure.ac, so you should edit that file and run ;; "autoconf && ./configure" to change them. -(defconst tramp-version "2.0.39" +(defconst tramp-version "2.0.44" "This version of Tramp.") (defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org" diff -r 629b8defcfb4 -r 0cee455027ed man/ChangeLog --- a/man/ChangeLog Tue Aug 10 15:45:54 2004 +0000 +++ b/man/ChangeLog Tue Aug 10 21:18:38 2004 +0000 @@ -1,3 +1,7 @@ +2004-08-10 Michael Albinus + + Sync with Tramp 2.0.44. + 2004-08-05 Lars Hansen * widget.texi (User Interface): Update how to separate the diff -r 629b8defcfb4 -r 0cee455027ed man/trampver.texi --- a/man/trampver.texi Tue Aug 10 15:45:54 2004 +0000 +++ b/man/trampver.texi Tue Aug 10 21:18:38 2004 +0000 @@ -4,7 +4,7 @@ @c In the Tramp CVS, the version number is auto-frobbed from @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. -@set trampver 2.0.43 +@set trampver 2.0.44 @c Other flags from configuration @set prefix /usr/local