From: Chong Yidong Date: Mon, 7 May 2012 03:14:21 +0000 (+0800) Subject: Fix a gdb-mi process filtering issue arising in ansi-color.el. X-Git-Tag: emacs-24.0.97~24 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=18f00515789afb71a4d57171d989a82a1cbe7615;p=emacs.git 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. --- 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)