# HG changeset patch # User Chong Yidong # Date 1255904736 0 # Node ID 6a6fcf3e8e4dad3db0f6469d103f9845c18d63e1 # Parent 2b51dcf71b63369ec83f98393df4431275fef293 * 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. diff -r 2b51dcf71b63 -r 6a6fcf3e8e4d lisp/ChangeLog --- 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 + + * 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 * textmodes/sgml-mode.el (sgml-tag-help): Prompt user for tag. diff -r 2b51dcf71b63 -r 6a6fcf3e8e4d lisp/emacs-lisp/lisp-mode.el --- 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) diff -r 2b51dcf71b63 -r 6a6fcf3e8e4d lisp/minibuffer.el --- 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. diff -r 2b51dcf71b63 -r 6a6fcf3e8e4d lisp/textmodes/sgml-mode.el --- 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.