home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * ENVIROMENT.C
- *
- * str = GetDEnv(name)
- * bool= SetDEnv(name, str) (0=failure, 1=success)
- *
- * If the enviroment variable 'name' exists, malloc and return a copy
- * of it. The user program must free() it (or allow the standard C
- * exit routine to free() it).
- */
-
- extern void *AllocMem();
- extern void *malloc();
-
- char *
- GetDEnv(name)
- char *name;
- {
- short nlen = strlen(name) + 5;
- char *ptr = AllocMem(nlen, MEMF_PUBLIC);
- char *res = NULL;
- long fh;
- long len;
-
- if (ptr) {
- strcpy(ptr, "ENV:");
- strcat(ptr, name);
- if (fh = Open(ptr, 1005)) {
- len = (Seek(fh, 0L, 1), Seek(fh, 0L, 0));
- if (len >= 0 && (res = malloc(len+1))) {
- Seek(fh, 0L, -1);
- if (Read(fh, res, len) != len)
- len = 0;
- res[len] = 0;
- }
- Close(fh);
- }
- FreeMem(ptr, nlen);
- }
- return(res);
- }
-
- SetDEnv(name, str)
- char *name, *str;
- {
- short nlen = strlen(name) + 5;
- short slen = strlen(str);
- short res = 0;
- char *ptr = AllocMem(nlen, MEMF_PUBLIC);
- long fh;
-
- if (ptr) {
- strcpy(ptr, "ENV:");
- strcat(ptr, name);
- if (fh = Open(ptr, 1006)) {
- if (Write(fh, str, slen) == slen)
- res = 1;
- Close(fh);
- }
- FreeMem(ptr, nlen);
- }
- return(res);
- }
-
-