changeset 105664:6a6fcf3e8e4d

* minibuffer.el (read-file-name): Check for repeat before putting a default argument in file-name-history (Bug#4657). * emacs-lisp/lisp-mode.el (preceding-sexp): Recognize hash table read syntax (Bug#4737). * textmodes/sgml-mode.el (sgml-delete-tag): Use sgml-looking-back-at.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 18 Oct 2009 22:25:36 +0000
parents 2b51dcf71b63
children 4f559aa94368
files lisp/ChangeLog lisp/emacs-lisp/lisp-mode.el lisp/minibuffer.el lisp/textmodes/sgml-mode.el
diffstat 4 files changed, 23 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Oct 18 19:47:38 2009 +0000
+++ b/lisp/ChangeLog	Sun Oct 18 22:25:36 2009 +0000
@@ -1,3 +1,14 @@
+2009-10-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* minibuffer.el (read-file-name): Check for repeat before putting
+	a default argument in file-name-history (Bug#4657).
+
+	* emacs-lisp/lisp-mode.el (preceding-sexp): Recognize hash table
+	read syntax (Bug#4737).
+
+	* textmodes/sgml-mode.el (sgml-delete-tag): Use
+	sgml-looking-back-at.
+
 2009-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 
 	* textmodes/sgml-mode.el (sgml-tag-help): Prompt user for tag.
--- a/lisp/emacs-lisp/lisp-mode.el	Sun Oct 18 19:47:38 2009 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Sun Oct 18 22:25:36 2009 +0000
@@ -673,6 +673,11 @@
 	  (when (eq (preceding-char) ??)
 	    (forward-char -1)))
 
+	;; Skip over hash table read syntax.
+	(and (> (point) (1+ (point-min)))
+	     (looking-back "#s" (- (point) 2))
+	     (forward-char -2))
+
 	;; Skip over `#N='s.
 	(when (eq (preceding-char) ?=)
 	  (let (labeled-p)
--- a/lisp/minibuffer.el	Sun Oct 18 19:47:38 2009 +0000
+++ b/lisp/minibuffer.el	Sun Oct 18 22:25:36 2009 +0000
@@ -1289,12 +1289,16 @@
 
           (if replace-in-history
               ;; Replace what Fcompleting_read added to the history
-              ;; with what we will actually return.
+              ;; with what we will actually return.  As an exception,
+              ;; if that's the same as the second item in
+              ;; file-name-history, it's really a repeat (Bug#4657).
               (let ((val1 (minibuffer--double-dollars val)))
                 (if history-delete-duplicates
                     (setcdr file-name-history
                             (delete val1 (cdr file-name-history))))
-                (setcar file-name-history val1))
+		(if (string= val1 (cadr file-name-history))
+		    (pop file-name-history)
+		  (setcar file-name-history val1)))
             (if add-to-history
                 ;; Add the value to the history--but not if it matches
                 ;; the last value already there.
--- a/lisp/textmodes/sgml-mode.el	Sun Oct 18 19:47:38 2009 +0000
+++ b/lisp/textmodes/sgml-mode.el	Sun Oct 18 22:25:36 2009 +0000
@@ -909,7 +909,7 @@
 	      (kill-sexp 1))
 	  (setq open (point))
 	  (when (and (sgml-skip-tag-forward 1)
-		     (not (looking-back "/>")))
+		     (not (sgml-looking-back-at "/>")))
 	    (kill-sexp -1)))
 	;; Delete any resulting empty line.  If we didn't kill-sexp,
 	;; this *should* do nothing, because we're right after the tag.