- strcpy(Buf,Bins.c_str());
- if (TokSplitString(',',Buf,StaticBinList,
- sizeof(StaticBinList)/sizeof(StaticBinList[0])) == false)
- {
- if (BigBuf != NULL)
- delete BigBuf;
- return 0;
- }
+ StaticBinList.clear();
+ free(Buffer);
+ Buffer = strndup(Start, End - Start);
+
+ char* bin = Buffer;
+ do {
+ char* binStartNext = strchrnul(bin, ',');
+ char* binEnd = binStartNext - 1;
+ for (; isspace(*binEnd) != 0; --binEnd)
+ binEnd = '\0';
+ StaticBinList.push_back(bin);
+ if (*binStartNext != ',')
+ break;
+ *binStartNext = '\0';
+ for (bin = binStartNext + 1; isspace(*bin) != 0; ++bin);
+ } while (*bin != '\0');
+ StaticBinList.push_back(NULL);