]> code.delx.au - gnu-emacs/blobdiff - lisp/term.el
* lisp/progmodes/compile.el: Avoid an N² behavior in grep.
[gnu-emacs] / lisp / term.el
index 464ff40c23c47e87c82606ec443bf2af7821e1d7..ea419234e0f62d274a78c788878a0c67ce698950 100644 (file)
@@ -1,7 +1,6 @@
 ;;; term.el --- general command interpreter in a window stuff
 
-;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010
+;; Copyright (C) 1988, 1990, 1992, 1994-1995, 2001-2011
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Per Bothner <per@bothner.com>
@@ -1537,29 +1536,24 @@ See also `term-input-ignoredups' and `term-write-input-ring'."
             (message "Cannot read history file %s"
                      term-input-ring-file-name)))
        (t
-        (let ((history-buf (get-buffer-create " *temp*"))
-              (file term-input-ring-file-name)
+        (let ((file term-input-ring-file-name)
               (count 0)
               (ring (make-ring term-input-ring-size)))
-          (unwind-protect
-              (with-current-buffer history-buf
-                (widen)
-                (erase-buffer)
-                (insert-file-contents file)
-                ;; Save restriction in case file is already visited...
-                ;; Watch for those date stamps in history files!
-                (goto-char (point-max))
-                (while (and (< count term-input-ring-size)
-                            (re-search-backward "^[ \t]*\\([^#\n].*\\)[ \t]*$"
-                                                nil t))
-                  (let ((history (buffer-substring (match-beginning 1)
-                                                   (match-end 1))))
-                    (when (or (null term-input-ignoredups)
-                              (ring-empty-p ring)
-                              (not (string-equal (ring-ref ring 0) history)))
-                        (ring-insert-at-beginning ring history)))
-                  (setq count (1+ count))))
-            (kill-buffer history-buf))
+           (with-temp-buffer
+             (insert-file-contents file)
+             ;; Save restriction in case file is already visited...
+             ;; Watch for those date stamps in history files!
+             (goto-char (point-max))
+             (while (and (< count term-input-ring-size)
+                         (re-search-backward "^[ \t]*\\([^#\n].*\\)[ \t]*$"
+                                             nil t))
+               (let ((history (buffer-substring (match-beginning 1)
+                                                (match-end 1))))
+                 (when (or (null term-input-ignoredups)
+                           (ring-empty-p ring)
+                           (not (string-equal (ring-ref ring 0) history)))
+                   (ring-insert-at-beginning ring history)))
+               (setq count (1+ count))))
           (setq term-input-ring ring
                 term-input-ring-index nil)))))
 
@@ -4223,7 +4217,7 @@ Return t if this is a Unix-based system, where serial ports are
 files, such as /dev/ttyS0.
 Return nil if this is Windows or DOS, where serial ports have
 special identifiers such as COM1."
-  (not (member system-type (list 'windows-nt 'cygwin 'ms-dos))))
+  (not (memq system-type '(windows-nt cygwin ms-dos))))
 
 (defvar serial-name-history
   (if (serial-port-is-file-p)