Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / fasta34 / getenv.c
diff --git a/website/archive/binaries/mac/src/fasta34/getenv.c b/website/archive/binaries/mac/src/fasta34/getenv.c
new file mode 100644 (file)
index 0000000..bc3cd9b
--- /dev/null
@@ -0,0 +1,56 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define MAXENV 1024
+char *envstr;
+
+char *mgetenv(str)
+char *str;
+{
+       static int EnvInit=0;
+
+       char *eptr, *esptr, *bp;
+       int i,esize;
+       FILE *fenv;
+       
+       if (EnvInit==0) {
+               EnvInit=1;
+               if ((fenv=fopen("environment","r"))!=NULL) {
+                       if ((envstr=malloc((size_t)(esize=MAXENV)))==NULL) {
+                               fclose(fenv); goto noenv;}
+                       esptr=envstr; esize -= 10;
+                       while (fgets(esptr,esize,fenv)!=NULL) {
+                               if ((bp=strchr(esptr,'\n'))!=NULL) *bp='\0';
+                               esize -= (i=strlen(esptr)+1);
+                               esptr += i;
+                               }
+                       fclose(fenv);
+                       esptr='\0';
+                       }
+               else envstr=NULL;
+       }
+       
+       if (envstr==NULL) return NULL;
+       else {          
+               for (eptr=envstr; *eptr; eptr += strlen(eptr)+1) {
+                       if (strncmp(str,eptr,(long)strlen(str))==0) {
+                               return strchr(eptr,'=')+1;
+                               }
+                       }
+               return NULL;
+               }
+noenv: envstr=NULL; return NULL;
+       }
+
+strnpcpy(to,from,max)
+       char *to; Str255 from; size_t max;
+{
+       size_t i, n;
+       
+       n = (*from<max) ? *from : max;
+       from++;
+
+       for (i=0; i<n; i++) *to++ = *from++;
+       if (n<max) *to='\0';
+       }