/* * CBIND.C -- C binding for the IMFORT interface, for BSD UNIX and derived * systems. As far as possible, the C function calls resemble those of the * Fortran oriented IMFORT interface, e.g., the function status is returned * as an argument rather than as the function value. */ #define SZ_OPNAME 80 #define SZ_KEYWORD 20 clargc (argno, outstr, ier) int argno, *ier; char *outstr; { clargc_ (&argno, outstr, ier, SZ_OPNAME); sstrip (outstr,SZ_OPNAME); } clargi (argno, ival, ier) int argno, *ival, *ier; { clargi_ (&argno, ival, ier); } clargr (argno, rval, ier) int argno, *ier; float *rval; { clargr_ (&argno, rval, ier); } clargd (argno, dval, ier) int argno, *ier; double *dval; { clargd_ (&argno, dval, ier); } clnarg (nargs) int *nargs; { clnarg_ (nargs); } clrawc (outstr, ier) char *outstr; int *ier; { clrawc_ (outstr, ier, SZ_OPNAME); sstrip (outstr, SZ_OPNAME); } imacck (im, key, ier) int im, *ier; char *key; { imacck_ (&im, key, ier, strlen(key)); } imaddk (im, keyw, dtype, comm, ier) int im, dtype; char *keyw, *comm; int *ier; { imaddk_ (&im, keyw, &dtype, comm, ier, strlen(keyw), strlen(comm)); } imakwb (im, keyw, bval, comm, ier) int im, bval, *ier; char *keyw, *comm; { imakwb_ (&im, keyw, &bval, comm, ier, strlen(keyw), strlen(comm)); } imakwc (im, keyw, sval, comm, ier) int im, *ier; char *keyw, *sval, *comm; { imakwc_ (&im, keyw, sval, comm, ier, strlen(keyw), strlen(sval), strlen(comm)); } imakwi (im, keyw, ival, comm, ier) int im, ival, *ier; char *keyw, *comm; { imakwi_ (&im, keyw, &ival, comm, ier, strlen(keyw), strlen(comm)); } imakwd (im, keyw, dval, comm, ier) int im, *ier; char *keyw, *comm; double dval; { imakwd_ (&im, keyw, &dval, comm, ier, strlen(keyw), strlen(comm)); } imakwr (im, keyw, rval, comm, ier) int im, *ier; char *keyw, *comm; float rval; { float f = rval; imakwr_ (&im, keyw, &f, comm, ier, strlen(keyw), strlen(comm)); } imclos (im, ier) int im, *ier; { imclos_ (&im, ier); } imcrea (f77nam, axlen, naxis, pixtype, ier) char *f77nam; int *axlen, naxis, pixtype, *ier; { imcrea_ (f77nam, axlen, &naxis, &pixtype, ier, strlen (f77nam)); } imcrex (image, axlen, naxis, pixtype, ier) char *image; int *axlen, naxis, pixtype, *ier; { imcrex_ (image, axlen, &naxis, &pixtype, ier, strlen(image)); } imdele (image, ier) char *image; int *ier; { imdele_ (image, ier, strlen(image)); } imdelk (im, keyw, ier) int im, *ier; char *keyw; { imdelk_ (&im, keyw, ier, strlen(keyw)); } imemsg (ier, errmsg) int ier; char *errmsg; { imemsg_ (&ier, errmsg, SZ_OPNAME); sstrip (errmsg, SZ_OPNAME); } imflsh (im, ier) int im, *ier; { imflsh_ (&im, ier); } imgdir (dir) char *dir; { imgdir_ (dir, strlen(dir)); sstrip (dir, SZ_OPNAME); } imgkwb (im, keyw, bval, ier) int im, *bval, *ier; char *keyw; { imgkwb_ (&im, keyw, bval, ier, strlen(keyw)); } imgkwc (im, keyw, sval, ier) int im, *ier; char *keyw, *sval; { imgkwc_ (&im, keyw, sval, ier, strlen(keyw), SZ_OPNAME); sstrip (sval, SZ_OPNAME); } imgkwd (im, keyw, dval, ier) int im, *ier; char *keyw; double *dval; { imgkwd_ (&im, keyw, dval, ier, strlen(keyw)); } imgkwi (im, keyw, ival, ier) int im, *ival, *ier; char *keyw; { imgkwi_ (&im, keyw, ival, ier, strlen(keyw)); } imgkwr (im, keyw, rval, ier) int im, *ier; char *keyw; float *rval; { imgkwr_ (&im, keyw, rval, ier, strlen (keyw)); } imgl1r (im, buf, ier) int im, *ier; float *buf; { imgl1r_ (&im, buf, ier); } imgl1s (im, buf, ier) int im, *ier; short *buf; { imgl1s_ (&im, buf, ier); } imgl2r (im, buf, lineno, ier) int im, lineno, *ier; float *buf; { imgl2r_ (&im, buf, &lineno, ier); } imgl2s (im, buf, lineno, ier) int im, lineno, *ier; short *buf; { imgl2s_ (&im, buf, &lineno, ier); } imgl3r (im, buf, lineno, bandno, ier) int im, lineno, bandno, *ier; float *buf; { imgl3r_ (&im, buf, &lineno, &bandno, ier); } imgl3s (im, buf, lineno, bandno, ier) int im, lineno, bandno, *ier; short *buf; { imgl3s_ (&im, buf, &lineno, &bandno, ier); } imgs1r (im, buf, i1, i2, ier) int im, i1, i2, *ier; float *buf; { imgs1r_ (&im, buf, &i1, &i2, ier); } imgs1s (im, buf, i1, i2, ier) int im, i1, i2, *ier; short *buf; { imgs1s_ (&im, buf, &i1, &i2, ier); } imgs2r (im, buf, i1, i2, j1, j2, ier) int im, i1, i2, j1, j2, *ier; float *buf; { imgs2r_ (&im, buf, &i1, &i2, &j1, &j2, ier); } imgs2s (im, buf, i1, i2, j1, j2, ier) int im, i1, i2, j1, j2, *ier; short *buf; { imgs2s_ (&im, buf, &i1, &i2, &j1, &j2, ier); } imgs3r (im, buf, i1, i2, j1, j2, k1, k2, ier) int im, i1, i2, j1, j2, k1, k2, *ier; float *buf; { imgs3r_ (&im, buf, &i1, &i2, &j1, &j2, &k1, &k2, ier); } imgs3s (im, buf, i1, i2, j1, j2, k1, k2, ier) int im, i1, i2, j1, j2, k1, k2, *ier; short *buf; { imgs3s_ (&im, buf, &i1, &i2, &j1, &j2, &k1, &k2, ier); } imgsiz (im, axlen, naxis, pixtype, ier) int im, *axlen, *naxis, *pixtype, *ier; { imgsiz_ (&im, axlen, naxis, pixtype, ier); } imhcpy (o_im, n_im, ier) int o_im, n_im, *ier; { imhcpy_ (&o_im, &n_im, ier); } imokwl (im, patstr, sortit, kwl, ier) int im, *kwl, *ier; char *patstr; int sortit; { imokwl_ (&im, patstr, &sortit, kwl, ier, strlen(patstr)); } imgnkw (kwl, outstr, ier) int kwl, *ier; char *outstr; { imgnkw_ (&kwl, outstr, ier, SZ_KEYWORD); sstrip (outstr,SZ_KEYWORD); } imckwl (kwl, ier) int kwl, *ier; { imckwl_ (&kwl, ier); } imopen (f77nam, acmode, im, ier) char *f77nam; int acmode, *im, *ier; { imopen_ (f77nam, &acmode, im, ier, strlen (f77nam)); } imopnc (nimage, o_im, n_im, ier) char *nimage; int o_im, *n_im, *ier; { imopnc_ (nimage, &o_im, n_im, ier, strlen(nimage)); } imopnx (image, acmode, im, ier) char *image; int acmode, *im, *ier; { imopnx_ (image, &acmode, im, ier, strlen(image)); } impixf (im, pixfd, pixfil, pixoff, szline, ier) int im, *pixfd, *pixoff, *szline, *ier; char *pixfil; {impixf_ (&im, &pixfd, pixfil, &pixoff, &szline, ier, SZ_OPNAME); sstrip (pixfil, SZ_OPNAME);} impkwb (im, keyw, bval, ier) int im, bval, *ier; char *keyw; { impkwb_ (&im, keyw, &bval, ier, strlen(keyw)); } impkwc (im, keyw, sval, ier) int im, *ier; char *keyw, *sval; { impkwc_ (&im, keyw, sval, ier, strlen(keyw)); } impkwd (im, keyw, dval, ier) int im, *ier; char *keyw; double dval; { impkwd_ (&im, keyw, &dval, ier, strlen(keyw)); } impkwi (im, keyw, ival, ier) int im, ival, ier; char *keyw; { impkwi_ (&im, keyw, &ival, ier, strlen(keyw)); } impkwr (im, keyw, rval, ier) int im, *ier; char *keyw; float rval; { float f = rval; impkwr_ (&im, keyw, &f, ier, strlen(keyw)); } impl1r (im, buf, ier) int im, *ier; float *buf; { impl1r_ (&im, buf, ier); } impl1s (im, buf, ier) int im, *ier; short *buf; { impl1s_ (&im, buf, ier); } impl2r (im, buf, lineno, ier) int im, lineno, *ier; float *buf; { impl2r_ (&im, buf, &lineno, ier); } impl2s (im, buf, lineno, ier) int im, lineno, *ier; short *buf; { impl2s_ (&im, buf, &lineno, ier); } impl3r (im, buf, lineno, bandno, ier) int im, lineno, bandno, *ier; float *buf; { impl3r_ (&im, buf, &lineno, &bandno, ier); } impl3s (im, buf, lineno, bandno, ier) int im, lineno, bandno, *ier; short *buf; { impl3s_ (&im, buf, &lineno, &bandno, ier); } imps1r (im, buf, i1, i2, ier) int im, i1, i2, *ier; float *buf; { imps1r_ (&im, buf, &i1, &i2, ier); } imps1s (im, buf, i1, i2, ier) int im, i1, i2, *ier; short *buf; { imps1s_ (&im, buf, &i1, &i2, ier); } imps2r (im, buf, i1, i2, j1, j2, ier) int im, i1, i2, j1, j2, *ier; float *buf; { imps2r_ (&im, buf, &i1, &i2, &j1, &j2, ier); } imps2s (im, buf, i1, i2, j1, j2, ier) int im, i1, i2, j1, j2, *ier; short *buf; { imps2s_ (&im, buf, &i1, &i2, &j1, &j2, ier); } imps3r (im, buf, i1, i2, j1, j2, k1, k2, ier) int im, i1, i2, j1, j2, k1, k2, *ier; float *buf; { imps3r_ (&im, buf, &i1, &i2, &j1, &j2, &k1, &k2, ier); } imps3s (im, buf, i1, i2, j1, j2, k1, k2, ier) int im, i1, i2, j1, j2, k1, k2, *ier; short *buf; { imps3s_ (&im, buf, &i1, &i2, &j1, &j2, &k1, &k2, ier); } imrnam (oimage, nimage, ier) char *oimage, *nimage; int *ier; { imrnam_ (oimage, nimage, ier, strlen(oimage), strlen(nimage)); } imsdir (dir) char *dir; { imsdir_ (dir, strlen (dir)); } imtypk (im, keyw, dtype, comm, ier) int im, *dtype, *ier; char *keyw, *comm; { imtypk_ (&im, keyw, dtype, comm, ier, strlen(keyw), SZ_OPNAME); sstrip (comm, SZ_OPNAME);} /* Support utility to trim trailing blanks from string and add * a null terminator. */ sstrip (outstr, length) char outstr[SZ_OPNAME]; int length; { int i; for (i=length-1; (outstr[i] == '\0' || outstr[i] == ' ') && i >= 0; i--); if (i == length - 1) outstr[i] = '\0'; else outstr[i+1] = '\0'; }