From: Chong Yidong Date: Mon, 6 Jul 2009 14:16:52 +0000 (+0000) Subject: * progmodes/hideshow.el (hs-hide-block-at-point): Don't move point X-Git-Tag: emacs-pretest-23.1.90~2303 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d44d05e807ff0a0d98ed3d46b8325dfba407e644;p=emacs.git * progmodes/hideshow.el (hs-hide-block-at-point): Don't move point to the end of the line when locating the block (Bug#700). --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 14e667f086e..08bf352b55e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-07-06 Chong Yidong + + * progmodes/hideshow.el (hs-hide-block-at-point): Don't move point + to the end of the line when locating the block (Bug#700). + 2009-07-06 Michael Albinus * net/tramp.el (tramp-handle-write-region): Flush file properties diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index dc2451bc6f1..7e4da68ec38 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -565,29 +565,28 @@ and then further adjusted to be at the end of the line." (hs-hide-comment-region (car comment-reg) (cadr comment-reg) end) (when (looking-at hs-block-start-regexp) (let* ((mdata (match-data t)) - (pure-p (match-end 0)) + (header-beg (match-beginning 0)) + (header-end (match-end 0)) (p ;; `p' is the point at the end of the block beginning, ;; which may need to be adjusted (save-excursion - (goto-char (funcall (or hs-adjust-block-beginning - 'identity) - pure-p)) - ;; whatever the adjustment, we move to eol - (line-end-position))) + (if hs-adjust-block-beginning + (goto-char (funcall hs-adjust-block-beginning + header-end)) + (goto-char header-beg)))) (q ;; `q' is the point at the end of the block (progn (hs-forward-sexp mdata 1) - (end-of-line) - (point))) - ov) + (point))) + ov) (when (and (< p (point)) (> (count-lines p q) 1)) (cond ((and hs-allow-nesting (setq ov (hs-overlay-at p))) (delete-overlay ov)) ((not hs-allow-nesting) (hs-discard-overlays p q))) - (hs-make-overlay p q 'code (- pure-p p))) - (goto-char (if end q (min p pure-p))))))) + (hs-make-overlay p q 'code (- header-end p))) + (goto-char (if end q (min p header-end))))))) (defun hs-inside-comment-p () "Return non-nil if point is inside a comment, otherwise nil.