Index: /trunk/Ohana/src/imregister/include/detrend.h
===================================================================
--- /trunk/Ohana/src/imregister/include/detrend.h	(revision 76)
+++ /trunk/Ohana/src/imregister/include/detrend.h	(revision 77)
@@ -39,4 +39,5 @@
   int Delete;
   int Modify;
+  int Altpath;
   int ElixirSmart;
   int TimeMode;
@@ -44,4 +45,5 @@
   int Close;
   int Criteria;
+  int Chipname;
 
   char *ModifyEntry, *ModifyValue;
@@ -58,13 +60,4 @@
 
 # define DEBUG 0
-
-# define NTYPE 11
-enum {T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES, T_FRINGEPTS, T_ANY};
-static char typename[NTYPE][32] = {"none", "object", "dark", "bias", "flat", "mask", "fringe", "scatter", "modes", "frpts", "any"};
-static char typecode[NTYPE]     = {'x',    'o',      'd',    'b',    'f',    'm',    'r',      's',       'M',     'F'};
-
-# define NMODE 7
-enum {M_NONE, M_MEF, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE, M_MODES};
-static char modename[NMODE][32] = {"none", "MEF", "SPLIT", "SINGLE", "CUBE", "SLICE", "MODES"};
 
 char **RecipeType;
Index: /trunk/Ohana/src/imregister/include/imreg.h
===================================================================
--- /trunk/Ohana/src/imregister/include/imreg.h	(revision 76)
+++ /trunk/Ohana/src/imregister/include/imreg.h	(revision 77)
@@ -1,2 +1,13 @@
+# include <signal.h>
+
+typedef struct {
+  char *buffer;
+  int   Nalloc;
+  int   Nmaxread;
+  int   Nextra;
+  int   Nlast;
+  int   Nbuffer;
+} Fifo;
+
 struct {
   int ModeSelect;    int Mode;
@@ -23,6 +34,9 @@
   char *oldpath, *newpath;
 
+  int unique;
   int mef2split, split2mef;
   int modify_dist, dist;
+  int modify_filter, modify_type, type;
+  char *filter;
 
   int HST;
@@ -33,16 +47,27 @@
 } output;
 
-# define NTYPE 9
-enum {T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES};
-static char typename[NTYPE][32] = {"none", "object", "dark", "bias", "flat", "mask", "fringe", "scatter", "modes"};
+typedef struct {
+  int *ccd;
+  int Nccd;
+  char name[64];
+} MosaicRegion;
 
-# define NMODE 6
-enum {M_NONE, M_MEG, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE};
-static char modename[6][32] = {"none", "MEF", "SPLIT", "SINGLE", "CUBE", "SLICE"};
+typedef struct {
+  MosaicRegion center;
+  MosaicRegion outer;
+  MosaicRegion top;
+  MosaicRegion bottom;
+  MosaicRegion left;
+  MosaicRegion right;
+} MosaicLayout;
 
 enum {UNLOCK, LOCK, IGNORE};
 
 int SingleIsSplit;
+int NeedType;
 int NoReg;
+int IMSORT;
+int CLIENT;
+char *PIDFILE;
 
 int args (int argc, char **argv);
@@ -70,2 +95,12 @@
 int define_table (Header *header, Matrix *matrix, Header *theader, FTable *table);
 void set_timezone (double dt);
+
+void DumpCADCTable (char *filename, RegImage *image, int *match, int Nmatch);
+int *GetObsIDSubset (RegImage *image, int start, int *index, int *entry, int Nindex, int *Nsubset);
+int *GetUniqueObsID (RegImage *image, int *index, int *entry, int Nindex, int *Nmatch);
+void GetObsIDIndex (RegImage *image, int *match, int Nmatch, int **Index, int **Entry);
+double SigmaClipList (double *list, int N);
+double MosaicIQStats (RegImage *image, int *match, int Nmatch, MosaicRegion *region);
+MosaicLayout *CreateCFH12K ();
+MosaicLayout *CreateMegaCam ();
+int GetREFCCD (RegImage *image, int *index, int *entry, int Nindex, int start);
Index: /trunk/Ohana/src/imregister/include/imregister.h
===================================================================
--- /trunk/Ohana/src/imregister/include/imregister.h	(revision 76)
+++ /trunk/Ohana/src/imregister/include/imregister.h	(revision 77)
@@ -18,4 +18,7 @@
 char TransDB[256];
 char ImPhotDB[256];
+
+int  NDetrendAltDB;
+char **DetrendAltDB;
 
 char PhotCodeFile[256];
@@ -46,8 +49,10 @@
 char DECSexigKeyword[16];
 char CameraKeyword[16];
+char Camera[64];
+char SeeingREFCCD[64];
 double ARCSEC_PIXEL;
 
 /* global vars used by camera info */
-char **ccds;
+char **ccds, **ccdn;
 int  Nccd;
 
@@ -80,5 +85,6 @@
 
 void ConfigCamera ();
-int MatchCCDName (Header *header);
+int MatchCCDNameHeader (Header *header);
+int MatchCCDName (char *ID);
 void ConfigFilter ();
 int MatchFilterList (char *line);
@@ -90,2 +96,13 @@
 /* where is this defined ?? */
 char *basename (char *);
+
+# define T_UNDEF -1
+# define NTYPE 11
+enum {T_NONE, T_OBJECT, T_DARK, T_BIAS, T_FLAT, T_MASK, T_FRINGE, T_SCATTER, T_MODES, T_FRINGEPTS, T_ANY};
+static char typename[NTYPE][32] = {"none", "object", "dark", "bias", "flat", "mask", "fringe", "scatter", "modes", "frpts", "any"};
+static char typecode[NTYPE]     = {'x',    'o',      'd',    'b',    'f',    'm',    'r',      's',       'M',     'F'};
+
+# define M_UNDEF -1
+# define NMODE 7
+enum {M_NONE, M_MEF, M_SPLIT, M_SINGLE, M_CUBE, M_SLICE, M_MODES};
+static char modename[NMODE][32] = {"none", "MEF", "SPLIT", "SINGLE", "CUBE", "SLICE", "MODES"};
