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: