|
From: | GNU bug Tracking System |
Subject: | [debbugs-tracker] bug#11951: closed (24.1; Define alist saved incorrectly in hide-ifdef-mode) |
Date: | Wed, 22 Aug 2012 07:19:01 +0000 |
Your message dated Wed, 22 Aug 2012 03:18:24 -0400 with message-id <address@hidden> and subject line Re: bug#11951: 24.1; Define alist saved incorrectly in hide-ifdef-mode has caused the debbugs.gnu.org bug report #11951, regarding 24.1; Define alist saved incorrectly in hide-ifdef-mode to be marked as done. (If you believe you have received this mail in error, please contact address@hidden) -- 11951: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11951 GNU Bug Tracking System Contact address@hidden with problems
--- Begin Message ---Subject: 24.1; Define alist saved incorrectly in hide-ifdef-mode Date: Mon, 16 Jul 2012 11:51:13 +0100 hide-ifdef-mode stores the list of current defines incorrectly when
function hide-ifdef-set-define-alist is used.
Steps to reproduce:
1. Start up with emacs -q.
2. Create a new buffer named test.c with the following contents:
#include <stdio.h>
int main(void)
{
#ifdef DEFINE1
printf("Define 1");
#endif
#ifdef DEFINE2
printf("Define 2");
#endif
#ifdef DEFINE 3
printf("Define 3");
#endif
return 0;
}
3. Hide some ifdefs as follows:
M-x c-mode
M-x hide-ifdef-mode
C-c @ d DEFINE2
C-c @ d DEFINE3
C-c @ h
- Result: DEFINE1 block is hidden, DEFINE2 and DEFINE3 blocks are shown.
4. Store and reload the defines as follows:
C-c @ D test-defines
C-c @ U test-defines
- Result: DEFINE1 and DEFINE2 blocks are hidden, DEFINE3 block is shown
- Expected: DEFINE1 block is hidden, DEFINE2 and DEFINE3 blocks are
shown as before.
5. Examine the stored alist:
M-x eval-_expression_ hide-ifdef-define-alist
- Result: ((test-defines (DEFINE3 . 1) (DEFINE3 . 1)))
- Expected: ((test-defines (DEFINE3 . 1) (DEFINE2 . 1)))
Suggested fix:
I believe there is a bug in function hif-compress-define-list.
(defun hif-compress-define-list (env)
"Compress the define list ENV into a list of defined symbols only."
(let ((new-defs nil))
(dolist (def env new-defs)
-> (if (hif-lookup (car def)) (push (car env) new-defs)))))
Here, I think that (push (car env) new-defs) should have been (push (car def) new-defs)
In GNU Emacs 24.1.1 (i386-mingw-nt6.1.7601)
of 2012-06-10 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --with-gcc (4.6) --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-3.0.9/include'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENG
value of $XMODIFIERS: nil
locale-coding-system: cp1252
default enable-multibyte-characters: t
Major mode: C/l
Minor modes in effect:
hide-ifdef-mode: t
tooltip-mode: t
mouse-wheel-mode: t
tool-bar-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
line-number-mode: t
transient-mark-mode: t
abbrev-mode: t
Load-path shadows:
None found.
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-prsvr mail-utils help-fns kmacro help-mode view hideif cc-mode
cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs regexp-opt time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars
tool-bar dnd fontset image fringe lisp-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 loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process multi-tty emacs)
--- End Message ---
--- Begin Message ---Subject: Re: bug#11951: 24.1; Define alist saved incorrectly in hide-ifdef-mode Date: Wed, 22 Aug 2012 03:18:24 -0400 User-agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) Version: 24.2 Thank you for the very clear report. I've applied your patch to the emacs-24 branch.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |