X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/db4613576d3115aa320f0293d081ce98baa06acd..e4adb6cdf30706f28dada8aafd347549c84105ac:/lisp/ansi-color.el diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el index 5088c3d707..788a7bde4c 100644 --- a/lisp/ansi-color.el +++ b/lisp/ansi-color.el @@ -1,6 +1,6 @@ ;;; ansi-color.el --- translate ANSI escape sequences into faces -*- lexical-binding: t -*- -;; Copyright (C) 1999-2015 Free Software Foundation, Inc. +;; Copyright (C) 1999-2016 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder @@ -154,7 +154,7 @@ foreground and background colors, respectively." "Regexp that matches SGR control sequences.") (defconst ansi-color-drop-regexp - "\033\\[\\([ABCDsuK]\\|[12][JK]\\|=[0-9]+[hI]\\|[0-9;]*[Hf]\\)" + "\033\\[\\([ABCDsuK]\\|[12][JK]\\|=[0-9]+[hI]\\|[0-9;]*[Hf]\\|\\?[0-9]+[hl]\\)" "Regexp that matches ANSI control sequences to silently drop.") (defconst ansi-color-parameter-regexp "\\([0-9]*\\)[m;]" @@ -261,7 +261,11 @@ This function can be added to `comint-preoutput-filter-functions'." ;; find the next escape sequence (while (setq end (string-match ansi-color-regexp string start)) (setq result (concat result (substring string start end)) - start (match-end 0))) + start (match-end 0))) + ;; eliminate unrecognized escape sequences + (while (string-match ansi-color-drop-regexp string) + (setq string + (replace-match "" nil nil string))) ;; save context, add the remainder of the string to the result (let (fragment) (if (string-match "\033" string start) @@ -327,6 +331,10 @@ This function can be added to `comint-preoutput-filter-functions'." (when codes (put-text-property start (length string) 'font-lock-face (ansi-color--find-face codes) string)) + ;; eliminate unrecognized escape sequences + (while (string-match ansi-color-drop-regexp string) + (setq string + (replace-match "" nil nil string))) ;; save context, add the remainder of the string to the result (let (fragment) (if (string-match "\033" string start)