changeset 109479:a2fe058b3eb2

* net/tramp.el (tramp-file-name-handler): Trace 'quit. (tramp-open-connection-setup-interactive-shell): Apply workaround for IRIX64 bug. Move argument of last `tramp-send-command' where it belongs to.
author Michael Albinus <albinus@detlef>
date Tue, 20 Jul 2010 21:15:01 +0200
parents 2660703dfff3
children d12162869c07
files lisp/ChangeLog lisp/net/tramp.el
diffstat 2 files changed, 30 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Jul 20 20:32:42 2010 +0200
+++ b/lisp/ChangeLog	Tue Jul 20 21:15:01 2010 +0200
@@ -1,3 +1,10 @@
+2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-file-name-handler): Trace 'quit.
+	(tramp-open-connection-setup-interactive-shell): Apply
+	workaround for IRIX64 bug.  Move argument of last
+	`tramp-send-command' where it belongs to.
+
 2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp.el (tramp-perl-file-attributes)
--- a/lisp/net/tramp.el	Tue Jul 20 20:32:42 2010 +0200
+++ b/lisp/net/tramp.el	Tue Jul 20 21:15:01 2010 +0200
@@ -5565,12 +5565,23 @@
 	    (if foreign
 		(condition-case err
 		    (apply foreign operation args)
+
+		  ;; Trace that somebody has interrupted the
+		  ;; operation.
+		  (quit
+		   (let (tramp-message-show-message)
+		     (tramp-message
+		      v 1 "Interrupt received in operation %s"
+		      (append (list operation) args)))
+		   ;; Propagate the quit signal.
+		   (signal (car err) (cdr err)))
+
+		  ;; When we are in completion mode, some failed
+		  ;; operations shall return at least a default value
+		  ;; in order to give the user a chance to correct the
+		  ;; file name in the minibuffer.
 		  (error
 		   (cond
-		    ;; When we are in completion mode, some failed
-		    ;; operations shall return at least a default
-		    ;; value in order to give the user a chance to
-		    ;; correct the file name in the minibuffer.
 		    ((and completion (zerop (length localname))
 			  (memq operation '(file-exists-p file-directory-p)))
 		     t)
@@ -5580,6 +5591,7 @@
 		     filename)
 		    ;; Propagate the error.
 		    (t (signal (car err) (cdr err))))))
+
 	      ;; Nothing to do for us.
 	      (tramp-run-real-handler operation args)))))
 
@@ -7033,6 +7045,12 @@
   ;; Disable unexpected output.
   (tramp-send-command vec "mesg n; biff n" t)
 
+  ;; IRIX64 bash expands "!" even when in single quotes.  This
+  ;; destroys our shell functions, we must disable it.  See
+  ;; <http://stackoverflow.com/questions/3291692/irix-bash-shell-expands-expression-in-single-quotes-yet-shouldnt>.
+  (when (string-match "^IRIX64" (tramp-get-connection-property vec "uname" ""))
+    (tramp-send-command vec "set +H" t))
+
   ;; Set the environment.
   (tramp-message vec 5 "Setting default environment")
 
@@ -7048,7 +7066,7 @@
       (setq env (cdr env)))
     (when unset
       (tramp-send-command
-       vec (format "unset %s" (mapconcat 'identity unset " "))))) t)
+       vec (format "unset %s" (mapconcat 'identity unset " ")) t))))
 
 ;; CCC: We should either implement a Perl version of base64 encoding
 ;; and decoding.  Then we just use that in the last item.  The other