--- gforth/prim 2008/10/15 15:27:33 1.238 +++ gforth/prim 2009/04/20 19:11:11 1.240 @@ -1698,6 +1698,7 @@ c_addr2 = (Char *)getenv(cstr(c_addr1,u1 u2 = (c_addr2 == NULL ? 0 : strlen((char *)c_addr2)); open-pipe ( c_addr u wfam -- wfileid wior ) gforth open_pipe +fflush(stdout); wfileid=(Cell)popen(cstr(c_addr,u,1),pfileattr[wfam]); /* ~ expansion of 1st arg? */ wior = IOR(wfileid==0); /* !! the man page says that errno is not set reliably */ @@ -2149,6 +2150,10 @@ int flag; int decpt; sig=ecvt(r, u, &decpt, &flag); n=(r==0. ? 1 : decpt); +#ifdef DARWIN +// workaround Mac OS X bug in ecvt +flag=signbit(r); +#endif f1=FLAG(flag!=0); f2=FLAG(isdigit((unsigned)(sig[0]))!=0); siglen=strlen((char *)sig);