Index: /branches/end_stage/ippTools/scripts/dettest.sh
===================================================================
--- /branches/end_stage/ippTools/scripts/dettest.sh	(revision 16143)
+++ /branches/end_stage/ippTools/scripts/dettest.sh	(revision 16144)
@@ -14,9 +14,9 @@
 
 for ID in `seq 0 3` ; do
-    dettool -addprocessedimfile -det_id $det_id -exp_id 1 -class_id $ID -uri file://proc-$ID -recip myrecip -bg 1 -bg_stdev 1 -bg_mean_stdev 1 || exit 1
+    dettool -addprocessedimfile -det_id 1 -exp_id 1 -class_id $ID -uri file://proc-$ID -recip myrecip -bg 2 -bg_stdev 3 -bg_mean_stdev 4 || exit 1
 done;
 
 for ID in `seq 0 3` ; do
-    dettool -addprocessedimfile -det_id $det_id -exp_id 2 -class_id $ID -uri file://proc-$ID -recip myrecip -bg 1 -bg_stdev 1 -bg_mean_stdev 1 || exit 1
+    dettool -addprocessedimfile -det_id 1 -exp_id 2 -class_id $ID -uri file://proc-$ID -recip myrecip -bg 2 -bg_stdev 3 -bg_mean_stdev 4 || exit 1
 done;
 
Index: /branches/end_stage/ippTools/src/caltoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/caltoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/caltoolConfig.c	(revision 16144)
@@ -86,11 +86,11 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-adddb",   "add a DVO calibration DB",
+    PXOPT_ADD_MODE("-adddb",   "add a DVO calibration DB",
         CALTOOL_MODE_ADDDB,     adddbArgs);
-    PXTOOL_ADD_MODE("-dbs",     "list DVO calibration DBs",
+    PXOPT_ADD_MODE("-dbs",     "list DVO calibration DBs",
         CALTOOL_MODE_DBS,       dbsArgs);
-    PXTOOL_ADD_MODE("-addrun",  "add the results of a calibration run",
+    PXOPT_ADD_MODE("-addrun",  "add the results of a calibration run",
         CALTOOL_MODE_ADDRUN,    addrunArgs);
-    PXTOOL_ADD_MODE("-runs",    "list the results of calibration runs",
+    PXOPT_ADD_MODE("-runs",    "list the results of calibration runs",
         CALTOOL_MODE_RUNS,      runsArgs);
 
Index: /branches/end_stage/ippTools/src/camtool.c
===================================================================
--- /branches/end_stage/ippTools/src/camtool.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/camtool.c	(revision 16144)
@@ -89,43 +89,4 @@
 }
 
-#define ADDRENAMEPARAMSTR(from, to, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    psString str = psMetadataLookupStr(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (str) { \
-        if (!psMetadataAddStr(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, str)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMSTR(from, to, name) \
-  ADDRENAMEPARAMSTR(from, to, name, name, "==")
-
-#define ADDRENAMEPARAMF(from, to, type, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    ps##type var = psMetadataLookup##type(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (!isnan(var)) { \
-        if (!psMetadataAdd##type(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMF(from, to, type, name) \
-  ADDRENAMEPARAMF(from, to, type, name, name, "==")
 
 static bool queueMode(pxConfig *config)
@@ -155,41 +116,42 @@
     }
 
-    ADDPARAMSTR(config->args, where, "exp_name");
-    ADDRENAMEPARAMSTR(config->args, where, "inst", "camera", "==");
-    ADDPARAMSTR(config->args, where, "telescope");
-    ADDPARAMSTR(config->args, where, "dateobs_begin");
-    ADDPARAMSTR(config->args, where, "dateobs_end");
-    ADDPARAMSTR(config->args, where, "exp_tag");
-    ADDPARAMSTR(config->args, where, "exp_type");
-    ADDPARAMSTR(config->args, where, "filelevel");
-    ADDPARAMSTR(config->args, where, "reduction");
-    ADDPARAMSTR(config->args, where, "filter");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_min", "airmass", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_max", "airmass", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_min", "ra", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_max", "ra", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_min", "decl", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_max", "decl", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_min", "exp_time", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_max", "exp_time", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_min", "sat_pixel_frac", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_max", "sat_pixel_frac", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_min", "bt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_max", "bt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_min", "bg_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_max", "bg_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_min", "bg_mean_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_max", "bg_mean_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_min", "alt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_max", "alt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_min", "az", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_max", "az", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_min", "ccd_temp", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_max", "ccd_temp", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_min", "posang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_max", "posang", "<");
-    ADDPARAMSTR(config->args, where, "object");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_min", "solang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_max", "solang", "<");
+    PXOPT_COPY_STR(config->args, where, "-exp_name", "exp_name", "==");
+    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
+    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
+    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">=");
+    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<=");
+    PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "==");
+    PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "==");
+    PXOPT_COPY_STR(config->args, where, "-filelevel", "filelevel", "==");
+    PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "==");
+    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
+
+    PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">=");
+    PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<");
+    PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">=");
+    PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<");
+    PXOPT_COPY_F64(config->args, where, "-decl_min", "decl", ">=");
+    PXOPT_COPY_F64(config->args, where, "-decl_max", "decl", "<");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_min", "exp_time", ">=");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_max", "exp_time", "<");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "sat_pixel_frac", ">=");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "sat_pixel_frac", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_min", "bt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_max", "bt", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "bg_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "bg_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "bg_mean_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "bg_mean_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-alt_min", "alt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-alt_max", "alt", "<");
+    PXOPT_COPY_F64(config->args, where, "-az_min", "az", ">=");
+    PXOPT_COPY_F64(config->args, where, "-az_max", "az", "<");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "ccd_temp", ">=");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "ccd_temp", "<");
+    PXOPT_COPY_F64(config->args, where, "-posang_min", "posang", ">=");
+    PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<");
+    PXOPT_COPY_STR(config->args, where, "-object", "object", "==");
+    PXOPT_COPY_F32(config->args, where, "-solang_min", "solang", ">=");
+    PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<");
 
     if (where->list->n < 1) {
Index: /branches/end_stage/ippTools/src/camtoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/camtoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/camtoolConfig.c	(revision 16144)
@@ -60,7 +60,7 @@
     psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-telescope",  0,
             "search for telescope", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
             "search for exposures by time (>=)", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,
             "search for exposures by time (<)", NULL);
     psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_tag",  0,
