--- gforth/prim 2008/07/10 19:59:41 1.229 +++ gforth/prim 2008/08/09 13:24:25 1.232 @@ -1,6 +1,6 @@ \ Gforth primitives -\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc. \ This file is part of Gforth. @@ -1777,11 +1777,17 @@ access the stack itself. The stack point variables @code{gforth_SP} and @code{gforth_FP}."" /* This is a first attempt at support for calls to C. This may change in the future */ +IF_fpTOS(fp[0]=fpTOS); gforth_FP=fp; gforth_SP=sp; +gforth_RP=rp; +gforth_LP=lp; ((void (*)())w)(); sp=gforth_SP; fp=gforth_FP; +rp=gforth_RP; +lp=gforth_LP; +IF_fpTOS(fpTOS=fp[0]); \+ \+file @@ -2454,8 +2460,8 @@ l! ( w c_addr -- ) gforth l_store lib-error ( -- c_addr u ) gforth lib_error ""Error message for last failed @code{open-lib} or @code{lib-sym}."" -c_addr = lt_dlerror(); -u = (c_addr == NULL) ? 0 : strlen(c_addr); +c_addr = (Char *)lt_dlerror(); +u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); \+ \g peephole