Improve ansi-color filtering of unrecognized escape sequences
* lisp/ansi-color.el (ansi-color-drop-regexp): Recognize mode-setting escape sequences. (ansi-color-filter-apply): Filter out unrecognized escape sequences (ansi-color-apply): Filter out unrecognized escape sequences
This commit is contained in:
parent
8a4b8ae32f
commit
227e996946
1 changed files with 10 additions and 2 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue