changeset 109807:88276a8b38b9

* 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.
author Michael Albinus <albinus@detlef>
date Tue, 17 Aug 2010 06:52:16 +0200
parents e4d8eb8030c0
children 210b4524545e
files lisp/ChangeLog lisp/net/tramp.el
diffstat 2 files changed, 22 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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  <michael.albinus@gmx.de>
+
+	* 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  <deniz.a.m.dogan@gmail.com>
 
 	* net/rcirc.el (rcirc-log-process-buffers): New option.
--- 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)