ce5fb4ee78a01179f2f53114b6eb52ca77811eb6
kate
  Wed Jan 23 10:08:41 2013 -0800
1. hgFileUi now only prints data restriction warning if the composite has a restricted object. 2. Add -cv option to mdbPrint to allow alternate CV file.  2. 3. A step toward modularizing restriction timestamp handling.  #10006  Mute File UI loud warnings when they are not applicable.
diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c
index e552aa6..e6704bf 100644
--- src/hg/lib/mdb.c
+++ src/hg/lib/mdb.c
@@ -3133,30 +3133,39 @@
 
 return mdbUpdateObjs;
 }
 
 boolean mdbObjIsEncode(struct mdbObj *mdb)
 // Return true if this metaDb object is for ENCODE
 {
 return mdbObjContains(mdb, MDB_VAR_PROJECT, MDB_VAL_ENCODE_PROJECT);
 
 // Could be more stringent:
 //return (   mdbObjContains(mdbObj, MDB_VAR_LAB,         NULL)
 //        && mdbObjContains(mdbObj, MDB_VAR_DATATYPE,    NULL)
 //        && mdbObjContains(mdbObj, MDB_VAR_ENCODE_SUBID,NULL));
 }
 
+boolean mdbObjEncodeIsUnrestricted(struct mdbObj *mdb)
+// Return true if this object is still within data restriction time period 
+{
+    char *dateUnrestricted = mdbObjFindValue(mdb, MDB_VAR_ENCODE_DATE_UNRESTRICTED);
+    if (dateUnrestricted == NULL)
+        return TRUE;
+    return (dateIsOld(dateUnrestricted, MDB_ENCODE_DATE_FORMAT));
+}
+
 boolean mdbObjInComposite(struct mdbObj *mdb, char *composite)
 // Return true if metaDb object is in specified composite.
 // If composite is NULL, always return true
 {
 if (composite == NULL || sameOk(composite, mdbObjFindValue(mdb, MDB_VAR_COMPOSITE)))
     return TRUE;
 return FALSE;
 }
 
 // --------------- Free at last ----------------
 void mdbObjsFree(struct mdbObj **mdbObjsPtr)
 // Frees one or more metadata objects and any contained mdbVars.  Will free any hashes as well.
 {
 
 if (mdbObjsPtr != NULL && *mdbObjsPtr != NULL)