From 43956923c00921499e0582f5da4cd739bc005240 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Gross?= Date: Wed, 11 Apr 2012 01:34:25 +0200 Subject: [PATCH] (hs-hide-all): Don't infloop on comments that start in the middle of the line. Fixes: debbugs:10496 --- lisp/ChangeLog | 5 +++++ lisp/progmodes/hideshow.el | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8cdff58369f..ebd76dea18e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-10 Sébastien Gross (tiny change) + + * progmodes/hideshow.el (hs-hide-all): Don't infloop on comments + that start in the middle of the line (bug#10496). + 2012-04-10 Dan Nicolaescu * battery.el (battery-linux-proc-acpi): Only one battery is diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index e2016e206a8..b6d2b5e319c 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -802,12 +802,15 @@ If `hs-hide-comments-when-hiding-all' is non-nil, also hide the comments." (forward-comment (point-max))) (re-search-forward re (point-max) t)) (if (match-beginning 1) - ;; we have found a block beginning + ;; We have found a block beginning. (progn (goto-char (match-beginning 1)) - (if hs-hide-all-non-comment-function - (funcall hs-hide-all-non-comment-function) - (hs-hide-block-at-point t))) + (unless (if hs-hide-all-non-comment-function + (funcall hs-hide-all-non-comment-function) + (hs-hide-block-at-point t)) + ;; Go to end of matched data to prevent from getting stuck + ;; with an endless loop. + (goto-char (match-end 0)))) ;; found a comment, probably (let ((c-reg (hs-inside-comment-p))) (when (and c-reg (car c-reg)) -- 2.39.2