=================================================================== RCS file: /home/cvs/OpenXM/src/ox_toolkit/ox.c,v retrieving revision 1.28 retrieving revision 1.30 diff -u -p -r1.28 -r1.30 --- OpenXM/src/ox_toolkit/ox.c 2003/09/18 12:46:08 1.28 +++ OpenXM/src/ox_toolkit/ox.c 2003/11/09 01:48:01 1.30 @@ -1,5 +1,5 @@ /* -*- mode: C; coding: euc-japan -*- */ -/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.27 2003/09/15 09:31:41 ohara Exp $ */ +/* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.29 2003/09/18 20:30:00 ohara Exp $ */ /* This module includes functions for sending/receiveng CMO's. @@ -250,6 +250,12 @@ static cmo_polynomial_in_one_variable* receive_cmo_pol return c; } +static cmo_indeterminate* receive_cmo_indeterminate(OXFILE *oxfp) +{ + cmo* ob = receive_cmo(oxfp); + return new_cmo_indeterminate(ob); +} + static cmo_tree* receive_cmo_tree(OXFILE *oxfp) { cmo_string* name = (cmo_string *)receive_cmo(oxfp); @@ -321,6 +327,9 @@ cmo *receive_cmo_tag(OXFILE *oxfp, int tag) case CMO_POLYNOMIAL_IN_ONE_VARIABLE: m = (cmo *)receive_cmo_polynomial_in_one_variable(oxfp); break; + case CMO_INDETERMINATE: + m = (cmo *)receive_cmo_indeterminate(oxfp); + break; case CMO_TREE: m = (cmo *)receive_cmo_tree(oxfp); break; @@ -438,9 +447,12 @@ int ox_flush(OXFILE *sv) void ox_reset(OXFILE *sv) { + int tag; send_ox_command(oxf_control(sv), SM_control_reset_connection); - while(receive_ox_tag(sv) != OX_SYNC_BALL) { - receive_cmo(sv); /* skipping a message. */ + while((tag = receive_ox_tag(sv)) != OX_SYNC_BALL) { + if (tag == OX_DATA) { + receive_cmo(sv); /* skipping a message. */ + } } send_ox_tag(sv, OX_SYNC_BALL);