# HG changeset patch # User Michael Albinus # Date 1282020736 -7200 # Node ID 88276a8b38b9df112930b3a3423e6182b0864b27 # Parent e4d8eb8030c08db3b83b4eb667e7817527bf8f77 * net/tramp.el (tramp-handle-make-symbolic-link): Flush file properties. (tramp-handle-process-file): Call the program in a subshell, in order to preserve working directory. (tramp-action-password): Hide password prompt before next run. (tramp-process-actions): Widen connection buffer for the trace. diff -r e4d8eb8030c0 -r 88276a8b38b9 lisp/ChangeLog --- a/lisp/ChangeLog Mon Aug 16 10:17:02 2010 +0200 +++ b/lisp/ChangeLog Tue Aug 17 06:52:16 2010 +0200 @@ -1,3 +1,12 @@ +2010-08-17 Michael Albinus + + * net/tramp.el (tramp-handle-make-symbolic-link): Flush file + properties. + (tramp-handle-process-file): Call the program in a subshell, in + order to preserve working directory. + (tramp-action-password): Hide password prompt before next run. + (tramp-process-actions): Widen connection buffer for the trace. + 2010-08-16 Deniz Dogan * net/rcirc.el (rcirc-log-process-buffers): New option. diff -r e4d8eb8030c0 -r 88276a8b38b9 lisp/net/tramp.el --- a/lisp/net/tramp.el Mon Aug 16 10:17:02 2010 +0200 +++ b/lisp/net/tramp.el Tue Aug 17 06:52:16 2010 +0200 @@ -2552,7 +2552,7 @@ (unless ln (tramp-error l 'file-error - "Making a symbolic link. ln(1) does not exist on the remote host.")) + "Making a symbolic link. ln(1) does not exist on the remote host.")) ;; Do the 'confirm if exists' thing. (when (file-exists-p linkname) @@ -2573,6 +2573,9 @@ (tramp-file-name-localname (tramp-dissect-file-name (expand-file-name filename))))) + (tramp-flush-file-property l (file-name-directory l-localname)) + (tramp-flush-file-property l l-localname) + ;; Right, they are on the same host, regardless of user, method, etc. ;; We now make the link on the remote machine. This will occur as the user ;; that FILENAME belongs to. @@ -4638,7 +4641,9 @@ (setq outbuf (current-buffer)))) (when stderr (setq command (format "%s 2>%s" command stderr))) - ;; Send the command. It might not return in time, so we protect it. + ;; Send the command. It might not return in time, so we protect + ;; it. Call it in a subshell, in order to preserve working + ;; directory. (condition-case nil (unwind-protect (setq ret @@ -4646,7 +4651,7 @@ v (format "\\cd %s; %s" (tramp-shell-quote-argument localname) command) - nil t)) + t t)) ;; We should show the output anyway. (when outbuf (with-current-buffer outbuf @@ -6698,8 +6703,10 @@ "Query the user for a password." (with-current-buffer (process-buffer proc) (tramp-check-for-regexp proc tramp-password-prompt-regexp) - (tramp-message vec 3 "Sending %s" (match-string 1))) - (tramp-enter-password proc)) + (tramp-message vec 3 "Sending %s" (match-string 1)) + (tramp-enter-password proc) + ;; Hide password prompt. + (narrow-to-region (point-max) (point-max)))) (defun tramp-action-succeed (proc vec) "Signal success in finding shell prompt." @@ -6810,6 +6817,7 @@ (tramp-process-one-action proc vec actions)) (tramp-process-one-action proc vec actions))))) (with-current-buffer (tramp-get-connection-buffer vec) + (widen) (tramp-message vec 6 "\n%s" (buffer-string))) (unless (eq exit 'ok) (tramp-clear-passwd vec)