home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / f2csrc.zip / f2csrc / libF77 / getenv_.c < prev    next >
C/C++ Source or Header  |  1994-07-28  |  1KB  |  52 lines

  1. #include "f2c.h"
  2.  
  3. /*
  4.  * getenv - f77 subroutine to return environment variables
  5.  *
  6.  * called by:
  7.  *    call getenv (ENV_NAME, char_var)
  8.  * where:
  9.  *    ENV_NAME is the name of an environment variable
  10.  *    char_var is a character variable which will receive
  11.  *        the current value of ENV_NAME, or all blanks
  12.  *        if ENV_NAME is not defined
  13.  */
  14.  
  15. #ifdef KR_headers
  16. VOID getenv_(fname, value, flen, vlen) char *value, *fname; ftnlen vlen, flen;
  17. #else
  18. void getenv_(char *fname, char *value, ftnlen flen, ftnlen vlen)
  19. #endif
  20. {
  21. extern char **environ;
  22. register char *ep, *fp, *flast;
  23. register char **env = environ;
  24.  
  25. flast = fname + flen;
  26. for(fp = fname ; fp < flast ; ++fp)
  27.     if(*fp == ' ')
  28.         {
  29.         flast = fp;
  30.         break;
  31.         }
  32.  
  33. while (ep = *env++)
  34.     {
  35.     for(fp = fname; fp<flast ; )
  36.         if(*fp++ != *ep++)
  37.             goto endloop;
  38.  
  39.     if(*ep++ == '=') {    /* copy right hand side */
  40.         while( *ep && --vlen>=0 )
  41.             *value++ = *ep++;
  42.  
  43.         goto blank;
  44.         }
  45. endloop: ;
  46.     }
  47.  
  48. blank:
  49.     while( --vlen >= 0 )
  50.         *value++ = ' ';
  51. }
  52.