=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/ox.c,v retrieving revision 1.6 retrieving revision 1.8 diff -u -p -r1.6 -r1.8 --- OpenXM_contrib2/asir2000/io/ox.c 2000/08/22 05:04:18 1.6 +++ OpenXM_contrib2/asir2000/io/ox.c 2000/09/12 06:05:30 1.8 @@ -44,7 +44,7 @@ * 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/ox.c,v 1.5 2000/08/21 08:31:38 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/ox.c,v 1.7 2000/09/07 23:59:55 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -114,7 +114,7 @@ static int available_cmo[] = { static int available_sm[] = { SM_dupErrors, SM_getsp, SM_popSerializedLocalObject, - SM_popCMO, SM_popString, SM_setName, + SM_popCMO, SM_popString, SM_pushCMOtag, SM_setName, SM_evalName, SM_executeStringByLocalParser, SM_executeStringByLocalParserInBatchMode, SM_executeFunction, SM_shutdown, SM_pops, @@ -438,8 +438,12 @@ void wait_for_data(int s) void ox_send_data(int s,pointer p) { - if ( ox_check && !ox_check_cmo(s,(Obj)p) ) - error("ox_send_data : Mathcap violation"); + ERR err; + + if ( ox_check && !ox_check_cmo(s,(Obj)p) ) { + create_error(&err,ox_serial,"ox_send_data : Mathcap violation"); + p = (pointer)err; + } begin_critical(); ox_write_int(s,OX_DATA); ox_write_int(s,ox_serial++);