Index: trunk/Ohana/src/getstar/src/select_by_region.c
===================================================================
--- trunk/Ohana/src/getstar/src/select_by_region.c	(revision 27674)
+++ trunk/Ohana/src/getstar/src/select_by_region.c	(revision 27675)
@@ -15,6 +15,6 @@
   /* identify selection criteria */
   if (VERBOSE) fprintf (stderr, "extracting for time range %d to %d\n", start, end);
-  if (VERBOSE) fprintf (stderr, "extracting for region %f,%f to %f,%f\n", 
-			region[0].Rmin, region[0].Dmin, region[0].Rmax, region[0].Dmax);
+  if (VERBOSE) fprintf (stderr, "extracting for region %f,%f to %f,%f\n",
+                        region[0].Rmin, region[0].Dmin, region[0].Rmax, region[0].Dmax);
 
   if (output[0].header.buffer != NULL) {
@@ -54,5 +54,5 @@
     if (VERBOSE) fprintf (stderr, "extracting from catalog covering region %f,%f to %f,%f\n", Rmin, Dmin, Rmax, Dmax);
 
-    AREA = fabs(Dmax - Dmin) * fabs(Rmax - Rmin) * cos (0.5*RAD_DEG*(Dmax + Dmin));  
+    AREA = fabs(Dmax - Dmin) * fabs(Rmax - Rmin) * cos (0.5*RAD_DEG*(Dmax + Dmin));
     assert (AREA > 0);
 
@@ -70,13 +70,13 @@
       mag = NAN;
       if (Nsec != -1) {
-	mag = catalog[0].secfilt[i*Nsecfilt + Nsec].M;
+        mag = catalog[0].secfilt[i*Nsecfilt + Nsec].M;
       } else {
-	offset = catalog[0].average[i].measureOffset;
-	for (m = 0; m < catalog[0].average[i].Nmeasure; m++) {
-	  if (catalog[0].measure[offset + m].photcode == code) {
-	    mag = PhotRel (&catalog[0].measure[offset + m], &catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt]);
-	    break;
-	  }
-	}
+        offset = catalog[0].average[i].measureOffset;
+        for (m = 0; m < catalog[0].average[i].Nmeasure; m++) {
+          if (catalog[0].measure[offset + m].photcode == code) {
+            mag = PhotRel (&catalog[0].measure[offset + m], &catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt]);
+            break;
+          }
+        }
       }
       if (isnan(mag)) continue;
@@ -88,5 +88,5 @@
       Nmag[bin] ++;
     }
-      
+
     if (!MinMagUse) MinMagValue = MagMin;
     bin = (MinMagValue - MagMin) / dMag;
@@ -106,7 +106,12 @@
     R = catalog[0].average[i].R;
     D = catalog[0].average[i].D;
-    
-    if (R < region[0].Rmin) continue;
-    if (R > region[0].Rmax) continue;
+
+    if (region[0].Rmin > region[0].Rmax) {
+        // Rmin > Rmax : R may either be > Rmin or < Rmax:
+        if ((R > region[0].Rmin) && (R < region[0].Rmax)) continue;
+    } else {
+        if (R < region[0].Rmin) continue;
+        if (R > region[0].Rmax) continue;
+    }
     if (D < region[0].Dmin) continue;
     if (D > region[0].Dmax) continue;
@@ -115,13 +120,13 @@
       mag = NAN;
       if (Nsec != -1) {
-	mag = catalog[0].secfilt[i*Nsecfilt + Nsec].M;
+        mag = catalog[0].secfilt[i*Nsecfilt + Nsec].M;
       } else {
-	offset = catalog[0].average[i].measureOffset;
-	for (m = 0; m < catalog[0].average[i].Nmeasure; m++) {
-	  if (catalog[0].measure[offset + m].photcode == code) {
-	    mag = PhotRel (&catalog[0].measure[offset + m], &catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt]);
-	    break;
-	  }
-	}
+        offset = catalog[0].average[i].measureOffset;
+        for (m = 0; m < catalog[0].average[i].Nmeasure; m++) {
+          if (catalog[0].measure[offset + m].photcode == code) {
+            mag = PhotRel (&catalog[0].measure[offset + m], &catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt]);
+            break;
+          }
+        }
       }
       if (isnan(mag) || (mag > MagLimitValue)) continue;
@@ -141,7 +146,7 @@
       output[0].measure[Nmeas].averef = Nave;
       Nmeas ++;
-      
+
       CHECK_REALLOCATE (output[0].measure, Measure, NMEAS, Nmeas, 1000);
-    }      
+    }
 
     Nave ++;
@@ -157,5 +162,5 @@
 
   fprintf (stderr, "output catalog has %lld stars (%lld measures, %d secfilt)\n",
-	   (long long) output[0].Naverage, (long long) output[0].Nmeasure, output[0].Nsecfilt);
+           (long long) output[0].Naverage, (long long) output[0].Nmeasure, output[0].Nsecfilt);
   return (TRUE);
 }
