# HG changeset patch # User Michael Albinus # Date 1184792549 0 # Node ID 7447c9b7efeb41ebad5cc64b2b72c82aca1fcb09 # Parent 4c7de50bc3657e8b0c9d48848a352df4605eb228 * progmodes/grep.el (grep-host-defaults-alist): New defvar. (grep-compute-defaults): Use it. diff -r 4c7de50bc365 -r 7447c9b7efeb lisp/ChangeLog --- a/lisp/ChangeLog Wed Jul 18 20:11:28 2007 +0000 +++ b/lisp/ChangeLog Wed Jul 18 21:02:29 2007 +0000 @@ -1,3 +1,8 @@ +2007-07-18 Michael Albinus + + * progmodes/grep.el (grep-host-defaults-alist): New defvar. + (grep-compute-defaults): Use it. + 2007-07-18 Stefan Monnier * uniquify.el: Docstring fixes. diff -r 4c7de50bc365 -r 7447c9b7efeb lisp/progmodes/grep.el --- a/lisp/progmodes/grep.el Wed Jul 18 20:11:28 2007 +0000 +++ b/lisp/progmodes/grep.el Wed Jul 18 21:02:29 2007 +0000 @@ -343,6 +343,12 @@ (defvar grep-regexp-history nil) (defvar grep-files-history '("ch" "el")) +(defvar grep-host-defaults-alist nil + "Default values depending on target host. +`grep-compute-defaults' returns default values for every local or +remote host `grep' runs. These values can differ from host to +host. Once computed, the default values are kept here in order +to avoid computing them again.") ;;;###autoload (defun grep-process-setup () @@ -383,31 +389,38 @@ ;; computed for every host once, then they are kept in the ;; variables' property host-id for reuse. (setq grep-command - (or (get 'grep-command host-id) + (or (cadr (assq 'grep-command + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-command 'standard-value)))) grep-template - (or (get 'grep-template host-id) + (or (cadr (assq 'grep-template + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-template 'standard-value)))) grep-use-null-device - (or (get 'grep-use-null-device host-id) + (or (cadr (assq 'grep-use-null-device + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-use-null-device 'standard-value)))) grep-find-command - (or (get 'grep-find-command host-id) + (or (cadr (assq 'grep-find-command + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-find-command 'standard-value)))) grep-find-template - (or (get 'grep-find-template host-id) + (or (cadr (assq 'grep-find-template + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-find-template 'standard-value)))) grep-find-use-xargs - (or (get 'grep-find-use-xargs host-id) + (or (cadr (assq 'grep-find-use-xargs + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-find-use-xargs 'standard-value)))) grep-highlight-matches - (or (get 'grep-highlight-matches host-id) + (or (cadr (assq 'grep-highlight-matches + (assq host-id grep-host-defaults-alist))) (eval (car (get 'grep-highlight-matches 'standard-value))))) (unless (or (not grep-use-null-device) (eq grep-use-null-device t)) @@ -492,13 +505,19 @@ t)))) ;; Save defaults for this host. - (put 'grep-command host-id grep-command) - (put 'grep-template host-id grep-template) - (put 'grep-use-null-device host-id grep-use-null-device) - (put 'grep-find-command host-id grep-find-command) - (put 'grep-find-template host-id grep-find-template) - (put 'grep-find-use-xargs host-id grep-find-use-xargs) - (put 'grep-highlight-matches host-id grep-highlight-matches))) + (setq grep-host-defaults-alist + (delete (assq host-id grep-host-defaults-alist) + grep-host-defaults-alist)) + (add-to-list + 'grep-host-defaults-alist + (cons host-id + `((grep-command ,grep-command) + (grep-template ,grep-template) + (grep-use-null-device ,grep-use-null-device) + (grep-find-command ,grep-find-command) + (grep-find-template ,grep-find-template) + (grep-find-use-xargs ,grep-find-use-xargs) + (grep-highlight-matches ,grep-highlight-matches)))))) (defun grep-tag-default () (or (and transient-mark-mode mark-active