=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/strobj.c,v retrieving revision 1.6 retrieving revision 1.12 diff -u -p -r1.6 -r1.12 --- OpenXM_contrib2/asir2000/builtin/strobj.c 2000/08/21 08:31:21 1.6 +++ OpenXM_contrib2/asir2000/builtin/strobj.c 2004/02/26 07:06:31 1.12 @@ -23,7 +23,7 @@ * shall be made on your publication or presentation in any form of the * results obtained by use of the SOFTWARE. * (4) In the event that you modify the SOFTWARE, you shall notify FLL by - * e-mail at risa-admin@flab.fujitsu.co.jp of the detailed specification + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification * for such modification or the source code of the modified part of the * SOFTWARE. * @@ -45,14 +45,16 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.5 2000/03/02 07:16:09 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.11 2004/02/13 05:48:35 saito Exp $ */ #include "ca.h" #include "parse.h" #include "ctype.h" -#if PARI +#if defined(PARI) #include "genpari.h" +# if !(PARI_VERSION_CODE > 131588) extern jmp_buf environnement; +# endif #endif #include @@ -105,7 +107,7 @@ Q *rp; p = BDY(str); spos = QTOS(start); chr = BDY(terminator)[0]; - if ( spos > strlen(p) ) + if ( spos > (int)strlen(p) ) r = -1; else { ind = strchr(p+spos,chr); @@ -203,15 +205,19 @@ Obj *rp; { FNODE fnode; char *cmd; -#if PARI +#if defined(PARI) + void recover(int); + recover(0); +# if !(PARI_VERSION_CODE > 131588) if ( setjmp(environnement) ) { avma = top; recover(1); resetenv(""); } +# endif #endif cmd = BDY((STRING)ARG0(arg)); - exprparse(0,cmd,&fnode); + exprparse_create_var(0,cmd,&fnode); *rp = eval(fnode); } @@ -223,7 +229,7 @@ STRING *rp; int len; len = estimate_length(CO,ARG0(arg)); - b = (char *)MALLOC(len+1); + b = (char *)MALLOC_ATOMIC(len+1); soutput_init(b); sprintexpr(CO,ARG0(arg)); MKSTR(*rp,b); @@ -233,7 +239,7 @@ void Pstrtov(arg,rp) NODE arg; P *rp; { - char *p,*t; + char *p; p = BDY((STRING)ARG0(arg)); #if 0