GNU bug report logs - #12236
24.2.50; hideshow.el: missing a `make-variable-buffer-local'

Previous Next

Package: emacs;

Reported by: michael_heerdegen <at> web.de

Date: Mon, 20 Aug 2012 01:41:02 UTC

Severity: normal

Found in version 24.2.50

Fixed in version 24.2

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12236 in the body.
You can then email your comments to 12236 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#12236; Package emacs. (Mon, 20 Aug 2012 01:41:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to michael_heerdegen <at> web.de:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 20 Aug 2012 01:41:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.2.50; hideshow.el: missing a `make-variable-buffer-local'
Date: Mon, 20 Aug 2012 03:42:36 +0200
Hi,

please look at these lines in hideshow.el:

  (defvar hs-c-start-regexp nil
    "Regexp for beginning of comments.
  Differs from mode-specific comment regexps in that
  surrounding whitespace is stripped.")
  (make-variable-buffer-local 'hs-c-start-regexp)
  
  (defvar hs-block-start-regexp nil
    "Regexp for beginning of block.")
  (make-variable-buffer-local 'hs-block-start-regexp)
  
  (defvar hs-block-start-mdata-select nil
    "Element in `hs-block-start-regexp' match data to consider as block start.
  The internal function `hs-forward-sexp' moves point to the beginning of this
  element (using `match-beginning') before calling `hs-forward-sexp-func'.")
  (make-variable-buffer-local 'hs-block-start-mdata-select)
  
  (defvar hs-block-end-regexp nil
    "Regexp for end of block.")
  
  (defvar hs-forward-sexp-func 'forward-sexp
    "Function used to do a `forward-sexp'.
  Should change for Algol-ish modes.  For single-character block
  delimiters -- ie, the syntax table regexp for the character is
  either `(' or `)' -- `hs-forward-sexp-func' would just be
  `forward-sexp'.  For other modes such as simula, a more specialized
  function is necessary.")
  (make-variable-buffer-local 'hs-forward-sexp-func)

I think it is obvious that `hs-block-end-regexp' must be declared as
buffer local as well.

Currently, if you invoke hs-minor-mode in two different buffers with
different major-modes, the setting of the second buffer overwrites the
value of `hs-block-end-regexp' in the first one, making hideshow
malfunctioning there.


Thanks,

Michael.


In GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2012-08-15 on dex, modified by Debian
 (emacs-snapshot package, version 2:20120815-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11203000
Configured using:
 `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.2.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.2.50/site-lisp:/usr/share/emacs/site-lisp'
 '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/'
 '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g
 -Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12236; Package emacs. (Mon, 20 Aug 2012 15:28:02 GMT) Full text and rfc822 format available.

Message #8 received at 12236 <at> debbugs.gnu.org (full text, mbox):

From: Dan Nicolaescu <dann <at> gnu.org>
To: michael_heerdegen <at> web.de
Cc: 12236 <at> debbugs.gnu.org
Subject: Re: bug#12236: 24.2.50;
	hideshow.el: missing a `make-variable-buffer-local'
Date: Mon, 20 Aug 2012 11:27:28 -0400
Michael Heerdegen <michael_heerdegen <at> web.de> writes:

> Hi,
>
> please look at these lines in hideshow.el:
>
>   (defvar hs-c-start-regexp nil
>     "Regexp for beginning of comments.
>   Differs from mode-specific comment regexps in that
>   surrounding whitespace is stripped.")
>   (make-variable-buffer-local 'hs-c-start-regexp)
>   
>   (defvar hs-block-start-regexp nil
>     "Regexp for beginning of block.")
>   (make-variable-buffer-local 'hs-block-start-regexp)
>   
>   (defvar hs-block-start-mdata-select nil
>     "Element in `hs-block-start-regexp' match data to consider as block start.
>   The internal function `hs-forward-sexp' moves point to the beginning of this
>   element (using `match-beginning') before calling `hs-forward-sexp-func'.")
>   (make-variable-buffer-local 'hs-block-start-mdata-select)
>   
>   (defvar hs-block-end-regexp nil
>     "Regexp for end of block.")
>   
>   (defvar hs-forward-sexp-func 'forward-sexp
>     "Function used to do a `forward-sexp'.
>   Should change for Algol-ish modes.  For single-character block
>   delimiters -- ie, the syntax table regexp for the character is
>   either `(' or `)' -- `hs-forward-sexp-func' would just be
>   `forward-sexp'.  For other modes such as simula, a more specialized
>   function is necessary.")
>   (make-variable-buffer-local 'hs-forward-sexp-func)
>
> I think it is obvious that `hs-block-end-regexp' must be declared as
> buffer local as well.

Yes, that existed, but it got lost at some point.
I fixed this in the emacs-24 branch which will get propagated to the
trunk at some point.

     



> Currently, if you invoke hs-minor-mode in two different buffers with
> different major-modes, the setting of the second buffer overwrites the
> value of `hs-block-end-regexp' in the first one, making hideshow
> malfunctioning there.
>
>
> Thanks,
>
> Michael.
>
>
> In GNU Emacs 24.2.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2)
>  of 2012-08-15 on dex, modified by Debian
>  (emacs-snapshot package, version 2:20120815-1)
> Windowing system distributor `The X.Org Foundation', version 11.0.11203000
> Configured using:
>  `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu'
>  '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
>  '--localstatedir=/var' '--infodir=/usr/share/info'
>  '--mandir=/usr/share/man' '--with-pop=yes'
>  '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.2.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.2.50/site-lisp:/usr/share/emacs/site-lisp'
>  '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/'
>  '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
>  'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
>  'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g
>  -Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''




bug marked as fixed in version 24.2, send any further explanations to 12236 <at> debbugs.gnu.org and michael_heerdegen <at> web.de Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 20 Aug 2012 16:01:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 18 Sep 2012 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 278 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.