summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/emacs-lisp/lisp-mode.el5
-rw-r--r--lisp/minibuffer.el8
-rw-r--r--lisp/textmodes/sgml-mode.el2
4 files changed, 23 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 39829c2c3d7..e689b83cf0d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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.
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index b9b7c6ad8f9..362c75a8caf 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -673,6 +673,11 @@ If CHAR is not a character, return nil."
(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 --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index ca2a5fc6b64..c8bb26002af 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1289,12 +1289,16 @@ and `read-file-name-function'."
(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 --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index d009e77adb2..ff3054423b9 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -909,7 +909,7 @@ With prefix argument ARG, repeat this ARG times."
(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.