Error #1 Compiling Grass5.0beta

(Sorry if this is a repost)

Compiling grass on GNU/Linux, Debian - potato:

Received this error:

gcc -g -O2 -I/usr/local/src/grass5.0beta/src/mapdev/Vlib
-I/usr/local/src/grass5.0beta/src/mapdev/diglib
-I/usr/local/src/grass5.0beta/src/include -c r_dlg_head.c
r_dlg_head.c:186: macro `strchr' used without args
make[1]: *** [OBJ.i686-pc-linux-gnu/r_dlg_head.o] Error 1
make[1]: Leaving directory
`/usr/local/src/grass5.0beta/src/mapdev/v.in.dlg'
GISGEN failure at STEP: src/mapdev/v.in.dlg
make: *** [do-install] Error 1

The offending code redefines ANSI C functions/macros pow() and strchr():

From r_dlg_head.c

<SNIP>
    184 static int _get_dtype(char *buf, double *doub)
    185 {
    186 char *strchr() ;
    187 double raise ;
    188 double pow() ;
    189 int pwr ;
    190
    191 *doub = 0.0 ;
    192 raise = 10.0 ;
    193 pwr = 0 ;
    194 sscanf(buf,"%lf", doub) ;
    195 if (*doub != 0.0)
    196 {
    197 /* sscanf(strchr(buf,'D')+1,"%d", &pwr) ; */
    198 char *p;
    199 if ((p = G_index (buf, 'D')) != NULL)
    200 sscanf(p+1, "%d", &pwr);
    201
    202 }
    203 if (pwr)
    204 {
    205 *doub = *doub * pow(raise, (double)pwr) ;
    206 }
    207
    208 return 0;
    209 }

</SNIP>

This problem is fixed (for compilation at least) by commenting out
lines 186 and 188.

--

Eric G. Miller
Powered by the POTATO (http://www.debian.org)!