diff lisp/progmodes/grep.el @ 56948:f6f74981c4b0

(grep-highlight-matches): Change default from `t' to `auto-detect', and type from `boolean' to `choice'. (grep-compute-defaults): Set `grep-highlight-matches' to `t' if grep option `--color' is available, or to `nil' otherwise. (grep-use-null-device): Remove redundant type `boolean' (`choice' is already defined).
author Juri Linkov <juri@jurta.org>
date Tue, 07 Sep 2004 03:55:28 +0000
parents 377f75f46699
children 84482ed458f2
line wrap: on
line diff
--- a/lisp/progmodes/grep.el	Tue Sep 07 03:47:46 2004 +0000
+++ b/lisp/progmodes/grep.el	Tue Sep 07 03:55:28 2004 +0000
@@ -64,8 +64,8 @@
   :version "21.4"
   :group 'grep)
 
-(defcustom grep-highlight-matches t
-  "*Non-nil to use special markers to highlight grep matches.
+(defcustom grep-highlight-matches 'auto-detect
+  "*If t, use special markers to highlight grep matches.
 
 Some grep programs are able to surround matches with special
 markers in grep output.  Such markers can be used to highlight
@@ -75,7 +75,9 @@
 markers for highlighting and GREP_OPTIONS to add the --color
 option in front of any explicit grep options before starting
 the grep."
-  :type 'boolean
+  :type '(choice (const :tag "Do not highlight matches with grep markers" nil)
+		 (const :tag "Highlight matches with grep markers" t)
+		 (other :tag "Not Set" auto-detect))
   :version "21.4"
   :group 'grep)
 
@@ -110,7 +112,6 @@
 
 The default value of this variable is set up by `grep-compute-defaults';
 call that function before using this variable in your program."
-  :type 'boolean
   :type '(choice (const :tag "Do Not Append Null Device" nil)
 		 (const :tag "Append Null Device" t)
 		 (other :tag "Not Set" auto-detect))
@@ -415,7 +416,18 @@
 		   (format "%s <D> <X> -type f <F> -print | xargs %s <R>"
 			   find-program gcmd))
 		  (t (format "%s <D> <X> -type f <F> -exec %s <R> {} %s \\;"
-			     find-program gcmd null-device)))))))
+			     find-program gcmd null-device))))))
+  (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t))
+    (setq grep-highlight-matches
+	  (with-temp-buffer
+            (and (equal (condition-case nil
+                            (call-process grep-program nil t nil "--help")
+                          (error nil))
+                        0)
+                 (progn
+                   (goto-char (point-min))
+                   (search-forward "--color" nil t))
+                 t)))))
 
 (defun grep-default-command ()
   (let ((tag-default