/* Copyright (c) 1997 by Fernando Trias */ #include "EXTERN.h" #include "perl.h" #include "hli.h" #include "perldef.h" #ifdef FRB #include "hliutils.h" #endif #ifdef HLILIB_INC #include "chlilib.c" #endif #ifdef ADJDIV #include "adjdiv.c" #endif #ifdef EXPIRE #include #include #endif void unsupported() { croak("Unsupported HLI function call"); } int demo_expired_date() { #ifdef EXPIRE return EXPIRE; #else return 0; #endif } int demo_expired() { #ifdef EXPIRE struct tm *tm; time_t clock; int now; clock = time(NULL); tm = localtime(&clock); now = (tm->tm_year+1900)*10000 + tm->tm_mon * 100 + tm->tm_mday; /* printf("expire check now=%d dead=%d\n", now, EXPIRE); */ if (now > EXPIRE) { return 1; } return 0; #else return 0; #endif } #ifdef HAS_PROTOTYPE void d_cfmini(int *status) #else void d_cfmini(status) int *status; #endif { if (demo_expired()) { *status = 601; croak("FamePERL demo has expired"); } else { cfmini(status); } } void u_cfmlsts(int *a, int b, char *c, int *d, int *e) { croak("&cfmlsts() not implemented"); } void u_cfmrdfa(int *a, int b, char *c, int d, int *e, int *f, int *g, float *h, int i, float *j) { croak("&cfmrdfa() not implemented"); } void u_cfmrrng(int *a, int b, char * v, int *d, float *e, int f, float *g) { croak("&cfmrrng() not implemented"); } void u_cfmrsts() { croak("&cfmrsts() not implemented"); } void u_cfmwrng(int *a, int b, char *c, int *d, float *e, int f, float *g) { croak("&cfmwrng() not implemented"); } #ifdef HAS_PROTOTYPE void cfmrstra( int *status, int dbkey, char *objnam, int *r1, int *r2, int *r3, char *strval, int *ismiss, int *length) #else void cfmrstra(status, dbkey, objnam, r1, r2, r3, strval, ismiss, length) int *status; int dbkey; char *objnam; int *r1; int *r2; int *r3; char *strval; int *ismiss; int *length; #endif { int range[3]; range[0] = *r1; range[1] = *r2; range[2] = *r3; cfmrstr(status, dbkey, objnam, range, strval, ismiss, length); *r1 = range[0]; *r2 = range[1]; *r3 = range[2]; } #ifdef HAS_PROTOTYPE void cfmsbma( int *p1, int p2, int p3, int p4, int *b1, int *b2, int *b3) #else void cfmsbma(p1, p2, p3, p4, b1, b2, b3) int *p1; int p2; int p3; int p4; int *b1; int *b2; int *b3; #endif { int b[3]; b[0] = *b1; b[1] = *b2; b[2] = *b3; cfmsbm(p1, p2, p3, p4, b); *b1 = b[0]; *b2 = b[1]; *b3 = b[2]; } #ifdef HAS_PROTOTYPE void cfmsdma( int *p1, int p2, int p3, int p4, int *b1, int *b2, int *b3) #else void cfmsdma(p1, p2, p3, p4, b1, b2, b3) int *p1; int p2; int p3; int p4; int *b1; int *b2; int *b3; #endif { int b[3]; b[0] = *b1; b[1] = *b2; b[2] = *b3; cfmsdm(p1, p2, p3, p4, b); *b1 = b[0]; *b2 = b[1]; *b3 = b[2]; } #ifdef HAS_PROTOTYPE void cfmsfisa( int *p1, int p2, int *p3, int *p4, int *p5, int *p6, int *r1, int *r2, int *r3, int *p7, int p8, int p9) #else void cfmsfisa(p1, p2, p3, p4, p5, p6, r1, r2, r3, p7, p8, p9) int *p1; int p2; int *p3; int *p4; int *p5; int *p6; int *r1; int *r2; int *r3; int *p7; int p8; int p9; #endif { int r[3]; r[0] = *r1; r[1] = *r2; r[2] = *r3; cfmsfis(p1, p2, p3, p4, p5, p6, r, p7, p8, p9); *r1 = r[0]; *r2 = r[1]; *r3 = r[2]; } #ifdef HAS_PROTOTYPE void cfmsnma(int *p1, float p2, float p3, float p4, float *b1, float *b2, float *b3) #else void cfmsnma(p1, p2, p3, p4, b1, b2, b3) int *p1; float p2; float p3; float p4; float *b1; float *b2; float *b3; #endif { float b[3]; b[0] = *b1; b[1] = *b2; b[2] = *b3; cfmsnm(p1, p2, p3, p4, b); *b1 = b[0]; *b2 = b[1]; *b3 = b[2]; } #ifdef HAS_PROTOTYPE void cfmspma(int *p1, double p2, double p3, double p4, double *b1, double *b2, double *b3) #else void cfmspma(p1, p2, p3, p4, b1, b2, b3) int *p1; double p2; double p3; double p4; double *b1; double *b2; double *b3; #endif { double b[3]; b[0] = *b1; b[1] = *b2; b[2] = *b3; cfmspm(p1, p2, p3, p4, b); *b1 = b[0]; *b2 = b[1]; *b3 = b[2]; } #ifdef HAS_PROTOTYPE void cfmsrnga( int *p1, int p2, int *p3, int *p4, int *p5, int *p6, int *r1, int *r2, int *r3, int *p7) #else void cfmsrnga(p1, p2, p3, p4, p5, p6, r1, r2, r3, p7) int *p1; int p2; int *p3; int *p4; int *p5; int *p6; int *r1; int *r2; int *r3; int *p7; #endif { int r[3]; r[0] = *r1; r[1] = *r2; r[2] = *r3; cfmsrng(p1, p2, p3, p4, p5, p6, r, p7); *r1 = r[0]; *r2 = r[1]; *r3 = r[2]; } #ifdef HAS_PROTOTYPE void cfmwrnga( int *p1, int p2, char *p3, int *r1, int *r2, int *r3, float *p4, int p5, float *p6) #else void cfmwrnga(p1, p2, p3, r1, r2, r3, p4, p5, p6) int *p1; int p2; char *p3; int *r1; int *r2; int *r3; float *p4; int p5; float *p6; #endif { int r[3]; r[0] = *r1; r[1] = *r2; r[2] = *r3; cfmwrng(p1, p2, p3, r, p4, p5, p6); *r1 = r[0]; *r2 = r[1]; *r3 = r[2]; } #ifdef HAS_PROTOTYPE void cfmwstra( int *p1, int p2, char *p3, int *r1, int *r2, int *r3, char *p4, int p5, int p6) #else void cfmwstra(p1, p2, p3, r1, r2, r3, p4, p5, p6) int *p1; int p2; char *p3; int *r1; int *r2; int *r3; char *p4; int p5; int p6; #endif { int r[3]; r[0] = *r1; r[1] = *r2; r[2] = *r3; cfmwstr(p1, p2, p3, r, p4, p5, p6); *r1 = r[0]; *r2 = r[1]; *r3 = r[2]; } #ifdef HAS_PROTOTYPE int famegettype(int dbkey, char *objnam) #else int famegettype(dbkey, objnam) int dbkey; char *objnam; #endif { int typ; int status; int c, f, b, o, fy, fp, ly, lp, cy, cm, cd, xmy, mm, md; char desc[100], doc[100]; cfmwhat(&status, dbkey, objnam, &c, &typ, &f, &b, &o, &fy, &fp, &ly, &lp, &cy, &cm, &cd, &xmy, &mm, &md, desc, doc); return typ; } #ifdef HAS_PROTOTYPE int famegetfreq(int dbkey, char *objnam) #else int famegetfreq(dbkey, objnam) int dbkey; char *objnam; #endif { int freq; int status; int c, t, b, o, fy, fp, ly, lp, cy, cm, cd, xmy, mm, md; char desc[100], doc[100]; cfmwhat(&status, dbkey, objnam, &c, &t, &freq, &b, &o, &fy, &fp, &ly, &lp, &cy, &cm, &cd, &xmy, &mm, &md, desc, doc); return freq; } #ifdef HAS_PROTOTYPE int famegetclass(int dbkey, char *objnam) #else int famegetclass(dbkey, objnam) int dbkey; char *objnam; #endif { int freq; int status; int c, t, b, o, fy, fp, ly, lp, cy, cm, cd, xmy, mm, md; char desc[100], doc[100]; cfmwhat(&status, dbkey, objnam, &c, &t, &freq, &b, &o, &fy, &fp, &ly, &lp, &cy, &cm, &cd, &xmy, &mm, &md, desc, doc); return c; }