@@ -261,14 +261,14 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-queue",               "", CAMTOOL_MODE_QUEUE,         queueArgs);
-    PXTOOL_ADD_MODE("-pendingexp",          "", CAMTOOL_MODE_PENDINGEXP,    pendingexpArgs);
-    PXTOOL_ADD_MODE("-pendingimfile",       "", CAMTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
-    PXTOOL_ADD_MODE("-addprocessedexp",     "", CAMTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
-    PXTOOL_ADD_MODE("-processedexp",        "", CAMTOOL_MODE_PROCESSEDEXP,  processedexpArgs);
-    PXTOOL_ADD_MODE("-revertprocessedexp",  "", CAMTOOL_MODE_REVERTPROCESSEDEXP,  revertprocessedexpArgs);
-    PXTOOL_ADD_MODE("-updateprocessedexp",  "", CAMTOOL_MODE_UPDATEPROCESSEDEXP,updateprocessedexpArgs);
-    PXTOOL_ADD_MODE("-block",               "", CAMTOOL_MODE_BLOCK,         blockArgs);
-    PXTOOL_ADD_MODE("-masked",              "", CAMTOOL_MODE_MASKED,        maskedArgs);
-    PXTOOL_ADD_MODE("-unblock",             "", CAMTOOL_MODE_UNBLOCK,       unblockArgs);
+    PXOPT_ADD_MODE("-queue",               "", CAMTOOL_MODE_QUEUE,         queueArgs);
+    PXOPT_ADD_MODE("-pendingexp",          "", CAMTOOL_MODE_PENDINGEXP,    pendingexpArgs);
+    PXOPT_ADD_MODE("-pendingimfile",       "", CAMTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedexp",     "", CAMTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
+    PXOPT_ADD_MODE("-processedexp",        "", CAMTOOL_MODE_PROCESSEDEXP,  processedexpArgs);
+    PXOPT_ADD_MODE("-revertprocessedexp",  "", CAMTOOL_MODE_REVERTPROCESSEDEXP,  revertprocessedexpArgs);
+    PXOPT_ADD_MODE("-updateprocessedexp",  "", CAMTOOL_MODE_UPDATEPROCESSEDEXP,updateprocessedexpArgs);
+    PXOPT_ADD_MODE("-block",               "", CAMTOOL_MODE_BLOCK,         blockArgs);
+    PXOPT_ADD_MODE("-masked",              "", CAMTOOL_MODE_MASKED,        maskedArgs);
+    PXOPT_ADD_MODE("-unblock",             "", CAMTOOL_MODE_UNBLOCK,       unblockArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/chiptool.c
===================================================================
--- /branches/end_stage/ippTools/src/chiptool.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/chiptool.c	(revision 16144)
@@ -93,55 +93,15 @@
 }
 
-#define ADDRENAMEPARAMSTR(from, to, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    psString str = psMetadataLookupStr(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (str) { \
-        if (!psMetadataAddStr(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, str)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMSTR(from, to, name) \
-  ADDRENAMEPARAMSTR(from, to, name, name, "==")
-
-#define ADDRENAMEPARAMF(from, to, type, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    ps##type var = psMetadataLookup##type(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (!isnan(var)) { \
-        if (!psMetadataAdd##type(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMF(from, to, type, name) \
-  ADDRENAMEPARAMF(from, to, type, name, name, "==")
 
 static bool queueMode(pxConfig *config)
 {
     PS_ASSERT_PTR_NON_NULL(config, NULL);
+
+    PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", false, false);
 
     psMetadata *where = psMetadataAlloc();
     // convert exp_id into a psS64
-{
-    PXOPT_LOOKUP_STR(var, config->args, "-exp_id", false, false);
-
-    if (var) {
-        if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", 0, "==", (psS64)atoll(var))) {
+    if (exp_id) {
+        if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", 0, "==", (psS64)atoll(exp_id))) {
             psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
             psFree(where);
@@ -149,42 +109,42 @@
         }
     }
-}
-    ADDPARAMSTR(config->args, where, "exp_name");
-    ADDRENAMEPARAMSTR(config->args, where, "inst", "camera", "==");
-    ADDPARAMSTR(config->args, where, "telescope");
-    ADDPARAMSTR(config->args, where, "dateobs_begin");
-    ADDPARAMSTR(config->args, where, "dateobs_end");
-    ADDPARAMSTR(config->args, where, "exp_tag");
-    ADDPARAMSTR(config->args, where, "exp_type");
-    ADDPARAMSTR(config->args, where, "filelevel");
-    ADDPARAMSTR(config->args, where, "reduction");
-    ADDPARAMSTR(config->args, where, "filter");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_min", "airmass", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_max", "airmass", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_min", "ra", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_max", "ra", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_min", "decl", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_max", "decl", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_min", "exp_time", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_max", "exp_time", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_min", "sat_pixel_frac", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_max", "sat_pixel_frac", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_min", "bt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_max", "bt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_min", "bg_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_max", "bg_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_min", "bg_mean_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_max", "bg_mean_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_min", "alt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_max", "alt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_min", "az", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_max", "az", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_min", "ccd_temp", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_max", "ccd_temp", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_min", "posang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_max", "posang", "<");
-    ADDPARAMSTR(config->args, where, "object");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_min", "solang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_max", "solang", "<");
+
+    PXOPT_COPY_STR(config->args, where, "-exp_name", "exp_name", "==");
+    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
+    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
+    PXOPT_COPY_STR(config->args, where, "-dateobs_begin", "dateobs", ">=");
+    PXOPT_COPY_STR(config->args, where, "-dateobs_end", "dateobs", "<=");
+    PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "==");
+    PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "==");
+    PXOPT_COPY_STR(config->args, where, "-filelevel", "filelevel", "==");
+    PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "==");
+    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
+    PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">=");
+    PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<");
+    PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">=");
+    PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<");
+    PXOPT_COPY_F64(config->args, where, "-decl_min", "decl", ">=");
+    PXOPT_COPY_F64(config->args, where, "-decl_max", "decl", "<");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_min", "exp_time", ">=");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_max", "exp_time", "<");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "sat_pixel_frac", ">=");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "sat_pixel_frac", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_min", "bt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_max", "bt", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "bg_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "bg_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "bg_mean_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "bg_mean_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-alt_min", "alt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-alt_max", "alt", "<");
+    PXOPT_COPY_F64(config->args, where, "-az_min", "az", ">=");
+    PXOPT_COPY_F64(config->args, where, "-az_max", "az", "<");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "ccd_temp", ">=");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "ccd_temp", "<");
+    PXOPT_COPY_F64(config->args, where, "-posang_min", "posang", ">=");
+    PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<");
+    PXOPT_COPY_STR(config->args, where, "-object", "object", "==");
+    PXOPT_COPY_F32(config->args, where, "-solang_min", "solang", ">=");
+    PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<");
 
     if (where->list->n < 1) {
Index: /branches/end_stage/ippTools/src/chiptoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/chiptoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/chiptoolConfig.c	(revision 16144)
@@ -55,7 +55,7 @@
     psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-telescope",  0,
             "search for telescope", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,   
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,   
             "search for exposures by time (>=)", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,
             "search for exposures by time (<)", NULL);
     psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_tag",  0,
