summaryrefslogtreecommitdiffstats
path: root/funtools/funparam.c
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-26 21:13:00 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-26 21:13:00 (GMT)
commitda2e3d212171bbe64c1af39114fd067308656990 (patch)
tree9601f7ed15fa1394762124630c12a792bc073ec2 /funtools/funparam.c
parent76b109ad6d97d19ab835596dc70149ef379f3733 (diff)
downloadblt-da2e3d212171bbe64c1af39114fd067308656990.zip
blt-da2e3d212171bbe64c1af39114fd067308656990.tar.gz
blt-da2e3d212171bbe64c1af39114fd067308656990.tar.bz2
rm funtools for update
Diffstat (limited to 'funtools/funparam.c')
-rw-r--r--funtools/funparam.c804
1 files changed, 0 insertions, 804 deletions
diff --git a/funtools/funparam.c b/funtools/funparam.c
deleted file mode 100644
index 88e5f4b..0000000
--- a/funtools/funparam.c
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- * Copyright (c) 1999-2003 Smithsonian Astrophysical Observatory
- */
-
-#include <funtoolsP.h>
-
-static int doprim=0;
-static int doraw=0;
-
-#define BLANK_NAME " "
-
-#define MULTI_ENTRY(name,n) (!n && (!strcmp(name, BLANK_NAME) || \
- !strcmp(name, "HISTORY") || \
- !strcmp(name, "CONTINUE") || \
- !strcmp(name, "COMMENT")) )
-
-#ifdef ANSI_FUNC
-static int
-_FunParamGetType(FITSCard card)
-#else
-static int _FunParamGetType(card)
- FITSCard card;
-#endif
-{
- FITSType type;
- char tbuf[SZ_LINE];
-
- if( ft_cardpar(card, &type, tbuf, NULL, NULL) != NULL ){
- switch(type){
- case FT_UNKNOWN:
- return(FUN_PAR_UNKNOWN);
- case FT_COMMENT:
- return(FUN_PAR_COMMENT);
- case FT_LOGICAL:
- return(FUN_PAR_LOGICAL);
- case FT_INTEGER:
- return(FUN_PAR_INTEGER);
- case FT_STRING:
- return(FUN_PAR_STRING);
- case FT_VALUE:
- return(FUN_PAR_VALUE);
- case FT_REAL:
- return(FUN_PAR_REAL);
- case FT_COMPLEX:
- return(FUN_PAR_COMPLEX);
- default:
- return(FUN_PAR_UNKNOWN);
- }
- }
- return(0);
-}
-
-/*
- *
- * _FunParamUpdateFile -- make a stab at updating a param value
- *
- */
-#ifdef ANSI_FUNC
-static int
-_FunParamUpdateFile(Fun fun, FITSCard ocard, FITSCard card)
-#else
-static int _FunParamUpdateFile(fun, ocard, card)
- Fun fun;
- FITSCard card;
- FITSCard ocard;
-#endif
-{
- off_t pos, opos;
-
- /* sanity check */
- if( !ocard ) return 0;
-
- /* try to update file if necessary */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- pos = fun->headpos + (char *)ocard - (char *)fun->header->cards;
- if( ((opos=gtell(fun->gio)) >=0) && (gseek(fun->gio, pos, 0) >=0) ){
- gwrite(fun->gio, (char *)card, sizeof(char), FT_CARDLEN);
- gseek(fun->gio, opos, 0);
- return 1;
- }
- else
- return 0;
- }
- else
- return 1;
-}
-
-/*
- *
- * FUN_PRIMARY -- set the doprim flag
- * this is meant to look like one of the funtools defines
- *
- */
-#ifdef ANSI_FUNC
-Fun
-FUN_PRIMARY(Fun fun)
-#else
-Fun FUN_PRIMARY(fun)
- Fun fun;
-#endif
-{
- doprim = 1;
- return fun;
-}
-
-/*
- *
- * FUN_RAW -- set the doraw flag
- * this is meant to look like one of the funtools defines
- *
- */
-#ifdef ANSI_FUNC
-char *
-FUN_RAW(char *name)
-#else
-char *FUN_RAW(name)
- char *name;
-#endif
-{
- doraw = 1;
- return name;
-}
-
-/*
- *
- * FunParamGetb -- get a parameter as a logical
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamGetb(Fun fun, char *name, int n, int defval, int *got)
-#else
-int FunParamGetb(fun, name, n, defval, got)
- Fun fun;
- char *name;
- int n;
- int defval;
- int *got;
-#endif
-{
- FITSCard card;
- FITSHead hd;
- int val;
-
- *got = 0;
- val = defval;
- if( doprim || fun->doprim ){
- if( fun->header->primary )
- hd = fun->header->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
- val = ft_headgetl(hd, name, n, defval, &card);
- if( card ){
- *got = _FunParamGetType(card);
- }
-
-done:
- doprim = 0;
- doraw = 0;
- return val;
-}
-
-/*
- *
- * FunParamGeti -- get a parameter as an integer
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamGeti(Fun fun, char *name, int n, int defval, int *got)
-#else
-int FunParamGeti(fun, name, n, defval, got)
- Fun fun;
- char *name;
- int n;
- int defval;
- int *got;
-#endif
-{
- FITSCard card;
- FITSHead hd;
- int val;
-
- *got = 0;
- val = defval;
- if( doprim || fun->doprim ){
- if( fun->header->primary )
- hd = fun->header->primary;
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- val = ft_headgeti(hd, name, n, defval, &card);
- if( card ){
- *got = _FunParamGetType(card);
- }
-
-done:
- doprim = 0;
- doraw = 0;
- return val;
-}
-
-/*
- *
- * FunParamGetl -- get a parameter as a longlong
- *
- */
-#ifdef ANSI_FUNC
-longlong
-FunParamGetl(Fun fun, char *name, int n, longlong defval, int *got)
-#else
-longlong FunParamGetl(fun, name, n, defval, got)
- Fun fun;
- char *name;
- int n;
- longlong defval;
- int *got;
-#endif
-{
- FITSCard card;
- FITSHead hd;
- int val;
-
- *got = 0;
- val = defval;
- if( doprim || fun->doprim ){
- if( fun->header->primary )
- hd = fun->header->primary;
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- val = ft_headgetil(hd, name, n, defval, &card);
- if( card ){
- *got = _FunParamGetType(card);
- }
-
-done:
- doprim = 0;
- doraw = 0;
- return val;
-}
-
-/*
- *
- * FunParamGetd -- get a parameter as a double float
- *
- */
-#ifdef ANSI_FUNC
-double
-FunParamGetd(Fun fun, char *name, int n, double defval, int *got)
-#else
-double FunParamGetd(fun, name, n, defval, got)
- Fun fun;
- char *name;
- int n;
- double defval;
- int *got;
-#endif
-{
- FITSCard card;
- FITSHead hd;
- double val;
-
- *got = 0;
- val = defval;
- if( doprim || fun->doprim ){
- if( fun->header->primary )
- hd = fun->header->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- val = ft_headgetr(hd, name, n, defval, &card);
- if( card ){
- *got = _FunParamGetType(card);
- }
-
-done:
- doprim = 0;
- doraw = 0;
- return val;
-}
-
-/*
- *
- * FunParamGets -- get a parameter as a string
- *
- */
-#ifdef ANSI_FUNC
-char *
-FunParamGets(Fun fun, char *name, int n, char *defval, int *got)
-#else
-char *FunParamGets(fun, name, n, defval, got)
- Fun fun;
- char *name;
- int n;
- char * defval;
- int *got;
-#endif
-{
- FITSCard card;
- FITSHead hd;
- char tbuf[FT_CARDLEN+1];
- char *val;
-
- *got = 0;
- if( doprim || fun->doprim ){
- if( fun->header->primary )
- hd = fun->header->primary;
- else
- goto dodef;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto dodef;
- }
-
- if( name && *name ){
- val = ft_headgets(hd, name, n, defval, &card);
- if( doraw || fun->doraw ){
- if( val ) xfree(val);
- if( card && *card->c ){
- strncpy(tbuf, card->c, FT_CARDLEN);
- tbuf[FT_CARDLEN] = '\0';
- val = xstrdup(tbuf);
- }
- else{
- goto dodef;
- }
- }
- }
- else{
- if( n > 0 ){
- card = ft_cardnth(hd, n);
- if( card && *card->c ){
- strncpy(tbuf, card->c, FT_CARDLEN);
- tbuf[FT_CARDLEN] = '\0';
- val = xstrdup(tbuf);
- }
- else
- goto dodef;
- }
- else{
- goto dodef;
- }
- }
- if( card ){
- *got = _FunParamGetType(card);
- }
- doprim = 0;
- doraw = 0;
- return val;
-
-dodef:
- *got = 0;
- doprim = 0;
- doraw = 0;
- if( defval && *defval )
- val = xstrdup(defval);
- else
- val = NULL;
- return val;
-}
-
-/*
- *
- * FunParamPutb -- set a logical parameter value
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamPutb(Fun fun, char *name, int n, int value, char *comm,
- int append)
-#else
-int FunParamPutb(fun, name, n, value, comm, append)
- Fun fun;
- char *name;
- int n;
- int value;
- char *comm;
- int append;
-#endif
-{
- FITSCard card=NULL, ocard=NULL, tcard=NULL;
- FITSHead hd;
- int got;
- int ip;
- char tbuf[SZ_LINE], tbuf2[SZ_LINE];
-
- got = -1;
- if( !name ) name = BLANK_NAME;
- if( doprim || fun->doprim ){
- if( fun->primary )
- hd = fun->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- /* see if we have to update file (if we already have written this param) */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- /* look for the exact card */
- ocard=ft_headfind(hd, name, n, 0);
- /* look for a blank placeholder card whose value is the card name */
- if( !ocard && (append == 2) ){
- if( n != 0 )
- snprintf(tbuf2, SZ_LINE-1, "%s%d", name, n);
- else
- strncpy(tbuf2, name, SZ_LINE-1);
- for(tcard=hd->cards; tcard!=&(hd->cards[hd->ncard]); tcard++){
- if( !strncmp((*tcard).c, BLANK_NAME, 8) ){
- ip = 0;
- if( word((*tcard).c, tbuf, &ip) && !strcasecmp(tbuf, tbuf2) ){
- ocard = tcard;
- break;
- }
- }
- }
- }
- }
-
- /* set parameter value */
- if( MULTI_ENTRY(name, n) )
- card = ft_headappl(hd, name, n, value, comm);
- else
- card = ft_headsetl(hd, name, n, value, comm, append);
- /* so far, so good */
- if( card ) got = 1;
-
- /* update file if necessary */
- if( ocard && card ) got = _FunParamUpdateFile(fun, ocard, card);
-
-done:
- doprim = 0;
- doraw = 0;
- return got;
-}
-
-/*
- *
- * FunParamPuti -- set an integer parameter value
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamPuti(Fun fun, char *name, int n, int value, char *comm, int append)
-#else
-int FunParamPuti(fun, name, n, value, comm, append)
- Fun fun;
- char *name;
- int n;
- int value;
- char *comm;
- int append;
-#endif
-{
- FITSCard card=NULL, ocard=NULL, tcard=NULL;
- FITSHead hd;
- int got;
- int ip;
- char tbuf[SZ_LINE], tbuf2[SZ_LINE];
-
- got = -1;
- if( !name ) name = BLANK_NAME;
- if( doprim || fun->doprim ){
- if( fun->primary )
- hd = fun->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- /* see if we have to update file (if we already have written this param) */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- /* look for the exact card */
- ocard=ft_headfind(hd, name, n, 0);
- /* look for a blank placeholder card whose value is the card name */
- if( !ocard && (append == 2) ){
- if( n != 0 )
- snprintf(tbuf2, SZ_LINE-1, "%s%d", name, n);
- else
- strncpy(tbuf2, name, SZ_LINE-1);
- for(tcard=hd->cards; tcard!=&(hd->cards[hd->ncard]); tcard++){
- if( !strncmp((*tcard).c, BLANK_NAME, 8) ){
- ip = 0;
- if( word((*tcard).c, tbuf, &ip) && !strcasecmp(tbuf, tbuf2) ){
- ocard = tcard;
- break;
- }
- }
- }
- }
- }
-
- /* set parameter value */
- if( MULTI_ENTRY(name, n) )
- card = ft_headappi(hd, name, n, value, comm);
- else
- card = ft_headseti(hd, name, n, value, comm, append);
- /* so far, so good */
- if( card ) got = 1;
-
- /* update file if necessary */
- if( ocard && card ) got = _FunParamUpdateFile(fun, ocard, card);
-
-done:
- doprim = 0;
- doraw = 0;
- return got;
-}
-
-/*
- *
- * FunParamPutl -- set a integer64 parameter value
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamPutl(Fun fun, char *name, int n, longlong value, char *comm, int append)
-#else
-int FunParamPutl(fun, name, n, value, comm, append)
- Fun fun;
- char *name;
- int n;
- longlong value;
- char *comm;
- int append;
-#endif
-{
- FITSCard card=NULL, ocard=NULL, tcard=NULL;
- FITSHead hd;
- int got;
- int ip;
- char tbuf[SZ_LINE], tbuf2[SZ_LINE];
-
- got = -1;
- if( !name ) name = BLANK_NAME;
- if( doprim || fun->doprim ){
- if( fun->primary )
- hd = fun->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- /* see if we have to update file (if we already have written this param) */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- /* look for the exact card */
- ocard=ft_headfind(hd, name, n, 0);
- /* look for a blank placeholder card whose value is the card name */
- if( !ocard && (append == 2) ){
- if( n != 0 )
- snprintf(tbuf2, SZ_LINE-1, "%s%d", name, n);
- else
- strncpy(tbuf2, name, SZ_LINE-1);
- for(tcard=hd->cards; tcard!=&(hd->cards[hd->ncard]); tcard++){
- if( !strncmp((*tcard).c, BLANK_NAME, 8) ){
- ip = 0;
- if( word((*tcard).c, tbuf, &ip) && !strcasecmp(tbuf, tbuf2) ){
- ocard = tcard;
- break;
- }
- }
- }
- }
- }
-
- /* set parameter value */
- if( MULTI_ENTRY(name, n) )
- card = ft_headappil(hd, name, n, value, comm);
- else
- card = ft_headsetil(hd, name, n, value, comm, append);
- /* so far, so good */
- if( card ) got = 1;
-
- /* update file if necessary */
- if( ocard && card ) got = _FunParamUpdateFile(fun, ocard, card);
-
-done:
- doprim = 0;
- doraw = 0;
- return got;
-}
-
-/*
- *
- * FunParamPutd -- set a double parameter value
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamPutd(Fun fun, char *name, int n, double value, int prec,
- char *comm, int append)
-#else
-int FunParamPutd(fun, name, n, value, prec, comm, append)
- Fun fun;
- char *name;
- int n;
- double value;
- int prec;
- char *comm;
- int append;
-#endif
-{
- FITSCard card=NULL, ocard=NULL, tcard=NULL;
- FITSHead hd;
- int got;
- int ip;
- char tbuf[SZ_LINE], tbuf2[SZ_LINE];
-
- got = -1;
- if( !name ) name = BLANK_NAME;
- if( doprim || fun->doprim ){
- if( fun->primary )
- hd = fun->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- /* see if we have to update file (if we already have written this param) */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- /* look for the exact card */
- ocard=ft_headfind(hd, name, n, 0);
- /* look for a blank placeholder card whose value is the card name */
- if( !ocard && (append == 2) ){
- if( n != 0 )
- snprintf(tbuf2, SZ_LINE-1, "%s%d", name, n);
- else
- strncpy(tbuf2, name, SZ_LINE-1);
- for(tcard=hd->cards; tcard!=&(hd->cards[hd->ncard]); tcard++){
- if( !strncmp((*tcard).c, BLANK_NAME, 8) ){
- ip = 0;
- if( word((*tcard).c, tbuf, &ip) && !strcasecmp(tbuf, tbuf2) ){
- ocard = tcard;
- break;
- }
- }
- }
- }
- }
-
- /* set parameter value */
- if( MULTI_ENTRY(name, n) )
- card = ft_headappr(hd, name, n, value, prec, comm);
- else
- card = ft_headsetr(hd, name, n, value, prec, comm, append);
- /* so far, so good */
- if( card ) got = 1;
-
- /* update file if necessary */
- if( ocard && card ) got = _FunParamUpdateFile(fun, ocard, card);
-
-done:
- doprim = 0;
- doraw = 0;
- return got;
-}
-
-/*
- *
- * FunParamPuts -- set a string parameter value
- *
- */
-#ifdef ANSI_FUNC
-int
-FunParamPuts(Fun fun, char *name, int n, char *value, char *comm,
- int append)
-#else
-int FunParamPuts(fun, name, n, value, comm, append)
- Fun fun;
- char *name;
- int n;
- char *value;
- char *comm;
- int append;
-#endif
-{
- FITSCard card=NULL, ocard=NULL, tcard=NULL;
- FITSHead hd;
- int got;
- int ip;
- char tbuf[SZ_LINE], tbuf2[SZ_LINE];
-
- got = -1;
- if( !name ) name = BLANK_NAME;
- if( doprim || fun->doprim ){
- if( fun->primary )
- hd = fun->primary;
- else
- goto done;
- }
- else{
- if( fun->header )
- hd = fun->header;
- else if( fun->theader )
- hd = fun->theader;
- else
- goto done;
- }
-
- /* see if we have to update file (if we already have written this param) */
- if( (fun->ops & OP_WRHEAD) && (fun->headpos >=0) ){
- /* look for the exact card */
- ocard=ft_headfind(hd, name, n, 0);
- /* look for a blank placeholder card whose value is the card name */
- if( !ocard && (append == 2) ){
- if( n != 0 )
- snprintf(tbuf2, SZ_LINE-1, "%s%d", name, n);
- else
- strncpy(tbuf2, name, SZ_LINE-1);
- for(tcard=hd->cards; tcard!=&(hd->cards[hd->ncard]); tcard++){
- if( !strncmp((*tcard).c, BLANK_NAME, 8) ){
- ip = 0;
- if( word((*tcard).c, tbuf, &ip) && !strcasecmp(tbuf, tbuf2) ){
- ocard = tcard;
- break;
- }
- }
- }
- }
- }
-
- /* set parameter value */
- if( MULTI_ENTRY(name, n) )
- card = ft_headapps(hd, name, n, value, comm);
- else
- card = ft_headsets(hd, name, n, value, comm, append);
- /* so far, so good */
- if( card ) got = 1;
-
- /* update file if necessary */
- if( ocard && card ) got = _FunParamUpdateFile(fun, ocard, card);
-
-done:
- doprim = 0;
- doraw = 0;
- return got;
-}