summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2010-07-29 15:13:11 +0200
committerMichael Albinus <michael.albinus@gmx.de>2010-07-29 15:13:11 +0200
commit683cc385a444ea49fc75f67e11c12315676972bc (patch)
tree7b0e3e09fdbbd44eddd8804c01611d866b7ce283
parent8848b728cd609b4ed2667efc0d7eadf3595c8bf0 (diff)
downloademacs-683cc385a444ea49fc75f67e11c12315676972bc.tar.gz
* net/tramp.el (tramp-handle-start-file-process): Check only for
`remote-tty' process property. (tramp-open-shell): Don't check for tty. (tramp-open-connection-setup-interactive-shell): Set `remote-tty' process property. * progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote host.
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/net/tramp.el22
-rw-r--r--lisp/progmodes/gdb-mi.el5
3 files changed, 26 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4beafc1caaa..49dcafca9da 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2010-07-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-handle-start-file-process): Check only for
+ `remote-tty' process property.
+ (tramp-open-shell): Don't check for tty.
+ (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
+ process property.
+
+ * progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote
+ host.
+
2010-07-28 Chong Yidong <cyd@stupidchicken.com>
* emacs-lisp/package.el (package-load-list, package-archives)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 6256c8c631d..aca0238e5b6 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4538,14 +4538,12 @@ beginning of local filename are not substituted."
(with-current-buffer (tramp-get-connection-buffer v)
(clear-visited-file-modtime)
(narrow-to-region (point-max) (point-max)))
- (if (stringp program)
- ;; Send the command. `tramp-send-command' opens a new
- ;; connection.
+ (if command
+ ;; Send the command.
(tramp-send-command v command nil t) ; nooutput
- ;; Check, whether a pty is associated, and set it as
- ;; process property.
- (condition-case nil
- (tramp-send-command-and-read v "echo \\\"`tty`\\\"")
+ ;; Check, whether a pty is associated.
+ (tramp-maybe-open-connection v)
+ (unless (process-get (tramp-get-connection-process v) 'remote-tty)
(tramp-error
v 'file-error "pty association is not supported for `%s'" name)))
;; Set query flag for this process.
@@ -6631,10 +6629,7 @@ file exists and nonzero exit status otherwise."
vec (format "PS1=%s" (shell-quote-argument tramp-end-of-output)) t)
(tramp-send-command vec "PS2=''" t)
(tramp-send-command vec "PS3=''" t)
- (tramp-send-command vec "PROMPT_COMMAND=''" t)
- ;; Dump tty in the traces.
- (when (>= tramp-verbose 9)
- (tramp-send-command vec "tty" t))))
+ (tramp-send-command vec "PROMPT_COMMAND=''" t)))
(defun tramp-find-shell (vec)
"Opens a shell on the remote host which groks tilde expansion."
@@ -7071,6 +7066,11 @@ process to set up. VEC specifies the connection."
(when (string-match "^IRIX64" (tramp-get-connection-property vec "uname" ""))
(tramp-send-command vec "set +H" t))
+ ;; Set `remote-tty' process property.
+ (ignore-errors
+ (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"")))
+ (unless (zerop (length tty)) (process-put proc 'remote-tty tty))))
+
;; Set the environment.
(tramp-message vec 5 "Setting default environment")
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index e4cc32b972c..5b98ff427c3 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -795,7 +795,10 @@ detailed description of this mode.
(gdb-input
;; Needs GDB 6.4 onwards
(list (concat "-inferior-tty-set "
- (process-tty-name (get-process "gdb-inferior")))
+ (or
+ ;; The process can run on a remote host.
+ (process-get (get-process "gdb-inferior") 'remote-tty)
+ (process-tty-name (get-process "gdb-inferior"))))
'ignore))
(if (eq window-system 'w32)
(gdb-input (list "-gdb-set new-console off" 'ignore)))