mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-25 10:47:00 +00:00
(grep-compute-defaults): Definition moved up.
This commit is contained in:
parent
27bde5f0d3
commit
238a5a50e5
@ -66,6 +66,63 @@ will be parsed and highlighted as soon as you try to move to them."
|
||||
(integer :tag "First N lines"))
|
||||
:group 'compilation)
|
||||
|
||||
;;; This has to be here so it can be called
|
||||
;;; by the following defcustoms.
|
||||
(defun grep-compute-defaults ()
|
||||
(unless (or (not grep-use-null-device) (eq grep-use-null-device t))
|
||||
(setq grep-use-null-device
|
||||
(with-temp-buffer
|
||||
(let ((hello-file (expand-file-name "HELLO" data-directory)))
|
||||
(not
|
||||
(and (equal (condition-case nil
|
||||
(if grep-command
|
||||
;; `grep-command' is already set, so
|
||||
;; use that for testing.
|
||||
(call-process-shell-command
|
||||
grep-command nil t nil
|
||||
"^English" hello-file)
|
||||
;; otherwise use `grep-program'
|
||||
(call-process grep-program nil t nil
|
||||
"-nH" "^English" hello-file))
|
||||
(error nil))
|
||||
0)
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(looking-at
|
||||
(concat (regexp-quote hello-file)
|
||||
":[0-9]+:English")))))))))
|
||||
(unless grep-command
|
||||
(setq grep-command
|
||||
(let ((required-options (if grep-use-null-device "-n" "-nH")))
|
||||
(if (equal (condition-case nil ; in case "grep" isn't in exec-path
|
||||
(call-process grep-program nil nil nil
|
||||
"-e" "foo" null-device)
|
||||
(error nil))
|
||||
1)
|
||||
(format "%s %s -e " grep-program required-options)
|
||||
(format "%s %s " grep-program required-options)))))
|
||||
(unless grep-find-use-xargs
|
||||
(setq grep-find-use-xargs
|
||||
(if (and
|
||||
(equal (call-process "find" nil nil nil
|
||||
null-device "-print0")
|
||||
0)
|
||||
(equal (call-process "xargs" nil nil nil
|
||||
"-0" "-e" "echo")
|
||||
0))
|
||||
'gnu)))
|
||||
(unless grep-find-command
|
||||
(setq grep-find-command
|
||||
(cond ((eq grep-find-use-xargs 'gnu)
|
||||
(format "%s . -type f -print0 | xargs -0 -e %s"
|
||||
find-program grep-command))
|
||||
(grep-find-use-xargs
|
||||
(format "%s . -type f -print | xargs %s"
|
||||
find-program grep-command))
|
||||
(t (cons (format "%s . -type f -exec %s {} %s \\;"
|
||||
find-program grep-command null-device)
|
||||
(+ 22 (length grep-command))))))))
|
||||
|
||||
(defcustom grep-command nil
|
||||
"The default grep command for \\[grep].
|
||||
If the grep program used supports an option to always include file names
|
||||
@ -611,61 +668,6 @@ original use. Otherwise, it recompiles using `compile-command'."
|
||||
(cons msg code)))
|
||||
(cons msg code)))))
|
||||
|
||||
(defun grep-compute-defaults ()
|
||||
(unless (or (not grep-use-null-device) (eq grep-use-null-device t))
|
||||
(setq grep-use-null-device
|
||||
(with-temp-buffer
|
||||
(let ((hello-file (expand-file-name "HELLO" data-directory)))
|
||||
(not
|
||||
(and (equal (condition-case nil
|
||||
(if grep-command
|
||||
;; `grep-command' is already set, so
|
||||
;; use that for testing.
|
||||
(call-process-shell-command
|
||||
grep-command nil t nil
|
||||
"^English" hello-file)
|
||||
;; otherwise use `grep-program'
|
||||
(call-process grep-program nil t nil
|
||||
"-nH" "^English" hello-file))
|
||||
(error nil))
|
||||
0)
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(looking-at
|
||||
(concat (regexp-quote hello-file)
|
||||
":[0-9]+:English")))))))))
|
||||
(unless grep-command
|
||||
(setq grep-command
|
||||
(let ((required-options (if grep-use-null-device "-n" "-nH")))
|
||||
(if (equal (condition-case nil ; in case "grep" isn't in exec-path
|
||||
(call-process grep-program nil nil nil
|
||||
"-e" "foo" null-device)
|
||||
(error nil))
|
||||
1)
|
||||
(format "%s %s -e " grep-program required-options)
|
||||
(format "%s %s " grep-program required-options)))))
|
||||
(unless grep-find-use-xargs
|
||||
(setq grep-find-use-xargs
|
||||
(if (and
|
||||
(equal (call-process "find" nil nil nil
|
||||
null-device "-print0")
|
||||
0)
|
||||
(equal (call-process "xargs" nil nil nil
|
||||
"-0" "-e" "echo")
|
||||
0))
|
||||
'gnu)))
|
||||
(unless grep-find-command
|
||||
(setq grep-find-command
|
||||
(cond ((eq grep-find-use-xargs 'gnu)
|
||||
(format "%s . -type f -print0 | xargs -0 -e %s"
|
||||
find-program grep-command))
|
||||
(grep-find-use-xargs
|
||||
(format "%s . -type f -print | xargs %s"
|
||||
find-program grep-command))
|
||||
(t (cons (format "%s . -type f -exec %s {} %s \\;"
|
||||
find-program grep-command null-device)
|
||||
(+ 22 (length grep-command))))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun grep (command-args)
|
||||
"Run grep, with user-specified args, and collect output in a buffer.
|
||||
|
Loading…
Reference in New Issue
Block a user