]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix issue with interpreting ANSI codes in eshell
authorMiha Rihtaršič <miha@kamnitnik.top>
Mon, 25 Oct 2021 13:24:29 +0000 (15:24 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 25 Oct 2021 13:24:35 +0000 (15:24 +0200)
* lisp/eshell/esh-mode.el (eshell-mode): Make window point advance on
insertion.
(eshell-output-filter): Don't use insert-before-markers (bug#45380).

lisp/eshell/esh-mode.el

index 98e89037f330bc35ed19292cf2c1289959631126..8e6506c301cf30b7d60b8b71bcbf5b0adaeed7d9 100644 (file)
@@ -315,6 +315,8 @@ and the hook `eshell-exit-hook'."
   (setq-local bookmark-make-record-function #'eshell-bookmark-make-record)
   (setq local-abbrev-table eshell-mode-abbrev-table)
 
+  (setq-local window-point-insertion-type t)
+
   (setq-local list-buffers-directory (expand-file-name default-directory))
 
   ;; always set the tab width to 8 in Eshell buffers, since external
@@ -696,13 +698,10 @@ This is done after all necessary filtering has been done."
                   (setq oend (+ oend nchars)))
               ;; Let the ansi-color overlay hooks run.
               (let ((inhibit-modification-hooks nil))
-                (insert-before-markers string))
+                (insert string))
               (if (= (window-start) (point))
                   (set-window-start (selected-window)
                                     (- (point) nchars)))
-              (if (= (point) eshell-last-input-end)
-                  (set-marker eshell-last-input-end
-                              (- eshell-last-input-end nchars)))
               (set-marker eshell-last-output-start ostart)
               (set-marker eshell-last-output-end (point))
               (force-mode-line-update))