From: Sébastien Gross Date: Tue, 10 Apr 2012 23:34:25 +0000 (+0200) Subject: (hs-hide-all): Don't infloop on comments that start in the middle of the line. X-Git-Tag: emacs-24.2.90~471^2~364^2~46 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=43956923c00921499e0582f5da4cd739bc005240;p=emacs.git (hs-hide-all): Don't infloop on comments that start in the middle of the line. Fixes: debbugs:10496 --- 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))