Index: /trunk/ippTools/src/regtool.c
===================================================================
--- /trunk/ippTools/src/regtool.c	(revision 10636)
+++ /trunk/ippTools/src/regtool.c	(revision 10637)
@@ -730,4 +730,5 @@
 
     bool status = false;
+    // optional
     psString exp_type = psMetadataLookupStr(&status, config->args, "-exp_type");
     if (!status) {
@@ -735,8 +736,5 @@
         return false;
     }
-    if (!exp_type) {
-        psError(PS_ERR_UNKNOWN, true, "-exp_type is required");
-        return false;
-    }
+
     psString filter = psMetadataLookupStr(&status, config->args, "-filter");
     if (!status) {
@@ -744,8 +742,5 @@
         return false;
     }
-    if (!filter) {
-        psError(PS_ERR_UNKNOWN, true, "-filter is required");
-        return false;
-    }
+
     psF32 airmass = psMetadataLookupF32(&status, config->args, "-airmass");
     if (!status) {
@@ -753,8 +748,5 @@
         return false;
     }
-    if (isnan(airmass)) {
-        psError(PS_ERR_UNKNOWN, true, "-airmass is required");
-        return false;
-    }
+
     psF64 ra = psMetadataLookupF64(&status, config->args, "-ra");
     if (!status) {
@@ -762,8 +754,5 @@
         return false;
     }
-    if (isnan(ra)) {
-        psError(PS_ERR_UNKNOWN, true, "-ra is required");
-        return false;
-    }
+
     psF64 decl = psMetadataLookupF64(&status, config->args, "-decl");
     if (!status) {
@@ -771,8 +760,5 @@
         return false;
     }
-    if (isnan(decl)) {
-        psError(PS_ERR_UNKNOWN, true, "-decl is required");
-        return false;
-    }
+
     psF32 exp_time = psMetadataLookupF32(&status, config->args, "-exp_time");
     if (!status) {
@@ -780,10 +766,5 @@
         return false;
     }
-    if (isnan(exp_time)) {
-        psError(PS_ERR_UNKNOWN, true, "-exp_time is required");
-        return false;
-    }
-
-    // optional
+
     psF64 bg = psMetadataLookupF64(&status, config->args, "-bg");
     if (!status) {
@@ -804,5 +785,4 @@
     }
 
-    // not optional
     psF64 alt = psMetadataLookupF64(&status, config->args, "-alt");
     if (!status) {
@@ -810,8 +790,5 @@
         return false;
     }
-    if (isnan(alt)) {
-        psError(PS_ERR_UNKNOWN, true, "-alt is required");
-        return false;
-    }
+
     psF64 az = psMetadataLookupF64(&status, config->args, "-az");
     if (!status) {
@@ -819,8 +796,5 @@
         return false;
     }
-    if (isnan(az)) {
-        psError(PS_ERR_UNKNOWN, true, "-az is required");
-        return false;
-    }
+
     psF32 ccd_temp = psMetadataLookupF32(&status, config->args, "-ccd_temp");
     if (!status) {
@@ -828,8 +802,5 @@
         return false;
     }
-    if (isnan(ccd_temp)) {
-        psError(PS_ERR_UNKNOWN, true, "-ccd_temp is required");
-        return false;
-    }
+
     psF64 posang = psMetadataLookupF32(&status, config->args, "-posang");
     if (!status) {
@@ -837,9 +808,5 @@
         return false;
     }
-    if (isnan(posang)) {
-        psError(PS_ERR_UNKNOWN, true, "-posang is required");
-        return false;
-    }
-    // optional
+
     psString object = psMetadataLookupStr(&status, config->args, "-object");
     if (!status) {
@@ -897,4 +864,5 @@
 
     bool status = false;
+    // optional
     psString exp_type = psMetadataLookupStr(&status, config->args, "-exp_type");
     if (!status) {
@@ -902,8 +870,5 @@
         return false;
     }
-    if (!exp_type) {
-        psError(PS_ERR_UNKNOWN, true, "-exp_type is required");
-        return false;
-    }
+
     psString filter = psMetadataLookupStr(&status, config->args, "-filter");
     if (!status) {
@@ -911,8 +876,5 @@
         return false;
     }
-    if (!filter) {
-        psError(PS_ERR_UNKNOWN, true, "-filter is required");
-        return false;
-    }
+
     psF32 airmass = psMetadataLookupF32(&status, config->args, "-airmass");
     if (!status) {
@@ -920,8 +882,5 @@
         return false;
     }
-    if (isnan(airmass)) {
-        psError(PS_ERR_UNKNOWN, true, "-airmass is required");
-        return false;
-    }
+
     psF64 ra = psMetadataLookupF64(&status, config->args, "-ra");
     if (!status) {
@@ -929,8 +888,5 @@
         return false;
     }
-    if (isnan(ra)) {
-        psError(PS_ERR_UNKNOWN, true, "-ra is required");
-        return false;
-    }
+
     psF64 decl = psMetadataLookupF64(&status, config->args, "-decl");
     if (!status) {
@@ -938,19 +894,11 @@
         return false;
     }
-    if (isnan(decl)) {
-        psError(PS_ERR_UNKNOWN, true, "-decl is required");
-        return false;
-    }
+
     psF32 exp_time = psMetadataLookupF32(&status, config->args, "-exp_time");
-    if (isnan(exp_time)) {
+    if (!status) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -exp_time");
         return false;
     }
-    if (isnan(exp_time)) {
-        psError(PS_ERR_UNKNOWN, true, "-exp_time is required");
-        return false;
-    }
-
-    // optional
+
     psF64 bg = psMetadataLookupF64(&status, config->args, "-bg");
     if (!status) {
@@ -971,5 +919,4 @@
     }
 
-    // not optional
     psF64 alt = psMetadataLookupF64(&status, config->args, "-alt");
     if (!status) {
@@ -977,8 +924,5 @@
         return false;
     }
-    if (isnan(alt)) {
-        psError(PS_ERR_UNKNOWN, true, "-alt is required");
-        return false;
-    }
+
     psF64 az = psMetadataLookupF64(&status, config->args, "-az");
     if (!status) {
@@ -986,8 +930,5 @@
         return false;
     }
-    if (isnan(az)) {
-        psError(PS_ERR_UNKNOWN, true, "-az is required");
-        return false;
-    }
+
     psF32 ccd_temp = psMetadataLookupF32(&status, config->args, "-ccd_temp");
     if (!status) {
@@ -995,8 +936,5 @@
         return false;
     }
-    if (isnan(ccd_temp)) {
-        psError(PS_ERR_UNKNOWN, true, "-ccd_temp is required");
-        return false;
-    }
+
     psF64 posang = psMetadataLookupF32(&status, config->args, "-posang");
     if (!status) {
@@ -1004,9 +942,5 @@
         return false;
     }
-    if (isnan(posang)) {
-        psError(PS_ERR_UNKNOWN, true, "-posang is required");
-        return false;
-    }
-    // optional
+
     psString object = psMetadataLookupStr(&status, config->args, "-object");
     if (!status) {
