X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/0283d6b0afbae2d45a10e95e47d753dd20ce2b04..96bd07a3226700156fa7d5ec20e9bd6550c95057:/lisp/ansi-color.el diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el index a5978144e9..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-2013 Free Software Foundation, Inc. +;; Copyright (C) 1999-2016 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder @@ -117,7 +117,7 @@ map. This color map is stored in the variable `ansi-color-map'." :group 'ansi-colors) (defcustom ansi-color-names-vector - ["black" "red" "green" "yellow" "blue" "magenta" "cyan" "white"] + ["black" "red3" "green3" "yellow3" "blue2" "magenta3" "cyan3" "gray90"] "Colors used for SGR control sequences determining a color. This vector holds the colors used for SGR control sequences parameters 30 to 37 (foreground colors) and 40 to 47 (background colors). @@ -147,13 +147,14 @@ foreground and background colors, respectively." (choice color (cons color color))) :set 'ansi-color-map-update :initialize 'custom-initialize-default + :version "24.4" ; default colors copied from `xterm-standard-colors' :group 'ansi-colors) (defconst ansi-color-regexp "\033\\[\\([0-9;]*m\\)" "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;]" @@ -260,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) @@ -326,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)