Mercurial > emacs
diff lisp/progmodes/hideshow.el @ 103737:f016828ad15e
* progmodes/hideshow.el (hs-hide-block-at-point): Don't move point
to the end of the line when locating the block (Bug#700).
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Mon, 06 Jul 2009 14:16:52 +0000 |
parents | a9dc0e7c3f2b |
children | 0cec7dac5f50 |
line wrap: on
line diff
--- a/lisp/progmodes/hideshow.el Mon Jul 06 13:37:29 2009 +0000 +++ b/lisp/progmodes/hideshow.el Mon Jul 06 14:16:52 2009 +0000 @@ -565,29 +565,28 @@ (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.