| Ilya Zakharevich on Sat, 3 Mar 2001 01:21:54 -0500 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| [PATCH] Data dir at runtime |
This patch allows specification of the data dir at runtime, via an
environment variable. A must for binary distributions...
Enjoy,
Ilya
--- ./src/modules/galois.c-pre Fri Jan 5 14:08:58 2001
+++ ./src/modules/galois.c Sat Mar 3 01:16:22 2001
@@ -32,8 +32,7 @@ static long isin_G_H(GEN po, GEN *r, lon
static long N,CAR,PREC,PRMAX,TSCHMAX,coeff[9][10];
static char SID[] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
-static char* str_coset = GPDATADIR"/COS";
-static char* str_resolv = GPDATADIR"/RES";
+static char* str_base = GPDATADIR;
static long par_N, *par_vec;
@@ -412,9 +411,15 @@ static char *
name(char *pre, long n, long n1, long n2, long no)
{
static char chn[128];
+ static char *base;
char ch[6];
- sprintf(chn, "%s%ld_%ld_%ld", pre,n,n1,n2);
+ if (!base) {
+ base = getenv("GP_DATA_DIR");
+ if (!base)
+ base = str_base;
+ }
+ sprintf(chn, "%s/%s%ld_%ld_%ld", base, pre, n, n1, n2);
if (no) { sprintf(ch,"_%ld",no); strcat(chn, ch); }
return chn;
}
@@ -475,7 +480,7 @@ lirecoset(long n1, long n2, long n)
if (n<11 || n1<8)
{
- fd = galopen(name(str_coset, n, n1, n2, 0));
+ fd = galopen(name("COS", n, n1, n2, 0));
os_read(fd,&c,1); m=bin(c); os_read(fd,&c,1);
os_read(fd,ch,6); cardgr=atol(ch); gr=allocgroup(m,cardgr);
read_obj(gr, fd,cardgr,m); return gr;
@@ -484,7 +489,7 @@ lirecoset(long n1, long n2, long n)
gr = grptr = allocgroup(n, 8 * cardgr);
for (no=1; no<=8; no++)
{
- fd = galopen(name(str_coset, n, n1, n2, no)); os_read(fd,ch,8);
+ fd = galopen(name("COS", n, n1, n2, no)); os_read(fd,ch,8);
read_obj(grptr, fd,cardgr,m); grptr += cardgr;
}
return gr;
@@ -497,7 +502,7 @@ lireresolv(long n1, long n2, long n, lon
char ch[5];
long fd;
- fd = galopen(name(str_resolv, n, n1, n2, 0));
+ fd = galopen(name("RES", n, n1, n2, 0));
os_read(fd,ch,5); *nm=atol(ch);
os_read(fd,ch,3); *nv=atol(ch);
b = allocresolv(*nm,*nv);