* progmodes/hideshow.el (hs-hide-block-at-point): Don't move point
authorChong Yidong <cyd@stupidchicken.com>
Mon, 6 Jul 2009 14:16:52 +0000 (14:16 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 6 Jul 2009 14:16:52 +0000 (14:16 +0000)
to the end of the line when locating the block (Bug#700).

lisp/ChangeLog
lisp/progmodes/hideshow.el

index 14e667f..08bf352 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-06  Chong Yidong  <cyd@stupidchicken.com>
+
+       * 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  <michael.albinus@gmx.de>
 
        * net/tramp.el (tramp-handle-write-region): Flush file properties
index dc2451b..7e4da68 100644 (file)
@@ -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.