diff --git a/dtool/src/dconfig/configTable.cxx b/dtool/src/dconfig/configTable.cxx index 57b86d3ef5..32e99604c2 100644 --- a/dtool/src/dconfig/configTable.cxx +++ b/dtool/src/dconfig/configTable.cxx @@ -357,10 +357,18 @@ void ConfigTable::MicroConfig(void) microconfig_cat->spam() << "separator character is: '" << sep << "'" << endl; typedef std::vector strvec; - typedef Serialize::Deserializer > deser; - configconfig.erase(0, 1); - deser ds(configconfig, sep); - strvec sv = ds; + strvec sv; + size_t q = 1; + size_t p = configconfig.find(sep, q); + while (p != ConfigString::npos) { + sv.push_back(configconfig.substr(q, p - q)); + q = p + 1; + p = configconfig.find(sep, q); + } + if (q + 1 < configconfig.size()) { + sv.push_back(configconfig.substr(q)); + } + if (microconfig_cat->is_spam()) microconfig_cat->spam() << "extracted vector of microconfig options" << endl;