#include "focas1.h" /* SETCAT - Set or modify catalog header */ /* Set default catalog format here */ /* 1 = machine dependent format (original format) */ /* 2 = machine dependent short format */ /* 3 = machine independent format */ /* 4 = machine independent format (IRAF aligned) */ #define CATTYPE 4 long oldsz; setcat (catalog) char *catalog; /* Catalog to set or modify */ { int i; FILE *fin, *fout; char str[80]; struct objrec ob; long szcathdr (); fin = getstdin; if (access (catalog, 0)) { cattype = CATTYPE; setcathdr (); cfd = catopen (catalog, 1); fclose (cfd); } cfd = catopen (catalog, 2); oldsz = szcathdr (); cmmnt ("setcat"); printf ("\nSet catalog %s\n\n", catalog); printf ("Set catalog header parameters? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') modcathdr (); if (feof (fin)) goto END; printf ("Set detection filter? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') dflt (); if (feof (fin)) goto END; printf ("Set coordinate transformation? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') trnsfrm (); if (feof (fin)) goto END; printf ("Set intensity relation? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') intensity (); if (feof (fin)) goto END; printf ("Set point spread function? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') { printf (" Input file (if input from the terminal): "); fflush (stdout); gets (str); psf (str); } if (feof (fin)) goto END; printf ("Set classification rules? "); fflush (stdout); str[0] = 'q'; gets (str); if (str[0] == 'q') goto END; if (str[0] == 'y') clssrls (); END: if (oldsz != szcathdr ()) { fout = catopen ("setcat.tmp", 1); fseek (cfd, oldsz, 0); while (rdcatob (cfd, 0L, &ob) == 0) wtcat (&ob, fout); fclose (cfd); fclose (fout); c_delete (catalog); c_rename ("setcat.tmp", catalog); } else { wtcathdr (cfd, 0); fclose (cfd); } }