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);