GNU bug report logs - #22378
24.5; hide-ifdef wrongly handles "#if defined X"

Previous Next

Package: emacs;

Reported by: ydirson <at> free.fr

Date: Fri, 15 Jan 2016 16:46:01 UTC

Severity: normal

Found in version 24.5

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#22378: closed (24.5; hide-ifdef wrongly handles "#if defined X")
Date: Sat, 16 Jan 2016 07:00:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sat, 16 Jan 2016 08:59:42 +0200
with message-id <838u3qf1r5.fsf <at> gnu.org>
and subject line Re: bug#22378: 24.5; hide-ifdef wrongly handles "#if defined X"
has caused the debbugs.gnu.org bug report #22378,
regarding 24.5; hide-ifdef wrongly handles "#if defined X"
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
22378: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22378
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: ydirson <at> free.fr
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; hide-ifdef wrongly handles "#if defined X"
Date: Fri, 15 Jan 2016 09:55:01 +0100 (CET)
With the following text in buffer, with "hide some ifdefs" activated,
when I define/undef A (and whether B is defined or not) the first block
properly switches between "yes" and "no", whereas all ther others
consistently stay at "yes"

---->8----
#ifdef A
yes
#else
no
#endif

#if defined A
yes
#else
no
#endif

#if defined(A)
yes
#else
no
#endif

#if !defined(A)
no
#else
yes
#endif

#if defined B && !defined A
no
#else
yes
#endif
---->8----

In GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.18.2)
 of 2015-10-24 on trouble, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11703000
System Description:	Debian GNU/Linux testing (stretch)

Configured using:
 `configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.5/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.5/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat
 -Werror=format-security -Wall' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-z,relro'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: C/l

Minor modes in effect:
  hide-ifdef-mode: t
  diff-auto-refine-mode: t
  show-paren-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent messages:
Hiding done
Hiding...
Hiding done
Hiding...
Hiding done
Auto-saving...
Hiding...
Hiding done
Hiding...
Hiding done

Load-path shadows:
/usr/share/emacs/24.5/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.5/lisp/hex-util
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.5/lisp/md4
/usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.5/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.5/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.5/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.5/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.5/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.5/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.5/lisp/net/hmac-md5

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-utils hideif conf-mode two-column vc vc-dispatcher smerge-mode
diff-mode easy-mmode help-fns mail-prsvr password-cache url-vars
mule-util etags ring help-mode make-mode dabbrev misearch multi-isearch
vc-git cc-langs cl-loaddefs cl-lib cc-mode cc-fonts easymenu cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs rect
sh-script smie executable paren cus-start cus-load server debian-el
debian-el-loaddefs dpkg-dev-el dpkg-dev-el-loaddefs time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 276436 32948)
 (symbols 48 24493 0)
 (miscs 40 766 3904)
 (strings 32 30487 9317)
 (string-bytes 1 902469)
 (vectors 16 21073)
 (vector-slots 8 1225676 187424)
 (floats 8 89 880)
 (intervals 56 21262 254)
 (buffers 960 57)
 (heap 1024 63382 3299))

-- 
Yann


[Message part 3 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: ydirson <at> free.fr
Cc: 22378-done <at> debbugs.gnu.org
Subject: Re: bug#22378: 24.5; hide-ifdef wrongly handles "#if defined X"
Date: Sat, 16 Jan 2016 08:59:42 +0200
> Date: Fri, 15 Jan 2016 22:56:58 +0100 (CET)
> From: ydirson <at> free.fr
> Cc: 22378 <at> debbugs.gnu.org
> 
> * emacs -Q foo.txt
> * M-x hide-ifdef-mode
> * C-c @ h
>   => OK, everywhere "no"
> * C-c @ d A
>   => OK, everywhere "yes" except the "B && !A"
> * C-c @ u A
>   => only "#ifdef A" switches back

Thanks.  With this recipe, I can reproduce this in Emacs 24.5, but not
with the current emacs-25 branch.  So I guess this bug was already
solved, and I'm marking the bug done.


This bug report was last modified 9 years and 63 days ago.

Previous Next


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