@@ -269,13 +269,13 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-queue",               "", CHIPTOOL_MODE_QUEUE,          queueArgs);
-    PXTOOL_ADD_MODE("-pendingimfile",       "", CHIPTOOL_MODE_PENDINGIMFILE,  pendingimfileArgs);
-    PXTOOL_ADD_MODE("-addprocessedimfile",  "", CHIPTOOL_MODE_ADDPROCESSEDIMFILE,addprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-processedimfile",     "", CHIPTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
-    PXTOOL_ADD_MODE("-updateprocessedimfile", "", CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-revertprocessedimfile", "", CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-block",               "", CHIPTOOL_MODE_BLOCK,          blockArgs);
-    PXTOOL_ADD_MODE("-masked",              "", CHIPTOOL_MODE_MASKED,         maskedArgs);
-    PXTOOL_ADD_MODE("-unblock",             "",  CHIPTOOL_MODE_UNBLOCK,        unblockArgs);
+    PXOPT_ADD_MODE("-queue",               "", CHIPTOOL_MODE_QUEUE,          queueArgs);
+    PXOPT_ADD_MODE("-pendingimfile",       "", CHIPTOOL_MODE_PENDINGIMFILE,  pendingimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedimfile",  "", CHIPTOOL_MODE_ADDPROCESSEDIMFILE,addprocessedimfileArgs);
+    PXOPT_ADD_MODE("-processedimfile",     "", CHIPTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
+    PXOPT_ADD_MODE("-updateprocessedimfile", "", CHIPTOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
+    PXOPT_ADD_MODE("-revertprocessedimfile", "", CHIPTOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
+    PXOPT_ADD_MODE("-block",               "", CHIPTOOL_MODE_BLOCK,          blockArgs);
+    PXOPT_ADD_MODE("-masked",              "", CHIPTOOL_MODE_MASKED,         maskedArgs);
+    PXOPT_ADD_MODE("-unblock",             "",  CHIPTOOL_MODE_UNBLOCK,        unblockArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/detselect.c
===================================================================
--- /branches/end_stage/ippTools/src/detselect.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/detselect.c	(revision 16144)
@@ -71,25 +71,4 @@
 }
 
-#define ADDRENAMEPARAMF(from, to, type, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    ps##type var = psMetadataLookup##type(&status, from, oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for " oldname); \
-        return false; \
-    } \
-    if (!isnan(var)) { \
-        if (!psMetadataAdd##type(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMF(from, to, type, name) \
-  ADDRENAMEPARAMF(from, to, type, name, name, "==")
-
-
 static bool searchMode(pxConfig *config)
 {
@@ -99,48 +78,30 @@
     PXOPT_LOOKUP_BOOL(unlimit, config->args, "-unlimit", false);
 
+    PXOPT_LOOKUP_TIME(time, config->args, "-time", false, false);
+
     psMetadata *where = psMetadataAlloc();
 
     // airmass_min  < airmass  < airmass_max
-    ADDRENAMEPARAMF(config->args, where, F32, "-airmass", "airmass_min", "<=");
-    ADDRENAMEPARAMF(config->args, where, F32, "-airmass", "airmass_max", ">=");
+    PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_min", "<=");
+    PXOPT_COPY_F32(config->args, where, "-airmass", "airmass_max", ">=");
 
     // exp_time_min < exp_time < exp_time_max
-    ADDRENAMEPARAMF(config->args, where, F32, "-exp_time", "exp_time_min", "<=");
-    ADDRENAMEPARAMF(config->args, where, F32, "-exp_time", "exp_time_max", ">=");
+    PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_min", "<=");
+    PXOPT_COPY_F32(config->args, where, "-exp_time", "exp_time_max", ">=");
 
     // ccd_temp_min < ccd_temp < ccd_temp_max
-    ADDRENAMEPARAMF(config->args, where, F32, "-ccd_temp", "ccd_temp_min", "<=");
-    ADDRENAMEPARAMF(config->args, where, F32, "-ccd_temp", "ccd_temp_max", ">=");
-
-    ADDRENAMEPARAMF(config->args, where, F64, "-posang", "posang_min", "<=");
-    ADDRENAMEPARAMF(config->args, where, F64, "-posang", "posang_max", ">=");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_min", "<=");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp", "ccd_temp_max", ">=");
+
+    PXOPT_COPY_F64(config->args, where, "-posang", "posang_min", "<=");
+    PXOPT_COPY_F64(config->args, where, "-posang", "posang_max", ">=");
 
     // time_begin    < time     < time_end
-    {
-        bool status = false;
-        psString timeStr = psMetadataLookupStr(&status, config->args, "-time");
-        if (!status) {
-            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -time");
-            psFree(where);
-            return false;
-        }
-
-        if (timeStr) {
-            psTime *time = psTimeFromISO(timeStr, PS_TIME_UTC);
-            if (!time) {
-                psError(PS_ERR_UNKNOWN, false, "error in time format %s", timeStr);
-                psFree(where);
-                return false;
-            }
-
-            // the == NULL tests invokes some psDB magic to make an OR
-            // conditional query
-            psMetadataAddTime(where, PS_LIST_TAIL, "time_begin", 0, "<=", time);
-            psMetadataAddTime(where, PS_LIST_TAIL, "time_begin", PS_META_DUPLICATE_OK, "==", NULL);
-            psMetadataAddTime(where, PS_LIST_TAIL, "time_end", 0, ">=", time);
-            psMetadataAddTime(where, PS_LIST_TAIL, "time_end", PS_META_DUPLICATE_OK, "==", NULL);
-            psFree(time);
-        }
-    }
+    // the == NULL tests invokes some psDB magic to make an OR
+    // conditional query
+    psMetadataAddTime(where, PS_LIST_TAIL, "time_begin", 0, "<=", time);
+    psMetadataAddTime(where, PS_LIST_TAIL, "time_begin", PS_META_DUPLICATE_OK, "==", NULL);
+    psMetadataAddTime(where, PS_LIST_TAIL, "time_end", 0, ">=", time);
+    psMetadataAddTime(where, PS_LIST_TAIL, "time_end", PS_META_DUPLICATE_OK, "==", NULL);
 
     psString query = pxDataGet("detselect_search.sql");
Index: /branches/end_stage/ippTools/src/detselectConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/detselectConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/detselectConfig.c	(revision 16144)
@@ -62,5 +62,5 @@
     psMetadataAddF64(searchArgs, PS_LIST_TAIL, "-posang", 0,
             "search by rotator position angle", NAN);
-    psMetadataAddStr(searchArgs, PS_LIST_TAIL, "-time", 0,
+    psMetadataAddTime(searchArgs, PS_LIST_TAIL, "-time", 0,
             "define time for desired detrend data", NULL);
     psMetadataAddBool(searchArgs, PS_LIST_TAIL, "-simple",  0,
@@ -83,6 +83,6 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-search",  "search for an appropriate detrend", DETSELECT_MODE_SEARCH, searchArgs);
-    PXTOOL_ADD_MODE("-select",  "retreive detrend information", DETSELECT_MODE_SELECT, selectArgs);
+    PXOPT_ADD_MODE("-search",  "search for an appropriate detrend", DETSELECT_MODE_SEARCH, searchArgs);
+    PXOPT_ADD_MODE("-select",  "retreive detrend information", DETSELECT_MODE_SELECT, selectArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/dettoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/dettoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/dettoolConfig.c	(revision 16144)
@@ -1108,58 +1108,58 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-pending",         "list active detruns", DETTOOL_MODE_PENDING,       pendingArgs);
-    PXTOOL_ADD_MODE("-definebytag",     "", DETTOOL_MODE_DEFINEBYTAG,   definebytagArgs);
-    PXTOOL_ADD_MODE("-definebyquery",   "", DETTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs);
-    PXTOOL_ADD_MODE("-definebydetrun",  "", DETTOOL_MODE_DEFINEBYDETRUN, definebydetrunArgs);
-    PXTOOL_ADD_MODE("-makecorrection",  "", DETTOOL_MODE_MAKECORRECTION, makecorrectionArgs);
-    PXTOOL_ADD_MODE("-tocorrectexp",    "", DETTOOL_MODE_TOCORRECTEXP, tocorrectexpArgs);
-    PXTOOL_ADD_MODE("-tocorrectimfile", "", DETTOOL_MODE_TOCORRECTIMFILE, tocorrectimfileArgs);
-    PXTOOL_ADD_MODE("-addcorrectimfile", "", DETTOOL_MODE_ADDCORRECTIMFILE, addcorrectimfileArgs);
-    PXTOOL_ADD_MODE("-raw",             "", DETTOOL_MODE_RAW,           rawArgs);
-    PXTOOL_ADD_MODE("-runs",            "", DETTOOL_MODE_RUNS,          runsArgs);
-    PXTOOL_ADD_MODE("-childlessrun",    "", DETTOOL_MODE_CHILDLESSRUN,  childlessrunArgs);
-    PXTOOL_ADD_MODE("-input",           "", DETTOOL_MODE_INPUT,         inputArgs);
-    PXTOOL_ADD_MODE("-toprocessedimfile", "", DETTOOL_MODE_TOPROCESSEDIMFILE, toprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-addprocessedimfile", "", DETTOOL_MODE_ADDPROCESSEDIMFILE,  addprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-processedimfile", "", DETTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
-    PXTOOL_ADD_MODE("-revertprocessedimfile", "", DETTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-toprocessedexp",  "", DETTOOL_MODE_TOPROCESSEDEXP,  toprocessedexpArgs);
-    PXTOOL_ADD_MODE("-addprocessedexp", "", DETTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
-    PXTOOL_ADD_MODE("-revertprocessedexp", "", DETTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpArgs);
-    PXTOOL_ADD_MODE("-processedexp",    "", DETTOOL_MODE_PROCESSEDEXP, processedexpArgs);
-    PXTOOL_ADD_MODE("-tostacked",       "", DETTOOL_MODE_TOSTACKED,     tostackedArgs);
-    PXTOOL_ADD_MODE("-addstacked",      "", DETTOOL_MODE_ADDSTACKED,    addstackedArgs);
-    PXTOOL_ADD_MODE("-stacked",         "", DETTOOL_MODE_STACKED,       stackedArgs);
-    PXTOOL_ADD_MODE("-revertstacked",   "", DETTOOL_MODE_REVERTSTACKED,  revertstackedArgs);
-    PXTOOL_ADD_MODE("-tonormalize",     "", DETTOOL_MODE_TONORMALIZE,   tonormalizeArgs);
-    PXTOOL_ADD_MODE("-addnormalizedstat",     "", DETTOOL_MODE_ADDNORMALIZEDSTAT,   addnormstatArgs);
-    PXTOOL_ADD_MODE("-normalizedstat",  "", DETTOOL_MODE_NORMALIZEDSTAT,   normalizedstatArgs);
-    PXTOOL_ADD_MODE("-revertnormalizedstat",  "", DETTOOL_MODE_REVERTNORMALIZEDSTAT,   revertnormalizedstatArgs);
-
-    PXTOOL_ADD_MODE("-tonormalizedstat",      "", DETTOOL_MODE_TONORMALIZEDSTAT,    tonormstatArgs);
-    PXTOOL_ADD_MODE("-addnormalizedimfile", "", DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileArgs);
-    PXTOOL_ADD_MODE("-normalizedimfile","", DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileArgs);
-    PXTOOL_ADD_MODE("-revertnormalizedimfile","", DETTOOL_MODE_REVERTNORMALIZEDIMFILE, revertnormalizedimfileArgs);
-    PXTOOL_ADD_MODE("-tonormalizedexp", "", DETTOOL_MODE_TONORMALIZEDEXP, tonormalizedexpArgs);
-    PXTOOL_ADD_MODE("-addnormalizedexp", "", DETTOOL_MODE_ADDNORMALIZEDEXP, addnormalizedexpArgs);
-    PXTOOL_ADD_MODE("-normalizedexp",   "", DETTOOL_MODE_NORMALIZEDEXP, normalizedexpArgs);
-    PXTOOL_ADD_MODE("-revertnormalizedexp","", DETTOOL_MODE_REVERTNORMALIZEDEXP, revertnormalizedexpArgs);
-    PXTOOL_ADD_MODE("-toresidimfile",   "", DETTOOL_MODE_TORESIDIMFILE, toresidimfileArgs);
-    PXTOOL_ADD_MODE("-addresidimfile",  "", DETTOOL_MODE_ADDRESIDIMFILE, addresidimfileArgs);
-    PXTOOL_ADD_MODE("-residimfile",     "", DETTOOL_MODE_RESIDIMFILE, residimfileArgs);
-    PXTOOL_ADD_MODE("-revertresidimfile", "", DETTOOL_MODE_REVERTRESIDIMFILE, revertresidimfileArgs);
-    PXTOOL_ADD_MODE("-toresidexp",      "", DETTOOL_MODE_TORESIDEXP,    toresidexpArgs);
-    PXTOOL_ADD_MODE("-addresidexp",     "", DETTOOL_MODE_ADDRESIDEXP,  addresidexpArgs);
-    PXTOOL_ADD_MODE("-residexp",        "", DETTOOL_MODE_RESIDEXP,     residexpArgs);
-    PXTOOL_ADD_MODE("-revertresidexp",  "", DETTOOL_MODE_REVERTRESIDEXP, revertresidexpArgs);
-    PXTOOL_ADD_MODE("-todetrunsummary",  "", DETTOOL_MODE_TODETRUNSUMMARY,  todetrunsummaryArgs);
-    PXTOOL_ADD_MODE("-updateresidexp", "", DETTOOL_MODE_UPDATERESIDEXP,updateresidexpArgs);
-    PXTOOL_ADD_MODE("-adddetrunsummary", "", DETTOOL_MODE_ADDDETRUNSUMMARY,adddetrunsummaryArgs);
-    PXTOOL_ADD_MODE("-detrunsummary", "", DETTOOL_MODE_DETRUNSUMMARY,detrunsummaryArgs);
-    PXTOOL_ADD_MODE("-revertdetrunsummary", "", DETTOOL_MODE_REVERTDETRUNSUMMARY, revertdetrunsummaryArgs);
-    PXTOOL_ADD_MODE("-updatedetrun", "", DETTOOL_MODE_UPDATEDETRUN, updatedetrunArgs);
-    PXTOOL_ADD_MODE("-rerun",           "", DETTOOL_MODE_RERUN,         rerunArgs);
-    PXTOOL_ADD_MODE("-register_detrend", "", DETTOOL_MODE_REGISTER_DETREND, register_detrendArgs);
-    PXTOOL_ADD_MODE("-register_detrend_imfile", "", DETTOOL_MODE_REGISTER_DETREND_IMFILE, register_detrend_imfileArgs);
+    PXOPT_ADD_MODE("-pending",         "list active detruns", DETTOOL_MODE_PENDING,       pendingArgs);
+    PXOPT_ADD_MODE("-definebytag",     "", DETTOOL_MODE_DEFINEBYTAG,   definebytagArgs);
+    PXOPT_ADD_MODE("-definebyquery",   "", DETTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs);
+    PXOPT_ADD_MODE("-definebydetrun",  "", DETTOOL_MODE_DEFINEBYDETRUN, definebydetrunArgs);
+    PXOPT_ADD_MODE("-makecorrection",  "", DETTOOL_MODE_MAKECORRECTION, makecorrectionArgs);
+    PXOPT_ADD_MODE("-tocorrectexp",    "", DETTOOL_MODE_TOCORRECTEXP, tocorrectexpArgs);
+    PXOPT_ADD_MODE("-tocorrectimfile", "", DETTOOL_MODE_TOCORRECTIMFILE, tocorrectimfileArgs);
+    PXOPT_ADD_MODE("-addcorrectimfile", "", DETTOOL_MODE_ADDCORRECTIMFILE, addcorrectimfileArgs);
+    PXOPT_ADD_MODE("-raw",             "", DETTOOL_MODE_RAW,           rawArgs);
+    PXOPT_ADD_MODE("-runs",            "", DETTOOL_MODE_RUNS,          runsArgs);
+    PXOPT_ADD_MODE("-childlessrun",    "", DETTOOL_MODE_CHILDLESSRUN,  childlessrunArgs);
+    PXOPT_ADD_MODE("-input",           "", DETTOOL_MODE_INPUT,         inputArgs);
+    PXOPT_ADD_MODE("-toprocessedimfile", "", DETTOOL_MODE_TOPROCESSEDIMFILE, toprocessedimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedimfile", "", DETTOOL_MODE_ADDPROCESSEDIMFILE,  addprocessedimfileArgs);
+    PXOPT_ADD_MODE("-processedimfile", "", DETTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
+    PXOPT_ADD_MODE("-revertprocessedimfile", "", DETTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs);
+    PXOPT_ADD_MODE("-toprocessedexp",  "", DETTOOL_MODE_TOPROCESSEDEXP,  toprocessedexpArgs);
+    PXOPT_ADD_MODE("-addprocessedexp", "", DETTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
+    PXOPT_ADD_MODE("-revertprocessedexp", "", DETTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpArgs);
+    PXOPT_ADD_MODE("-processedexp",    "", DETTOOL_MODE_PROCESSEDEXP, processedexpArgs);
+    PXOPT_ADD_MODE("-tostacked",       "", DETTOOL_MODE_TOSTACKED,     tostackedArgs);
+    PXOPT_ADD_MODE("-addstacked",      "", DETTOOL_MODE_ADDSTACKED,    addstackedArgs);
+    PXOPT_ADD_MODE("-stacked",         "", DETTOOL_MODE_STACKED,       stackedArgs);
+    PXOPT_ADD_MODE("-revertstacked",   "", DETTOOL_MODE_REVERTSTACKED,  revertstackedArgs);
+    PXOPT_ADD_MODE("-tonormalize",     "", DETTOOL_MODE_TONORMALIZE,   tonormalizeArgs);
+    PXOPT_ADD_MODE("-addnormalizedstat",     "", DETTOOL_MODE_ADDNORMALIZEDSTAT,   addnormstatArgs);
+    PXOPT_ADD_MODE("-normalizedstat",  "", DETTOOL_MODE_NORMALIZEDSTAT,   normalizedstatArgs);
+    PXOPT_ADD_MODE("-revertnormalizedstat",  "", DETTOOL_MODE_REVERTNORMALIZEDSTAT,   revertnormalizedstatArgs);
+
+    PXOPT_ADD_MODE("-tonormalizedstat",      "", DETTOOL_MODE_TONORMALIZEDSTAT,    tonormstatArgs);
+    PXOPT_ADD_MODE("-addnormalizedimfile", "", DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileArgs);
+    PXOPT_ADD_MODE("-normalizedimfile","", DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileArgs);
+    PXOPT_ADD_MODE("-revertnormalizedimfile","", DETTOOL_MODE_REVERTNORMALIZEDIMFILE, revertnormalizedimfileArgs);
+    PXOPT_ADD_MODE("-tonormalizedexp", "", DETTOOL_MODE_TONORMALIZEDEXP, tonormalizedexpArgs);
+    PXOPT_ADD_MODE("-addnormalizedexp", "", DETTOOL_MODE_ADDNORMALIZEDEXP, addnormalizedexpArgs);
+    PXOPT_ADD_MODE("-normalizedexp",   "", DETTOOL_MODE_NORMALIZEDEXP, normalizedexpArgs);
+    PXOPT_ADD_MODE("-revertnormalizedexp","", DETTOOL_MODE_REVERTNORMALIZEDEXP, revertnormalizedexpArgs);
+    PXOPT_ADD_MODE("-toresidimfile",   "", DETTOOL_MODE_TORESIDIMFILE, toresidimfileArgs);
+    PXOPT_ADD_MODE("-addresidimfile",  "", DETTOOL_MODE_ADDRESIDIMFILE, addresidimfileArgs);
+    PXOPT_ADD_MODE("-residimfile",     "", DETTOOL_MODE_RESIDIMFILE, residimfileArgs);
+    PXOPT_ADD_MODE("-revertresidimfile", "", DETTOOL_MODE_REVERTRESIDIMFILE, revertresidimfileArgs);
+    PXOPT_ADD_MODE("-toresidexp",      "", DETTOOL_MODE_TORESIDEXP,    toresidexpArgs);
+    PXOPT_ADD_MODE("-addresidexp",     "", DETTOOL_MODE_ADDRESIDEXP,  addresidexpArgs);
+    PXOPT_ADD_MODE("-residexp",        "", DETTOOL_MODE_RESIDEXP,     residexpArgs);
+    PXOPT_ADD_MODE("-revertresidexp",  "", DETTOOL_MODE_REVERTRESIDEXP, revertresidexpArgs);
+    PXOPT_ADD_MODE("-todetrunsummary",  "", DETTOOL_MODE_TODETRUNSUMMARY,  todetrunsummaryArgs);
+    PXOPT_ADD_MODE("-updateresidexp", "", DETTOOL_MODE_UPDATERESIDEXP,updateresidexpArgs);
+    PXOPT_ADD_MODE("-adddetrunsummary", "", DETTOOL_MODE_ADDDETRUNSUMMARY,adddetrunsummaryArgs);
+    PXOPT_ADD_MODE("-detrunsummary", "", DETTOOL_MODE_DETRUNSUMMARY,detrunsummaryArgs);
+    PXOPT_ADD_MODE("-revertdetrunsummary", "", DETTOOL_MODE_REVERTDETRUNSUMMARY, revertdetrunsummaryArgs);
+    PXOPT_ADD_MODE("-updatedetrun", "", DETTOOL_MODE_UPDATEDETRUN, updatedetrunArgs);
+    PXOPT_ADD_MODE("-rerun",           "", DETTOOL_MODE_RERUN,         rerunArgs);
+    PXOPT_ADD_MODE("-register_detrend", "", DETTOOL_MODE_REGISTER_DETREND, register_detrendArgs);
+    PXOPT_ADD_MODE("-register_detrend_imfile", "", DETTOOL_MODE_REGISTER_DETREND_IMFILE, register_detrend_imfileArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/difftoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/difftoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/difftoolConfig.c	(revision 16144)
@@ -177,13 +177,13 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-definerun",        "", DIFFTOOL_MODE_DEFINERUN,         definerunArgs);
-    PXTOOL_ADD_MODE("-updaterun",        "", DIFFTOOL_MODE_UPDATERUN,         updaterunArgs);
-    PXTOOL_ADD_MODE("-addinputskyfile",  "", DIFFTOOL_MODE_ADDINPUTSKYFILE,   addinputskyfileArgs);
-    PXTOOL_ADD_MODE("-inputskyfile",     "", DIFFTOOL_MODE_INPUTSKYFILE,      inputskyfileArgs);
-    PXTOOL_ADD_MODE("-todiffskyfile",    "", DIFFTOOL_MODE_TODIFFSKYFILE,     todiffskyfileArgs);
-    PXTOOL_ADD_MODE("-adddiffskyfile",   "", DIFFTOOL_MODE_ADDDIFFSKYFILE,    adddiffskyfileArgs);
-    PXTOOL_ADD_MODE("-diffskyfile",      "", DIFFTOOL_MODE_DIFFSKYFILE,       diffskyfileArgs);
-    PXTOOL_ADD_MODE("-revertdiffskyfile","", DIFFTOOL_MODE_REVERTDIFFSKYFILE, revertdiffskyfileArgs);
-    PXTOOL_ADD_MODE("-definepoprun",     "", DIFFTOOL_MODE_DEFINEPOPRUN,      definepoprunArgs);
+    PXOPT_ADD_MODE("-definerun",        "", DIFFTOOL_MODE_DEFINERUN,         definerunArgs);
+    PXOPT_ADD_MODE("-updaterun",        "", DIFFTOOL_MODE_UPDATERUN,         updaterunArgs);
+    PXOPT_ADD_MODE("-addinputskyfile",  "", DIFFTOOL_MODE_ADDINPUTSKYFILE,   addinputskyfileArgs);
+    PXOPT_ADD_MODE("-inputskyfile",     "", DIFFTOOL_MODE_INPUTSKYFILE,      inputskyfileArgs);
+    PXOPT_ADD_MODE("-todiffskyfile",    "", DIFFTOOL_MODE_TODIFFSKYFILE,     todiffskyfileArgs);
+    PXOPT_ADD_MODE("-adddiffskyfile",   "", DIFFTOOL_MODE_ADDDIFFSKYFILE,    adddiffskyfileArgs);
+    PXOPT_ADD_MODE("-diffskyfile",      "", DIFFTOOL_MODE_DIFFSKYFILE,       diffskyfileArgs);
+    PXOPT_ADD_MODE("-revertdiffskyfile","", DIFFTOOL_MODE_REVERTDIFFSKYFILE, revertdiffskyfileArgs);
+    PXOPT_ADD_MODE("-definepoprun",     "", DIFFTOOL_MODE_DEFINEPOPRUN,      definepoprunArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/flatcorr.c
===================================================================
--- /branches/end_stage/ippTools/src/flatcorr.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/flatcorr.c	(revision 16144)
@@ -84,64 +84,4 @@
 
 
-#define ADDRENAMEPARAMSTR(from, to, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    psString str = psMetadataLookupStr(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (str) { \
-        if (!psMetadataAddStr(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, str)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMSTR(from, to, name) \
-  ADDRENAMEPARAMSTR(from, to, name, name, "==")
-
-#define ADDRENAMEPARAMF(from, to, type, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    ps##type var = psMetadataLookup##type(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (!isnan(var)) { \
-        if (!psMetadataAdd##type(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, var)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMF(from, to, type, name) \
-  ADDRENAMEPARAMF(from, to, type, name, name, "==")
-
-#define ADDRENAMEPARAMTIME(from, to, oldname, newname, comment) \
-{ \
-    bool status = false; \
-    psTime *time = psMetadataLookupTime(&status, from, "-" oldname); \
-    if (!status) { \
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -" oldname); \
-        return false; \
-    } \
-    if (time) { \
-        if (!psMetadataAddTime(to, PS_LIST_TAIL, newname, PS_META_DUPLICATE_OK, comment, time)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " newname); \
-            psFree(to); \
-            return false; \
-        } \
-    } \
-}
-
-#define ADDPARAMTIME(from, to, name) \
-  ADDRENAMEPARAMTIME(from, to, name, name, "==")
-
 static bool newrunMode(pxConfig *config)
 {
@@ -160,41 +100,41 @@
     }
 
-    ADDPARAMSTR(config->args, where, "exp_name");
-    ADDRENAMEPARAMSTR(config->args, where, "inst", "camera", "==");
-    ADDPARAMSTR(config->args, where, "telescope");
-    ADDPARAMTIME(config->args, where, "dateobs_begin");
-    ADDPARAMTIME(config->args, where, "dateobs_end");
-    ADDPARAMSTR(config->args, where, "exp_tag");
-    ADDPARAMSTR(config->args, where, "exp_type");
-    ADDPARAMSTR(config->args, where, "filelevel");
-    ADDPARAMSTR(config->args, where, "reduction");
-    ADDPARAMSTR(config->args, where, "filter");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_min", "airmass", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "airmass_max", "airmass", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_min", "ra", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "ra_max", "ra", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_min", "decl", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "decl_max", "decl", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_min", "exp_time", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "exp_time_max", "exp_time", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_min", "sat_pixel_frac", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "sat_pixel_frac_max", "sat_pixel_frac", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_min", "bt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_max", "bt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_min", "bg_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_stdev_max", "bg_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_min", "bg_mean_stdev", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "bg_mean_stdev_max", "bg_mean_stdev", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_min", "alt", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "alt_max", "alt", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_min", "az", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "az_max", "az", "<");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_min", "ccd_temp", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "ccd_temp_max", "ccd_temp", "<");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_min", "posang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F64, "posang_max", "posang", "<");
-    ADDPARAMSTR(config->args, where, "object");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_min", "solang", ">=");
-    ADDRENAMEPARAMF(config->args, where, F32, "solang_max", "solang", "<");
+    PXOPT_COPY_STR(config->args, where, "-exp_name", "exp_name", "==");
+    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
+    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
+    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">=");
+    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<=");
+    PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "==");
+    PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "==");
+    PXOPT_COPY_STR(config->args, where, "-filelevel", "filelvel", "==");
+    PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "==");
+    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
+    PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">=");
+    PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<");
+    PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">=");
+    PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<");
+    PXOPT_COPY_F64(config->args, where, "-decl_min", "decl", ">=");
+    PXOPT_COPY_F64(config->args, where, "-decl_max", "decl", "<");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_min", "exp_time", ">=");
+    PXOPT_COPY_F32(config->args, where, "-exp_time_max", "exp_time", "<");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "sat_pixel_frac", ">=");
+    PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "sat_pixel_frac", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_min", "bt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_max", "bt", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "bg_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "bg_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "bg_mean_stdev", ">=");
+    PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "bg_mean_stdev", "<");
+    PXOPT_COPY_F64(config->args, where, "-alt_min", "alt", ">=");
+    PXOPT_COPY_F64(config->args, where, "-alt_max", "alt", "<");
+    PXOPT_COPY_F64(config->args, where, "-az_min", "az", ">=");
+    PXOPT_COPY_F64(config->args, where, "-az_max", "az", "<");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "ccd_temp", ">=");
+    PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "ccd_temp", "<");
+    PXOPT_COPY_F64(config->args, where, "-posang_min", "posang", ">=");
+    PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<");
+    PXOPT_COPY_STR(config->args, where, "-object", "object", "==");
+    PXOPT_COPY_F32(config->args, where, "-solang_min", "solang", ">=");
+    PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<");
 
     if (where->list->n < 1) {
Index: /branches/end_stage/ippTools/src/flatcorrConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/flatcorrConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/flatcorrConfig.c	(revision 16144)
@@ -163,11 +163,11 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-newrun",  "start a new flat correction run",
+    PXOPT_ADD_MODE("-newrun",  "start a new flat correction run",
         FLATCORR_MODE_NEWRUN,       newrunArgs);
-    PXTOOL_ADD_MODE("-pending", "show flat correction runs needing to be processed",
+    PXOPT_ADD_MODE("-pending", "show flat correction runs needing to be processed",
         FLATCORR_MODE_PENDING,      pendingArgs);
-    PXTOOL_ADD_MODE("-flatcorrimfile", "list all the exposures in flat correction runs",
+    PXOPT_ADD_MODE("-flatcorrimfile", "list all the exposures in flat correction runs",
         FLATCORR_MODE_FLATCORRIMFILE, flatcorrimfileArgs);
-    PXTOOL_ADD_MODE("-done",  "change a flat calibration run's state",
+    PXOPT_ADD_MODE("-done",  "change a flat calibration run's state",
         FLATCORR_MODE_DONE,         doneArgs);
 
Index: /branches/end_stage/ippTools/src/magictoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/magictoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/magictoolConfig.c	(revision 16144)
@@ -160,16 +160,16 @@
     psMetadata *modes   = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-queue",           "", MAGICTOOL_MODE_QUEUE,           queueArgs);
-    PXTOOL_ADD_MODE("-definerun",       "", MAGICTOOL_MODE_DEFINERUN,       definerunArgs);
-    PXTOOL_ADD_MODE("-updaterun",       "", MAGICTOOL_MODE_UPDATERUN,       updaterunArgs);
-    PXTOOL_ADD_MODE("-addinputskyfile", "", MAGICTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
-    PXTOOL_ADD_MODE("-inputskyfile",    "", MAGICTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
-    PXTOOL_ADD_MODE("-inputtree",       "", MAGICTOOL_MODE_INPUTTREE,       inputtreeArgs);
-    PXTOOL_ADD_MODE("-toprocess",       "", MAGICTOOL_MODE_TOPROCESS,       toprocessArgs);
-    PXTOOL_ADD_MODE("-addresult",       "", MAGICTOOL_MODE_ADDRESULT,       addresultArgs);
-    PXTOOL_ADD_MODE("-tomask",          "", MAGICTOOL_MODE_TOMASK,          tomaskArgs);
-    PXTOOL_ADD_MODE("-addmask",         "", MAGICTOOL_MODE_ADDMASK,         addmaskArgs);
-    PXTOOL_ADD_MODE("-toskyfilemask",   "", MAGICTOOL_MODE_TOSKYFILEMASK,   toskyfilemaskArgs);
-    PXTOOL_ADD_MODE("-addskyfilemask",  "", MAGICTOOL_MODE_ADDSKYFILEMASK,  addskyfilemaskArgs);
+    PXOPT_ADD_MODE("-queue",           "", MAGICTOOL_MODE_QUEUE,           queueArgs);
+    PXOPT_ADD_MODE("-definerun",       "", MAGICTOOL_MODE_DEFINERUN,       definerunArgs);
+    PXOPT_ADD_MODE("-updaterun",       "", MAGICTOOL_MODE_UPDATERUN,       updaterunArgs);
+    PXOPT_ADD_MODE("-addinputskyfile", "", MAGICTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
+    PXOPT_ADD_MODE("-inputskyfile",    "", MAGICTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
+    PXOPT_ADD_MODE("-inputtree",       "", MAGICTOOL_MODE_INPUTTREE,       inputtreeArgs);
+    PXOPT_ADD_MODE("-toprocess",       "", MAGICTOOL_MODE_TOPROCESS,       toprocessArgs);
+    PXOPT_ADD_MODE("-addresult",       "", MAGICTOOL_MODE_ADDRESULT,       addresultArgs);
+    PXOPT_ADD_MODE("-tomask",          "", MAGICTOOL_MODE_TOMASK,          tomaskArgs);
+    PXOPT_ADD_MODE("-addmask",         "", MAGICTOOL_MODE_ADDMASK,         addmaskArgs);
+    PXOPT_ADD_MODE("-toskyfilemask",   "", MAGICTOOL_MODE_TOSKYFILEMASK,   toskyfilemaskArgs);
+    PXOPT_ADD_MODE("-addskyfilemask",  "", MAGICTOOL_MODE_ADDSKYFILEMASK,  addskyfilemaskArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/pxinjectConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/pxinjectConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/pxinjectConfig.c	(revision 16144)
@@ -84,7 +84,7 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-newExp",      "", PXINJECT_MODE_NEWEXP,       newExpArgs);
-    PXTOOL_ADD_MODE("-newImfile",   "", PXINJECT_MODE_NEWIMFILE,    newImfileArgs);
-    PXTOOL_ADD_MODE("-updatenewExp",   "", PXINJECT_MODE_UPDATENEWEXP,    updatenewExpArgs);
+    PXOPT_ADD_MODE("-newExp",      "", PXINJECT_MODE_NEWEXP,       newExpArgs);
+    PXOPT_ADD_MODE("-newImfile",   "", PXINJECT_MODE_NEWIMFILE,    newImfileArgs);
+    PXOPT_ADD_MODE("-updatenewExp",   "", PXINJECT_MODE_UPDATENEWEXP,    updatenewExpArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/pxtools.h
===================================================================
--- /branches/end_stage/ippTools/src/pxtools.h	(revision 16143)
+++ /branches/end_stage/ippTools/src/pxtools.h	(revision 16144)
@@ -51,5 +51,5 @@
 bool pxGetOptions(FILE *stream, int argc, char **argv, pxConfig *config, psMetadata *modes, psMetadata *argSets);
 
-#define PXTOOL_ADD_MODE(option, comment, modeval, argset) \
+#define PXOPT_ADD_MODE(option, comment, modeval, argset) \
 { \
     if (!psMetadataAddMetadata(argSets, PS_LIST_TAIL, option, 0, comment, argset)) {;\
Index: /branches/end_stage/ippTools/src/pztoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/pztoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/pztoolConfig.c	(revision 16144)
@@ -137,10 +137,10 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-adddatastore",    "", PZTOOL_MODE_ADDDATASTORE, adddatastoreArgs);
-    PXTOOL_ADD_MODE("-datastore",       "", PZTOOL_MODE_DATASTORE,    datastoreArgs);
-    PXTOOL_ADD_MODE("-seen",            "", PZTOOL_MODE_SEEN,         seenArgs);
-    PXTOOL_ADD_MODE("-pendingexp",      "", PZTOOL_MODE_PENDINGEXP,   pendingexpArgs);
-    PXTOOL_ADD_MODE("-pendingimfile",   "", PZTOOL_MODE_PENDINGIMFILE,pendingimfileArgs);
-    PXTOOL_ADD_MODE("-copydone",        "", PZTOOL_MODE_COPYDONE,     copydoneArgs);
+    PXOPT_ADD_MODE("-adddatastore",    "", PZTOOL_MODE_ADDDATASTORE, adddatastoreArgs);
+    PXOPT_ADD_MODE("-datastore",       "", PZTOOL_MODE_DATASTORE,    datastoreArgs);
+    PXOPT_ADD_MODE("-seen",            "", PZTOOL_MODE_SEEN,         seenArgs);
+    PXOPT_ADD_MODE("-pendingexp",      "", PZTOOL_MODE_PENDINGEXP,   pendingexpArgs);
+    PXOPT_ADD_MODE("-pendingimfile",   "", PZTOOL_MODE_PENDINGIMFILE,pendingimfileArgs);
+    PXOPT_ADD_MODE("-copydone",        "", PZTOOL_MODE_COPYDONE,     copydoneArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/regtoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/regtoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/regtoolConfig.c	(revision 16144)
@@ -366,14 +366,14 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-pendingimfile",           "", REGTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
-    PXTOOL_ADD_MODE("-addprocessedimfile",      "",  REGTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-processedimfile",         "", REGTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
-    PXTOOL_ADD_MODE("-revertprocessedimfile",   "", REGTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-updateprocessedimfile",   "",   REGTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileArgs);
-    PXTOOL_ADD_MODE("-pendingexp",              "",       REGTOOL_MODE_PENDINGEXP,pendingexpArgs);
-    PXTOOL_ADD_MODE("-addprocessedexp",         "",  REGTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
-    PXTOOL_ADD_MODE("-processedexp",            "",     REGTOOL_MODE_PROCESSEDEXP, processedexpArgs);
-    PXTOOL_ADD_MODE("-revertprocessedexp",      "", REGTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpArgs);
-    PXTOOL_ADD_MODE("-updateprocessedexp",      "",  REGTOOL_MODE_UPDATEPROCESSEDEXP,      updatedprocessedexpArgs);
+    PXOPT_ADD_MODE("-pendingimfile",           "", REGTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedimfile",      "",  REGTOOL_MODE_ADDPROCESSEDIMFILE, addprocessedimfileArgs);
+    PXOPT_ADD_MODE("-processedimfile",         "", REGTOOL_MODE_PROCESSEDIMFILE, processedimfileArgs);
+    PXOPT_ADD_MODE("-revertprocessedimfile",   "", REGTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileArgs);
+    PXOPT_ADD_MODE("-updateprocessedimfile",   "",   REGTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileArgs);
+    PXOPT_ADD_MODE("-pendingexp",              "",       REGTOOL_MODE_PENDINGEXP,pendingexpArgs);
+    PXOPT_ADD_MODE("-addprocessedexp",         "",  REGTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
+    PXOPT_ADD_MODE("-processedexp",            "",     REGTOOL_MODE_PROCESSEDEXP, processedexpArgs);
+    PXOPT_ADD_MODE("-revertprocessedexp",      "", REGTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpArgs);
+    PXOPT_ADD_MODE("-updateprocessedexp",      "",  REGTOOL_MODE_UPDATEPROCESSEDEXP,      updatedprocessedexpArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/stacktoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/stacktoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/stacktoolConfig.c	(revision 16144)
@@ -144,12 +144,12 @@
     psMetadata *modes   = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-definerun",       "", STACKTOOL_MODE_DEFINERUN,      definerunArgs);
-    PXTOOL_ADD_MODE("-updaterun",       "", STACKTOOL_MODE_UPDATERUN,      updaterunArgs);
-    PXTOOL_ADD_MODE("-addinputskyfile", "", STACKTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
-    PXTOOL_ADD_MODE("-inputskyfile",    "", STACKTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
-    PXTOOL_ADD_MODE("-tosum",           "", STACKTOOL_MODE_TOSUM,          tosumArgs);
-    PXTOOL_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
-    PXTOOL_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
-    PXTOOL_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
+    PXOPT_ADD_MODE("-definerun",       "", STACKTOOL_MODE_DEFINERUN,      definerunArgs);
+    PXOPT_ADD_MODE("-updaterun",       "", STACKTOOL_MODE_UPDATERUN,      updaterunArgs);
+    PXOPT_ADD_MODE("-addinputskyfile", "", STACKTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
+    PXOPT_ADD_MODE("-inputskyfile",    "", STACKTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
+    PXOPT_ADD_MODE("-tosum",           "", STACKTOOL_MODE_TOSUM,          tosumArgs);
+    PXOPT_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
+    PXOPT_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
+    PXOPT_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/end_stage/ippTools/src/warptoolConfig.c
===================================================================
--- /branches/end_stage/ippTools/src/warptoolConfig.c	(revision 16143)
+++ /branches/end_stage/ippTools/src/warptoolConfig.c	(revision 16144)
@@ -216,17 +216,17 @@
     psMetadata *modes   = psMetadataAlloc();
 
-    PXTOOL_ADD_MODE("-definerun",       "", WARPTOOL_MODE_DEFINERUN,      definerunArgs);
-    PXTOOL_ADD_MODE("-runone",          "", WARPTOOL_MODE_RUNONE,         runoneArgs);
-    PXTOOL_ADD_MODE("-updaterun",       "", WARPTOOL_MODE_UPDATERUN,      updaterunArgs);
-    PXTOOL_ADD_MODE("-addinputexp",     "", WARPTOOL_MODE_ADDINPUTEXP,    addinputexpArgs);
-    PXTOOL_ADD_MODE("-exp",             "", WARPTOOL_MODE_EXP,            expArgs);
-    PXTOOL_ADD_MODE("-imfile",          "", WARPTOOL_MODE_IMFILE,         imfileArgs);
-    PXTOOL_ADD_MODE("-tooverlap",       "", WARPTOOL_MODE_TOOVERLAP,      tooverlapArgs);
-    PXTOOL_ADD_MODE("-addoverlap",      "", WARPTOOL_MODE_ADDOVERLAP,     addoverlapArgs);
-    PXTOOL_ADD_MODE("-scmap",           "", WARPTOOL_MODE_SCMAP,          scmapArgs);
-    PXTOOL_ADD_MODE("-towarped",        "", WARPTOOL_MODE_TOWARPED,       towarpedArgs);
-    PXTOOL_ADD_MODE("-addwarped",       "", WARPTOOL_MODE_ADDWARPED,      addwarpedArgs);
-    PXTOOL_ADD_MODE("-warped",          "", WARPTOOL_MODE_WARPED,         warpedArgs);
-    PXTOOL_ADD_MODE("-revertwarped",    "", WARPTOOL_MODE_REVERTWARPED,   revertwarpedArgs);
+    PXOPT_ADD_MODE("-definerun",       "", WARPTOOL_MODE_DEFINERUN,      definerunArgs);
+    PXOPT_ADD_MODE("-runone",          "", WARPTOOL_MODE_RUNONE,         runoneArgs);
+    PXOPT_ADD_MODE("-updaterun",       "", WARPTOOL_MODE_UPDATERUN,      updaterunArgs);
+    PXOPT_ADD_MODE("-addinputexp",     "", WARPTOOL_MODE_ADDINPUTEXP,    addinputexpArgs);
+    PXOPT_ADD_MODE("-exp",             "", WARPTOOL_MODE_EXP,            expArgs);
+    PXOPT_ADD_MODE("-imfile",          "", WARPTOOL_MODE_IMFILE,         imfileArgs);
+    PXOPT_ADD_MODE("-tooverlap",       "", WARPTOOL_MODE_TOOVERLAP,      tooverlapArgs);
+    PXOPT_ADD_MODE("-addoverlap",      "", WARPTOOL_MODE_ADDOVERLAP,     addoverlapArgs);
+    PXOPT_ADD_MODE("-scmap",           "", WARPTOOL_MODE_SCMAP,          scmapArgs);
+    PXOPT_ADD_MODE("-towarped",        "", WARPTOOL_MODE_TOWARPED,       towarpedArgs);
+    PXOPT_ADD_MODE("-addwarped",       "", WARPTOOL_MODE_ADDWARPED,      addwarpedArgs);
+    PXOPT_ADD_MODE("-warped",          "", WARPTOOL_MODE_WARPED,         warpedArgs);
+    PXOPT_ADD_MODE("-revertwarped",    "", WARPTOOL_MODE_REVERTWARPED,   revertwarpedArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
