=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/bsave.c,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM_contrib2/asir2000/io/bsave.c 2000/08/22 05:04:17 1.3 +++ OpenXM_contrib2/asir2000/io/bsave.c 2000/12/24 06:32:31 1.7 @@ -44,15 +44,13 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/bsave.c,v 1.2 2000/08/21 08:31:38 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/bsave.c,v 1.6 2000/12/22 10:03:30 saito Exp $ */ /* saveXXX must not use GC_malloc(), GC_malloc_atomic(). */ #include "ca.h" #include "parse.h" -#if INET #include "com.h" -#endif #if PARI #include "genpari.h" @@ -80,15 +78,17 @@ void saveq(FILE *,Q); void savenum(FILE *,Num); void savepfins(FILE *,V); void savegfmmat(FILE *,GFMMAT); +void savebytearray(FILE *,BYTEARRAY); -#define O_GF2MAT 12 -#define O_MATHCAP 13 -#define O_F 14 -#define O_GFMMAT 15 - void (*savef[])() = { 0, savenum, savep, saver, savelist, savevect, - savemat, savestring, 0, savedp, saveui, saveerror,0,0,0,savegfmmat }; + savemat, savestring, 0, savedp, saveui, saveerror,0,0,0,savegfmmat, savebytearray }; +#if defined(INTERVAL) +void saveitv(); +void saveitvd(); +void (*nsavef[])() = { saveq, savereal, 0, savebf, saveitv, saveitvd, 0, saveitv, savecplx ,savemi, savelm, savegf2n, savegfpn}; +#else void (*nsavef[])() = { saveq, savereal, 0, savebf, savecplx ,savemi, savelm, savegf2n, savegfpn}; +#endif static short zeroval = 0; @@ -174,6 +174,24 @@ BF p; #endif } +#if defined(INTERVAL) +void saveitv(s,p) +FILE *s; +Itv p; +{ + saveobj(s,(Obj)INF(p)); + saveobj(s,(Obj)SUP(p)); +} + +void saveitvd(s,p) +FILE *s; +ItvD p; +{ + write_double(s,&INF(p)); + write_double(s,&SUP(p)); +} +#endif + void savecplx(s,p) FILE *s; C p; @@ -373,4 +391,12 @@ GFMMAT p; write_short(s,&OID(p)); write_int(s,&p->row); write_int(s,&p->col); for ( i = 0, row = p->row, col = p->col; i < row; i++ ) write_intarray(s,p->body[i],col); +} + +void savebytearray(s,p) +FILE *s; +BYTEARRAY p; +{ + write_short(s,&OID(p)); write_int(s,&p->len); + write_string(s,p->body,p->len); }