# HG changeset patch # User Kim F. Storm # Date 1171454052 0 # Node ID 9ba96fd6381579665a5129f1228c3199bcb75602 # Parent 9a63c2e51e22f1ea74cdc28fe714d6b85255b3c9 (grep-files-aliases): Add tex and texi aliases. (lgrep): Add DIR arg to start grep in specific directory, like rgrep. (grep): Fix lgrep reference. diff -r 9a63c2e51e22 -r 9ba96fd63815 lisp/progmodes/grep.el --- a/lisp/progmodes/grep.el Wed Feb 14 11:32:36 2007 +0000 +++ b/lisp/progmodes/grep.el Wed Feb 14 11:54:12 2007 +0000 @@ -150,6 +150,8 @@ ("asm" . "*.[sS]") ("m" . "[Mm]akefile*") ("l" . "[Cc]hange[Ll]og*") + ("tex" . "*.tex") + ("texi" . "*.texi") ) "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'." :type 'alist @@ -532,7 +534,7 @@ where grep found matches. For doing a recursive `grep', see the `rgrep' command. For running -`grep' in the current directory see `lgrep'. +`grep' in a specific directory, see `lgrep'. This command uses a special history list for its COMMAND-ARGS, so you can easily repeat a grep command. @@ -657,8 +659,8 @@ files)))) ;;;###autoload -(defun lgrep (regexp &optional files) - "Run grep, searching for REGEXP in FILES in current directory. +(defun lgrep (regexp &optional files dir) + "Run grep, searching for REGEXP in FILES in directory DIR. The search is limited to file names matching shell pattern FILES. FILES may use abbreviations defined in `grep-files-aliases', e.g. entering `ch' is equivalent to `*.[ch]'. @@ -684,13 +686,16 @@ (list nil (read-string "grep.el: No `grep-template' available. Press RET."))) (t (let* ((regexp (grep-read-regexp)) - (files (grep-read-files regexp))) - (list regexp files)))))) + (files (grep-read-files regexp)) + (dir (read-directory-name "In directory: " + nil default-directory t))) + (list regexp files dir)))))) (when (and (stringp regexp) (> (length regexp) 0)) (let ((command regexp)) (if (null files) (if (string= command grep-command) (setq command nil)) + (setq dir (file-name-as-directory (expand-file-name dir))) (setq command (grep-expand-template grep-template regexp @@ -702,11 +707,15 @@ command nil nil 'grep-history)) (add-to-history 'grep-history command)))) (when command - ;; Setting process-setup-function makes exit-message-function work - ;; even when async processes aren't supported. - (compilation-start (if (and grep-use-null-device null-device) - (concat command " " null-device) - command) 'grep-mode))))) + (let ((default-directory dir)) + ;; Setting process-setup-function makes exit-message-function work + ;; even when async processes aren't supported. + (compilation-start (if (and grep-use-null-device null-device) + (concat command " " null-device) + command) 'grep-mode)) + (if (eq next-error-last-buffer (current-buffer)) + (setq default-directory dir)))))) + ;;;###autoload