=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/plugin/cmo.c,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/kan96xx/plugin/cmo.c 1999/11/18 23:57:19 1.3 +++ OpenXM/src/kan96xx/plugin/cmo.c 2001/04/15 07:55:07 1.7 @@ -1,4 +1,4 @@ -/*$OpenXM$*/ +/*$OpenXM: OpenXM/src/kan96xx/plugin/cmo.c,v 1.6 2000/02/02 03:30:48 takayama Exp $*/ #include #include /* #include */ @@ -37,7 +37,9 @@ int CmoClientMode = 1; /* This flag is used to transl **************************************************************************/ /* If you change the format of mathcap, do the follows. Mofify cmoCheckMathCap in oxmisc2.c, - oxReq, SM_setMathCap:, and + oxSendMathCap in oxmisc.c, + newMathCap in cmo.c, + oxReq, SM_setMathCap: in oxmisc2.c, and grep mathCap and make all modifications. */ @@ -690,9 +692,9 @@ void cmoObjectToCmo00(struct object ob) /* cmoObjectToCmo00(KopIndeterminate(ob)); Old code. */ /* If you need to translate the name, do it here. */ if (CmoClientMode) { - ob = KopIndeterminate(ob); + ob = KopIndeterminate(ob); }else{ - ob = cmoTranslateVariable_outGoing(KopIndeterminate(ob)); + ob = cmoTranslateVariable_outGoing(KopIndeterminate(ob)); } cmoObjectToCmo00(ob); break; @@ -705,13 +707,17 @@ void cmoObjectToCmo00(struct object ob) vlist = getoa(ob,0); vlist0 = newObjectArray(getoaSize(vlist)); for (i=0; in); - for (i=0; in; i++) { - putoa(ob2,i,KpoInteger((mathcap->cmo)[i])); - } - obOx = newObjectArray(mathcap->oxSize); + ob3 = newObjectArray(mathcap->oxSize); for (i=0; ioxSize; i++) { - putoa(obOx,i,KpoInteger((mathcap->ox)[i])); + ob3tmp = newObjectArray(2); + putoa(ob3tmp,0,KpoInteger((mathcap->ox)[i])); + ob2 = newObjectArray(mathcap->n); + for (j=0; jn; j++) { + putoa(ob2,j,KpoInteger((mathcap->cmo)[j])); + } + putoa(ob3tmp,1,ob2); + putoa(ob3,i,ob3tmp); } - ob3 = newObjectArray(2); - putoa(ob3,0,obOx); - putoa(ob3,1,ob2); obSm = newObjectArray(mathcap->smSize); for (i=0; ismSize; i++) { @@ -1386,6 +1395,7 @@ void *KSmathCapByStruct(void) putoa(ob,1,KpoString(sys)); putoa(ob,2,KpoString(sysVersion)); s1 = getenv("HOSTTYPE"); + if (s1 == NULL) s1="unknown"; s2 = (char *)sGC_malloc(strlen(s1)+2+strlen("HOSTTYPE=")); strcpy(s2,"HOSTTYPE="); strcat(s2,s1); @@ -1439,7 +1449,8 @@ void *KSmathCapByStruct(void) mathcap->sm[8] = SM_setMathCap; mathcap->sm[9] = SM_getsp; mathcap->sm[10] = SM_dupErrors; - mathcap->smSize = 11; + mathcap->sm[11] = SM_pushCMOtag; + mathcap->smSize = 12; return((void *)mathcap); }