* net/tramp.el (tramp-process-actions): Add POS argument. Delete
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 25 Apr 2011 17:58:27 +0000 (19:58 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 25 Apr 2011 17:58:27 +0000 (19:58 +0200)
region between POS and (pos).
(tramp-do-copy-or-rename-file-out-of-band): Use `nil' position in
`tramp-process-actions' call.
(tramp-maybe-open-connection): Call `tramp-process-actions' with pos.

* net/tramp-smb.el (tramp-smb-maybe-open-connection): Use `nil'
position in `tramp-process-actions' call.

lisp/ChangeLog
lisp/net/tramp-smb.el
lisp/net/tramp.el

index 898b281..69e8846 100644 (file)
@@ -1,3 +1,14 @@
+2011-04-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el (tramp-process-actions): Add POS argument.  Delete
+       region between POS and (pos).
+       (tramp-do-copy-or-rename-file-out-of-band): Use `nil' position in
+       `tramp-process-actions' call.
+       (tramp-maybe-open-connection): Call `tramp-process-actions' with pos.
+
+       * net/tramp-smb.el (tramp-smb-maybe-open-connection): Use `nil'
+       position in `tramp-process-actions' call.
+
 2011-04-24  Daniel Colascione <dan.colascione@gmail.com>
 
        * progmodes/cc-engine.el (c-forward-decl-or-cast-1): Use
index 5e62bc4..3cd6fd0 100644 (file)
@@ -1,7 +1,7 @@
 ;;; tramp-smb.el --- Tramp access functions for SMB servers
 
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-;;   2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+;;   2011 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <michael.albinus@gmx.de>
 ;; Keywords: comm, processes
@@ -1328,7 +1328,7 @@ connection if a previous connection has died for some reason."
 
              ;; Play login scenario.
              (tramp-process-actions
-              p vec
+              p vec nil
               (if share
                   tramp-smb-actions-with-share
                 tramp-smb-actions-without-share))
index c80420e..e3ec1a1 100644 (file)
@@ -4098,7 +4098,8 @@ The method used must be an out-of-band method."
                  (tramp-message
                   v 6 "%s" (mapconcat 'identity (process-command p) " "))
                  (tramp-set-process-query-on-exit-flag p nil)
-                 (tramp-process-actions p v tramp-actions-copy-out-of-band))))
+                 (tramp-process-actions
+                  p v nil tramp-actions-copy-out-of-band))))
 
          ;; Reset the transfer process properties.
          (tramp-set-connection-property v "process-name" nil)
@@ -6821,8 +6822,11 @@ The terminal type can be configured with `tramp-terminal-type'."
          (setq found (funcall action proc vec)))))
     found))
 
-(defun tramp-process-actions (proc vec actions &optional timeout)
-  "Perform actions until success or TIMEOUT."
+(defun tramp-process-actions (proc vec pos actions &optional timeout)
+  "Perform ACTIONS until success or TIMEOUT.
+PROC and VEC indicate the remote connection to be used.  POS, if
+set, is the starting point of the region to be deleted in the
+connection buffer."
   ;; Preserve message for `progress-reporter'.
   (with-temp-message ""
     ;; Enable auth-source and password-cache.
@@ -6847,7 +6851,10 @@ The terminal type can be configured with `tramp-terminal-type'."
           (cond
            ((eq exit 'permission-denied) "Permission denied")
            ((eq exit 'process-died) "Process died")
-           (t "Login failed"))))))))
+           (t "Login failed"))))
+       (when (numberp pos)
+         (with-current-buffer (tramp-get-connection-buffer vec)
+           (let (buffer-read-only) (delete-region pos (point)))))))))
 
 ;; Utility functions.
 
@@ -7523,7 +7530,8 @@ connection if a previous connection has died for some reason."
   (catch 'uname-changed
     (let ((p (tramp-get-connection-process vec))
          (process-name (tramp-get-connection-property vec "process-name" nil))
-         (process-environment (copy-sequence process-environment)))
+         (process-environment (copy-sequence process-environment))
+         (pos (with-current-buffer (tramp-get-connection-buffer vec) (point))))
 
       ;; If too much time has passed since last command was sent, look
       ;; whether process is still alive.  If it isn't, kill it.  When
@@ -7677,7 +7685,7 @@ connection if a previous connection has died for some reason."
                ;; Send the command.
                (tramp-message vec 3 "Sending command `%s'" command)
                (tramp-send-command vec command t t)
-               (tramp-process-actions p vec tramp-actions-before-shell 60)
+               (tramp-process-actions p vec pos tramp-actions-before-shell 60)
                (tramp-message
                 vec 3 "Found remote shell prompt on `%s'" l-host))
              ;; Next hop.