=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/kanExport0.c,v retrieving revision 1.43 retrieving revision 1.46 diff -u -p -r1.43 -r1.46 --- OpenXM/src/kan96xx/Kan/kanExport0.c 2005/06/16 05:07:23 1.43 +++ OpenXM/src/kan96xx/Kan/kanExport0.c 2005/09/27 06:10:43 1.46 @@ -1,5 +1,7 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.42 2005/06/09 05:46:57 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.45 2005/07/03 11:08:53 ohara Exp $ */ #include +#include +#include #include "datatype.h" #include "stackm.h" #include "extern.h" @@ -2267,6 +2269,56 @@ struct object KstringToArgv(struct object ob) { return(rob); } +struct object KstringToArgv2(struct object ob,struct object oseparator) { + struct object rob = OINIT; + char *s; + int n,wc,i,inblank; + char **argv; + int separator; + if (ob.tag != Sdollar) + errorKan1("%s\n","KstringToArgv2(): the argument must be a string."); + if (oseparator.tag == Sinteger) { + separator = KopInteger(oseparator); + }else if (oseparator.tag == Sdollar) { + s = KopString(oseparator); + separator=s[0]; + }else { + errorKan1("%s\n","KstringToArgv2(ob,separator):the argument must be strings."); + } + n = strlen(KopString(ob)); + s = (char *) sGC_malloc(sizeof(char)*(n+2)); + if (s == NULL) errorKan1("%s\n","KstringToArgv(): No memory."); + strcpy(s,KopString(ob)); + inblank = 1; wc = 0; + for (i=0; i