]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix term.el handling of ^Z-sequences spanning chunks
authorJohan Claesson <johanclaesson@bredband.net>
Wed, 28 Dec 2016 17:56:11 +0000 (12:56 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Thu, 5 Jan 2017 04:20:47 +0000 (23:20 -0500)
Bash will after each command send ?\032 and the current directory "/tmp"
to inform term.el.  Bash output is buffered in 4096 bytes chunks.  If a
command outputs roughly 4096 bytes then the end of the first chunk will
be "/tm" (Bug#13350).

* lisp/term.el (term-emulate-terminal): Change the regexp to find the
end of the ?\032 sequence to use \n instead of $, the latter can match
end of string as well.

Copyright-paperwork-exempt: yes

lisp/term.el

index a3933ae4a4f82b9541faf41a6ed81ff2205b62ec..5259571eb6dd257119bbe9b310b7f3832904a552 100644 (file)
@@ -2903,12 +2903,12 @@ See `term-prompt-regexp'."
                          (beep t))
                         ((and (eq char ?\032)
                                (not handled-ansi-message))
-                         (let ((end (string-match "\r?$" str i)))
+                         (let ((end (string-match "\r?\n" str i)))
                            (if end
                                (funcall term-command-hook
                                         (decode-coding-string
                                          (prog1 (substring str (1+ i) end)
-                                           (setq i (match-end 0)))
+                                           (setq i (1- (match-end 0))))
                                          locale-coding-system))
                              (setq term-terminal-parameter (substring str i))
                              (setq term-terminal-state 4)