740dbc54a81848a64c0024052d41fe2f9529bc84 tdreszer Wed Sep 28 11:59:50 2011 -0700 Made things a little less awkward for deleting vars diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c index 8eafa54..c56bae7 100644 --- src/hg/lib/mdb.c +++ src/hg/lib/mdb.c @@ -452,36 +452,42 @@ errAbort("This is not formatted var=val pairs:\n\t%s\n",varPairs); } verbose(3, "mdbObjAddVarPairs() word count:%d\n\t%s\n",count,varPairs); if(mdbObj == NULL) AllocVar(mdbObj); if(mdbObj->varHash == NULL) mdbObj->varHash = hashNew(8); int ix; for(ix = 0;ix<count;ix++) { if(*words[ix] == '#') break; - if(strchr(words[ix], '=') == NULL) - errAbort("This is not formatted var=val pairs: '%s'\n\t%s\n",words[ix],varPairs); AllocVar(mdbVar); + if(strchr(words[ix], '=') == NULL) // treat this the same as "var=" + { + mdbVar->var = cloneString(words[ix]); + mdbVar->val = NULL; + } + else + { mdbVar->var = cloneNextWordByDelimiter(&(words[ix]),'='); mdbVar->val = cloneString(words[ix]); + } verbose(3, "mdbObjAddVarPairs() var=val: %s=%s\n",mdbVar->var,mdbVar->val); struct mdbVar *oldVar = (struct mdbVar *)hashFindVal(mdbObj->varHash, mdbVar->var); if(oldVar) { verbose(1, "The same variable appears twice: %s=%s and %s=%s. Ignoring second value.\n\t%s\n", oldVar->var,oldVar->val,mdbVar->var,mdbVar->val,varPairs); mdbVarFree(&mdbVar); } else { hashAdd(mdbObj->varHash, mdbVar->var, mdbVar); // pointer to struct to resolve type slAddHead(&(mdbObj->vars),mdbVar); } } freeMem(words);