all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Theodor Rascanu <erazortt@googlemail.com>
To: 6158@debbugs.gnu.org
Subject: bug#6158: bug in hideshow (trunk)
Date: Mon, 10 May 2010 17:32:45 +0200	[thread overview]
Message-ID: <r2q5c5a58da1005100832l8e07a0aek4bfd74b063b64ab4@mail.gmail.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 768 bytes --]

Hi all,

I guess I have found a the bug in the hideshow package:

Assume the following c++ code:

inline int round_to_next_power2(register unsigned int x){
  //if(x!=32){
  x--;
  x |= (x >> 1);
  x |= (x >> 2);
  x |= (x >> 4);
  x |= (x >> 8);
  x |= (x >> 16);
  return x + 1;
  //}
}

Ok this example do not make much sense programming wise but it shows the
probelm:
Hiding this function will not work.
Having the cursor somewhere inside the function outside the commented lines
and trying to hide it (i.e. by C-c @ C-c) will produce the following:

inline int round_to_next_power2(register unsigned int x){
//if(x!=32){... }

Attached is a patch producing the expected behaviour:
inline int round_to_next_power2(register unsigned int x){... }

Greetings,
Theodor

[-- Attachment #1.2: Type: text/html, Size: 953 bytes --]

[-- Attachment #2: emacs-hideshow_comment.patch --]
[-- Type: text/x-patch, Size: 829 bytes --]

--- lisp/progmodes/hideshow.el.orig	2010-05-10 13:21:48.555732323 +0200
+++ lisp/progmodes/hideshow.el	2010-05-10 13:21:40.745646130 +0200
@@ -690,10 +690,12 @@ Return point, or nil if original point w
         (point)
       ;; look backward for the start of a block that contains the cursor
       (while (and (re-search-backward hs-block-start-regexp nil t)
-                  (not (setq done
-                             (< here (save-excursion
-                                       (hs-forward-sexp (match-data t) 1)
-                                       (point)))))))
+                  (setq done
+			     (< here (save-excursion
+				       (hs-forward-sexp (match-data t) 1)
+				       (point))))
+		  (hs-inside-comment-p)
+		  (not (setq done nil))))
       (if done
           (point)
         (goto-char here)

             reply	other threads:[~2010-05-10 15:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-10 15:32 Theodor Rascanu [this message]
2010-05-26 22:53 ` bug#6158: Theodor Rascanu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=r2q5c5a58da1005100832l8e07a0aek4bfd74b063b64ab4@mail.gmail.com \
    --to=erazortt@googlemail.com \
    --cc=6158@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.