Subject: bin/36650: stdbool breaks csh
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: None <mlelstv@serpens.de>
List: netbsd-bugs
Date: 07/15/2007 16:45:00
>Number: 36650
>Category: bin
>Synopsis: stdbool breaks csh
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Jul 15 16:45:00 +0000 2007
>Originator: Michael van Elst
>Release: NetBSD 4.99.23
>Organization:
>Environment:
System: NetBSD volans 4.99.23 NetBSD 4.99.23 (VOLANS) #5: Sat Jul 14 00:19:43 CEST 2007 spz@volans:/home/netbsd/i386/obj/sys/arch/i386/compile/VOLANS i386
Architecture: i386
Machine: i386
>Description:
csh with a standard .cshrc reports:
| Illegal variable name.
The message is printed when parsing the following command:
| alias hup '( set pid=$< ; kill -HUP $pid ) < /var/run/\!$.pid'
The reason is that in the latest change the private type 'bool', which is
an int, was replaced by the _Bool type from stdbool. However, the 'bool'
type is used in csh to store small integers and not just boolean values.
E.g.
#define DODOL 1
#define DOEXCL 2
#define DOALL DODOL|DOEXCL
[...]
bool dolflg;
[...]
dolflg = DOALL;
>How-To-Repeat:
Run -current with a csh from 2007/07/10 or newer.
>Fix:
Revert the last change or replace all usages of the type
'bool' with 'int' and drop the inclusion of stdbool.
>Unformatted: