;;; ansi-color.el --- translate ANSI escape sequences into faces
;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007 Free Software Foundation, Inc.
+;; 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Alex Schroeder <alex@gnu.org>
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by the
-;; Free Software Foundation; either version 3, or (at your option) any
-;; later version.
-;;
-;; GNU Emacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;; General Public License for more details.
-;;
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
:initialize 'custom-initialize-default
:group 'ansi-colors)
-(defconst ansi-color-regexp "\033\\[\\([0-9;]*\\)m"
+(defconst ansi-color-regexp "\033\\[\\([0-9;]*m\\)"
"Regexp that matches SGR control sequences.")
(defconst ansi-color-parameter-regexp "\\([0-9]*\\)[m;]"
;; Convenience functions for comint modes (eg. shell-mode)
-(defcustom ansi-color-for-comint-mode nil
+(defcustom ansi-color-for-comint-mode t
"Determines what to do with comint output.
If nil, do nothing.
If the symbol `filter', then filter all SGR control sequences.
(setq ansi-color-for-comint-mode 'filter))
;;;###autoload
-(defun ansi-color-process-output (string)
+(defun ansi-color-process-output (ignored)
"Maybe translate SGR control sequences of comint output into text-properties.
Depending on variable `ansi-color-for-comint-mode' the comint output is
(defun ansi-color-set-extent-face (extent face)
"Set the `face' property of EXTENT to FACE.
XEmacs uses `set-extent-face', Emacs uses `overlay-put'."
- (if (fboundp 'set-extent-face)
+ (if (featurep 'xemacs)
(set-extent-face extent face)
(overlay-put extent 'face face)))
ANSI-CODE is used as an index into the vector."
(condition-case nil
(aref ansi-color-map ansi-code)
- ('args-out-of-range nil)))
+ (args-out-of-range nil)))
(defun ansi-color-get-face (escape-seq)
"Create a new face by applying all the parameters in ESCAPE-SEQ.
ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter
34 is used by `ansi-color-get-face-1' to return a face definition."
- (let ((ansi-color-r "[0-9][0-9]?")
- (i 0)
+ (let ((i 0)
f val)
- (while (string-match ansi-color-r escape-seq i)
+ (while (string-match ansi-color-parameter-regexp escape-seq i)
(setq i (match-end 0)
val (ansi-color-get-face-1
- (string-to-number (match-string 0 escape-seq) 10)))
+ (string-to-number (match-string 1 escape-seq) 10)))
(cond ((not val))
((eq val 'default)
(setq f (list val)))
(provide 'ansi-color)
-;;; arch-tag: 00726118-9432-44fd-b72d-d2af7591c99c
+;; arch-tag: 00726118-9432-44fd-b72d-d2af7591c99c
;;; ansi-color.el ends here