--- gforth/prim 1998/12/08 22:02:49 1.16 +++ gforth/prim 1998/12/13 23:29:59 1.19 @@ -1369,15 +1369,23 @@ n=1; : 1 ; -\+os - key-file wfileid -- n gforth paren_key_file +#ifdef HAS_FILE fflush(stdout); n = key((FILE*)wfileid); +#else +n = key(stdin); +#endif key?-file wfileid -- n facility key_q_file +#ifdef HAS_FILE fflush(stdout); n = key_query((FILE*)wfileid); +#else +n = key_query(stdin); +#endif + +\+os stdin -- wfileid gforth wfileid = (Cell)stdin; @@ -1528,6 +1536,7 @@ delete-file c_addr u -- wior file delet wior = IOR(unlink(tilde_cstr(c_addr, u, 1))==-1); rename-file c_addr1 u1 c_addr2 u2 -- wior file-ext rename_file +""rename file c_addr1 u1 to new name c_addr2 u2"" char *s1=tilde_cstr(c_addr2, u2, 1); wior = IOR(rename(tilde_cstr(c_addr1, u1, 0), s1)==-1); @@ -1596,12 +1605,17 @@ write-file c_addr u1 wfileid -- wior fil clearerr((FILE *)wfileid); } +\+ + emit-file c wfileid -- wior gforth emit_file +#ifdef HAS_FILE wior = FILEIO(putc(c, (FILE *)wfileid)==EOF); if (wior) clearerr((FILE *)wfileid); +#else +putc(c, stdout); +#endif -\+ \+file flush-file wfileid -- wior file-ext flush_file @@ -2041,7 +2055,7 @@ open-lib c_addr1 u1 -- u2 gforth open_li #endif u2=(UCell) dlopen(cstr(c_addr1, u1, 1), RTLD_GLOBAL | RTLD_LAZY); #else -# ifdef HAVE_LIBKERNEL32 +# ifdef _WIN32 u2 = (Cell) GetModuleHandle(cstr(c_addr1, u1, 1)); # else #warning Define open-lib! @@ -2053,7 +2067,7 @@ lib-sym c_addr1 u1 u2 -- u3 gforth lib_s #if defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) u3 = (UCell) dlsym((void*)u2,cstr(c_addr1, u1, 1)); #else -# ifdef HAVE_LIBKERNEL32 +# ifdef _WIN32 u3 = (Cell) GetProcAddress((HMODULE)u2, cstr(c_addr1, u1, 1)); # else #warning Define lib-sym! @@ -2073,4 +2087,3 @@ UP=up=(char *)a_addr; : up ! ; Variable UP -