version 1.239, 2009/01/29 19:51:28
|
version 1.245, 2009/12/31 15:32:35
|
Line 1
|
Line 1
|
\ Gforth primitives |
\ Gforth primitives |
|
|
\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 1836 wior = IOR(ftruncate(fileno((FILE *)wfil
|
Line 1836 wior = IOR(ftruncate(fileno((FILE *)wfil
|
read-file ( c_addr u1 wfileid -- u2 wior ) file read_file |
read-file ( c_addr u1 wfileid -- u2 wior ) file read_file |
/* !! fread does not guarantee enough */ |
/* !! fread does not guarantee enough */ |
u2 = fread(c_addr, sizeof(Char), u1, (FILE *)wfileid); |
u2 = fread(c_addr, sizeof(Char), u1, (FILE *)wfileid); |
|
if (u2>0) |
|
gf_regetc((FILE *)wfileid); |
wior = FILEIO(u2<u1 && ferror((FILE *)wfileid)); |
wior = FILEIO(u2<u1 && ferror((FILE *)wfileid)); |
/* !! is the value of ferror errno-compatible? */ |
/* !! is the value of ferror errno-compatible? */ |
if (wior) |
if (wior) |
clearerr((FILE *)wfileid); |
clearerr((FILE *)wfileid); |
|
|
(read-line) ( c_addr u1 wfileid -- u2 flag u3 wior ) file paren_read_line |
(read-line) ( c_addr u1 wfileid -- u2 flag u3 wior ) file paren_read_line |
struct Cellquad r = read_line(c_addr, u1, wfileid); |
struct Cellquad r = read_line(c_addr, u1, (FILE *)wfileid); |
u2 = r.n1; |
u2 = r.n1; |
flag = r.n2; |
flag = r.n2; |
u3 = r.n3; |
u3 = r.n3; |
Line 2150 int flag;
|
Line 2152 int flag;
|
int decpt; |
int decpt; |
sig=ecvt(r, u, &decpt, &flag); |
sig=ecvt(r, u, &decpt, &flag); |
n=(r==0. ? 1 : decpt); |
n=(r==0. ? 1 : decpt); |
|
flag=signbit(r); /* not all ecvt()s do this as desired */ |
f1=FLAG(flag!=0); |
f1=FLAG(flag!=0); |
f2=FLAG(isdigit((unsigned)(sig[0]))!=0); |
f2=FLAG(isdigit((unsigned)(sig[0]))!=0); |
siglen=strlen((char *)sig); |
siglen=strlen((char *)sig); |
Line 2462 lib-error ( -- c_addr u ) gforth
|
Line 2465 lib-error ( -- c_addr u ) gforth
|
#ifdef HAVE_LIBLTDL |
#ifdef HAVE_LIBLTDL |
c_addr = (Char *)lt_dlerror(); |
c_addr = (Char *)lt_dlerror(); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
|
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
|
c_addr = dlerror(); |
|
u = strlen(c_addr); |
#else |
#else |
c_addr = "libltdl is not configured"; |
c_addr = "libltdl is not configured"; |
u = strlen(c_addr); |
u = strlen(c_addr); |