mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Suppress timers in tramp-send-string
* lisp/net/tramp.el (tramp-send-string): Suppress timers. Use `with-local-quit'.
This commit is contained in:
parent
52e3d3d4c4
commit
3e8f9482fe
1 changed files with 24 additions and 13 deletions
|
|
@ -3881,7 +3881,7 @@ of."
|
|||
(tramp-check-for-regexp proc tramp-password-prompt-regexp)
|
||||
(tramp-message vec 3 "Sending %s" (match-string 1))
|
||||
;; We don't call `tramp-send-string' in order to hide the
|
||||
;; password from the debug buffer.
|
||||
;; password from the debug buffer and the traces.
|
||||
(process-send-string
|
||||
proc (concat (tramp-read-passwd proc) tramp-local-end-of-line))
|
||||
;; Hide password prompt.
|
||||
|
|
@ -4171,12 +4171,20 @@ The STRING is expected to use Unix line-endings, but the lines sent to
|
|||
the remote host use line-endings as defined in the variable
|
||||
`tramp-rsh-end-of-line'. The communication buffer is erased before sending."
|
||||
(let* ((p (tramp-get-connection-process vec))
|
||||
(chunksize (tramp-get-connection-property p "chunksize" nil)))
|
||||
(chunksize (tramp-get-connection-property p "chunksize" nil))
|
||||
;; We do not want to run timers.
|
||||
(tl timer-list)
|
||||
(stimers (with-timeout-suspend))
|
||||
timer-list timer-idle-list)
|
||||
(unless p
|
||||
(tramp-error
|
||||
vec 'file-error "Can't send string to remote host -- not logged in"))
|
||||
(tramp-set-connection-property p "last-cmd-time" (current-time))
|
||||
(tramp-message vec 10 "%s" string)
|
||||
;; Enable our progress reporter.
|
||||
(dolist (timer tl)
|
||||
(if (eq (timer--function timer) #'tramp-progress-reporter-update)
|
||||
(push timer timer-list)))
|
||||
(with-current-buffer (tramp-get-connection-buffer vec)
|
||||
;; Clean up the buffer. We cannot call `erase-buffer' because
|
||||
;; narrowing might be in effect.
|
||||
|
|
@ -4189,17 +4197,20 @@ the remote host use line-endings as defined in the variable
|
|||
(string-equal (substring string -1) tramp-rsh-end-of-line))
|
||||
(setq string (concat string tramp-rsh-end-of-line)))
|
||||
;; Send the string.
|
||||
(if (and chunksize (not (zerop chunksize)))
|
||||
(let ((pos 0)
|
||||
(end (length string)))
|
||||
(while (< pos end)
|
||||
(tramp-message
|
||||
vec 10 "Sending chunk from %s to %s"
|
||||
pos (min (+ pos chunksize) end))
|
||||
(process-send-string
|
||||
p (substring string pos (min (+ pos chunksize) end)))
|
||||
(setq pos (+ pos chunksize))))
|
||||
(process-send-string p string)))))
|
||||
(with-local-quit
|
||||
(if (and chunksize (not (zerop chunksize)))
|
||||
(let ((pos 0)
|
||||
(end (length string)))
|
||||
(while (< pos end)
|
||||
(tramp-message
|
||||
vec 10 "Sending chunk from %s to %s"
|
||||
pos (min (+ pos chunksize) end))
|
||||
(process-send-string
|
||||
p (substring string pos (min (+ pos chunksize) end)))
|
||||
(setq pos (+ pos chunksize))))
|
||||
(process-send-string p string)))
|
||||
;; Reenable the timers.
|
||||
(with-timeout-unsuspend stimers))))
|
||||
|
||||
(defun tramp-get-inode (vec)
|
||||
"Returns the virtual inode number.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue