-2008-01-23 Dan Nicolaescu <dann@ics.uci.edu>
+2008-01-23 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-remote-process-environment): Set "LC_ALL=C".
+ (tramp-end-of-output): Add `tramp-rsh-end-of-line' into the
+ regexp.
+ (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
+ Don't send `tramp-rsh-end-of-line' additionally, when setting the
+ prompt.
+ (tramp-wait-for-output): Distinguish different prompt formats.
+ (tramp-get-test-nt-command): Don't check for "\n" in the prompt.
+ (tramp-local-host-p): Check whether temp directory is writable.
+
+22008-01-23 Dan Nicolaescu <dann@ics.uci.edu>
* vc.el: Add TODO items.
(string :tag "Directory"))))
(defcustom tramp-remote-process-environment
- `("HISTFILE=$HOME/.tramp_history" "HISTSIZE=1" "LC_CTYPE=C" "LC_TIME=C"
+ `("HISTFILE=$HOME/.tramp_history" "HISTSIZE=1" "LC_ALL=C"
,(concat "TERM=" tramp-terminal-type)
"CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH="
"autocorrect=" "correct=")
;;; Internal Variables:
(defvar tramp-end-of-output
- (concat
- "///" (md5 (concat
- (prin1-to-string process-environment) (current-time-string))))
+ (format
+ "%s///%s%s"
+ tramp-rsh-end-of-line
+ (md5 (concat (prin1-to-string process-environment) (current-time-string)))
+ tramp-rsh-end-of-line)
"String used to recognize end of output.")
(defvar tramp-current-method nil
vec
(format "PROMPT_COMMAND='' PS1='$ ' PS2='' PS3='' exec %s" shell)
t))
+ ;; Setting prompts.
(tramp-message vec 5 "Setting remote shell prompt...")
- ;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we
- ;; must use "\n" here, not tramp-rsh-end-of-line. Kai left the
- ;; last tramp-rsh-end-of-line, Douglas wanted to replace that,
- ;; as well.
- (tramp-send-command
- vec
- (format "PS1='%s%s%s'"
- tramp-rsh-end-of-line
- tramp-end-of-output
- tramp-rsh-end-of-line)
- t)
+ (tramp-send-command vec (format "PS1='%s'" tramp-end-of-output) t)
(tramp-send-command vec "PS2=''" t)
(tramp-send-command vec "PS3=''" t)
(tramp-send-command vec "PROMPT_COMMAND=''" t)
(tramp-message vec 5 "Setting remote shell prompt...done"))
+
(t (tramp-message
vec 5 "Remote `%s' groks tilde expansion, good"
(tramp-get-method-parameter
;; We can set $PS1 to `tramp-end-of-output' only when the echo has
;; been disabled. Otherwise, the echo of the command would be
;; regarded as prompt already.
- (tramp-send-command
- vec
- (format "PS1='%s%s%s'"
- tramp-rsh-end-of-line
- tramp-end-of-output
- tramp-rsh-end-of-line)
- t)
+ (tramp-send-command vec (format "PS1='%s'" tramp-end-of-output) t)
(tramp-send-command vec "PS2=''" t)
(tramp-send-command vec "PS3=''" t)
(tramp-send-command vec "PROMPT_COMMAND=''" t)
(with-current-buffer (process-buffer proc)
;; Initially, `tramp-end-of-output' is "$ ". There might be
;; leading escape sequences, which must be ignored.
- (let* ((regexp (format "^[^$\n]*%s\r?$" (regexp-quote tramp-end-of-output)))
+ (let* ((regexp
+ (if (string-match (regexp-quote "\n") tramp-end-of-output)
+ (mapconcat
+ 'identity (split-string tramp-end-of-output "\n") "\r?\n")
+ (format "^[^$\n]*%s\r?$" (regexp-quote tramp-end-of-output))))
(found (tramp-wait-for-regexp proc timeout regexp)))
(if found
(let (buffer-read-only)
(and
(stringp host)
(string-match
- (concat "^" (regexp-opt (list "localhost" (system-name)) t) "$") host))))
+ (concat "^" (regexp-opt (list "localhost" (system-name)) t) "$") host)
+ ;; The local temp directory must be writable for the other user.
+ (file-writable-p
+ (tramp-make-tramp-file-name
+ (tramp-file-name-method vec)
+ (tramp-file-name-user vec)
+ host
+ (tramp-compat-temporary-file-directory))))))
;; Variables local to connection.
vec (format "( %s / -nt / )" (tramp-get-test-command vec)))
(with-current-buffer (tramp-get-buffer vec)
(goto-char (point-min))
- (when (looking-at
- (format "\n%s\r?\n" (regexp-quote tramp-end-of-output)))
+ (when (looking-at (regexp-quote tramp-end-of-output))
(format "%s %%s -nt %%s" (tramp-get-test-command vec)))))
(progn
(tramp-send-command