]> code.delx.au - gnu-emacs/blobdiff - lisp/eshell/em-hist.el
(calendar-basic-setup): Set day to 1 in
[gnu-emacs] / lisp / eshell / em-hist.el
index 4da335cc1000ef49694f3a8d23929fde5926d4e7..66356c119258a4ba42be830bc84b548db6c868da 100644 (file)
@@ -1,6 +1,7 @@
 ;;; em-hist.el --- history list management
 
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
 
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 (provide 'em-hist)
 
 (eval-when-compile (require 'esh-maint))
+(require 'eshell)
 
 (defgroup eshell-hist nil
   "This module provides command history management."
@@ -104,17 +106,17 @@ This mirrors the optional behavior of bash."
   :type 'boolean
   :group 'eshell-hist)
 
-(defcustom eshell-ask-to-save-history t
+(defcustom eshell-save-history-on-exit 'ask
   "*Determine if history should be automatically saved.
 History is always preserved after sanely exiting an Eshell buffer.
 However, when Emacs is being shut down, this variable determines
 whether to prompt the user.
-If set to nil, it means never ask whether history should be saved.
-If set to t, always ask if any Eshell buffers are open at exit time.
-If set to `always', history will always be saved, silently."
+If set to nil, it means never save history on termination of Emacs.
+If set to `ask', ask if any Eshell buffers are open at exit time.
+If set to t, history will always be saved, silently."
   :type '(choice (const :tag "Never" nil)
-                (const :tag "Ask" t)
-                (const :tag "Always save" always))
+                (const :tag "Ask" ask)
+                (const :tag "Always save" t))
   :group 'eshell-hist)
 
 (defcustom eshell-input-filter
@@ -203,6 +205,8 @@ element, regardless of any text on the command line.  In that case,
   (define-key eshell-isearch-map [(control ?c)] 'eshell-isearch-cancel-map)
   (define-key eshell-isearch-cancel-map [(control ?c)] 'eshell-isearch-cancel))
 
+(defvar eshell-rebind-keys-alist)
+
 ;;; Functions:
 
 (defun eshell-hist-initialize ()
@@ -216,10 +220,10 @@ element, regardless of any text on the command line.  In that case,
 
   (if (and (eshell-using-module 'eshell-rebind)
           (not eshell-non-interactive-p))
-      (let ((rebind-alist (symbol-value 'eshell-rebind-keys-alist)))
+      (let ((rebind-alist eshell-rebind-keys-alist))
        (make-local-variable 'eshell-rebind-keys-alist)
-       (set 'eshell-rebind-keys-alist
-            (append rebind-alist eshell-hist-rebind-keys-alist))
+       (seteshell-rebind-keys-alist
+             (append rebind-alist eshell-hist-rebind-keys-alist))
        (set (make-local-variable 'search-invisible) t)
        (set (make-local-variable 'search-exit-option) t)
        (add-hook 'isearch-mode-hook
@@ -269,7 +273,7 @@ element, regardless of any text on the command line.  In that case,
   (make-local-variable 'eshell-save-history-index)
 
   (if (minibuffer-window-active-p (selected-window))
-      (set (make-local-variable 'eshell-ask-to-save-history) nil)
+      (set (make-local-variable 'eshell-save-history-on-exit) nil)
     (set (make-local-variable 'eshell-history-ring) nil)
     (if eshell-history-file-name
        (eshell-read-history nil t))
@@ -296,8 +300,8 @@ element, regardless of any text on the command line.  In that case,
        (with-current-buffer buf
          (if (and eshell-mode
                   eshell-history-file-name
-                  eshell-ask-to-save-history
-                  (or (eq eshell-ask-to-save-history 'always)
+                  eshell-save-history-on-exit
+                  (or (eq eshell-save-history-on-exit t)
                       (y-or-n-p
                        (format "Save input history for Eshell buffer `%s'? "
                                (buffer-name buf)))))
@@ -503,7 +507,7 @@ See also `eshell-read-history'."
        ;; Change "completion" to "history reference"
        ;; to make the display accurate.
        (with-output-to-temp-buffer history-buffer
-         (display-completion-list history)
+         (display-completion-list history prefix)
          (set-buffer history-buffer)
          (forward-line 3)
          (while (search-backward "completion" nil 'move)
@@ -523,7 +527,7 @@ See also `eshell-read-history'."
    ((string= "^" ref) 1)
    ((string= "$" ref) nil)
    ((string= "%" ref)
-    (error "`%' history word designator not yet implemented"))))
+    (error "`%%' history word designator not yet implemented"))))
 
 (defun eshell-hist-parse-arguments (&optional silent b e)
   "Parse current command arguments in a history-code-friendly way."
@@ -805,8 +809,7 @@ Moves relative to START, or `eshell-history-index'."
         (motion (if (> arg 0) 1 -1))
         (n (mod (- (or start (eshell-search-start arg)) motion) len))
         (tried-each-ring-item nil)
-        (case-fold-search (or (eshell-under-windows-p)
-                              (eshell-under-cygwin-p)))
+        (case-fold-search (eshell-under-windows-p))
         (prev nil))
     ;; Do the whole search as many times as the argument says.
     (while (and (/= arg 0) (not tried-each-ring-item))
@@ -840,7 +843,7 @@ If N is negative, find the next or Nth next match."
       (unless (minibuffer-window-active-p (selected-window))
        (message "History item: %d" (- (ring-length eshell-history-ring) pos)))
        ;; Can't use kill-region as it sets this-command
-      (delete-region (save-excursion (eshell-bol) (point)) (point))
+      (delete-region eshell-last-output-end (point))
       (insert-and-inherit (eshell-get-history pos)))))
 
 (defun eshell-next-matching-input (regexp arg)
@@ -985,4 +988,5 @@ If N is negative, search backwards for the -Nth previous match."
   (isearch-done)
   (eshell-send-input))
 
+;;; arch-tag: 1a847333-f864-4b96-9acd-b549d620b6c6
 ;;; em-hist.el ends here