]> git.eshelyaron.com Git - emacs.git/commitdiff
(ido-everywhere): Save and restore old read-buffer-function
authorKim F. Storm <storm@cua.dk>
Sun, 24 Apr 2005 19:09:13 +0000 (19:09 +0000)
committerKim F. Storm <storm@cua.dk>
Sun, 24 Apr 2005 19:09:13 +0000 (19:09 +0000)
and read-file-name-function values.  Don't overwrite existing
non-nil values if ido-mode is enabled without ido-everywhere.

lisp/ido.el

index 4409c3653c9994149f2e09de6a16f8d5e3425cb1..1c95676db0a5ed2f75bd38657e50e6b632460073 100644 (file)
@@ -1346,12 +1346,21 @@ This function also adds a hook to the minibuffer."
   (setq ido-everywhere (if arg
                           (> (prefix-numeric-value arg) 0)
                         (not ido-everywhere)))
-  (setq read-file-name-function
-       (and ido-everywhere (memq ido-mode '(both file))
-            'ido-read-file-name))
-  (setq read-buffer-function
-       (and ido-everywhere (memq ido-mode '(both buffer))
-            'ido-read-buffer)))
+  (when (get 'ido-everywhere 'file)
+    (setq read-file-name-function (get 'ido-everywhere 'file))
+    (put 'ido-everywhere 'file nil))
+  (when (get 'ido-everywhere 'buffer)
+    (setq read-buffer-function (get 'ido-everywhere 'buffer))
+    (put 'ido-everywhere 'buffer nil))
+  (when ido-everywhere
+    (when (memq ido-mode '(both file))
+      (unless (get 'ido-everywhere 'file)
+       (put 'ido-everywhere 'file read-file-name-function))
+      (setq read-file-name-function 'ido-read-file-name))
+    (when (memq ido-mode '(both buffer))
+      (unless (get 'ido-everywhere 'buffer)
+       (put 'ido-everywhere 'buffer read-buffer-function))
+      (setq read-buffer-function 'ido-read-buffer))))
 
 
 ;;; IDO KEYMAP