From 18f00515789afb71a4d57171d989a82a1cbe7615 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 7 May 2012 11:14:21 +0800 Subject: [PATCH] Fix a gdb-mi process filtering issue arising in ansi-color.el. * lisp/ansi-color.el (ansi-color-process-output): Check for validity of comint-last-output-start before using it. This avoids a bad interaction with gdb-mi's input/output buffer. --- lisp/ChangeLog | 6 ++++++ lisp/ansi-color.el | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f559acb2ecc..c6a430491b3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-05-07 Chong Yidong + + * ansi-color.el (ansi-color-process-output): Check for validity of + comint-last-output-start before using it. This avoids a bad + interaction with gdb-mi's input/output buffer. + 2012-05-06 Glenn Morris * files.el (dir-locals-read-from-file): diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el index 15a543e9591..6a82f176676 100644 --- a/lisp/ansi-color.el +++ b/lisp/ansi-color.el @@ -217,8 +217,12 @@ The comint output is assumed to lie between the marker `comint-last-output-start' and the process-mark. This is a good function to put in `comint-output-filter-functions'." - (let ((start-marker (or comint-last-output-start - (point-min-marker))) + (let ((start-marker (if (and (markerp comint-last-output-start) + (eq (marker-buffer comint-last-output-start) + (current-buffer)) + (marker-position comint-last-output-start)) + comint-last-output-start + (point-min-marker))) (end-marker (process-mark (get-buffer-process (current-buffer))))) (cond ((eq ansi-color-for-comint-mode nil)) ((eq ansi-color-for-comint-mode 'filter) -- 2.39.2