home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / BMULKEY.ZIP / ENV.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-05-10  |  2.0 KB  |  79 lines

  1. { ENV }
  2.  
  3. { Copyright 1988 by Mark R. Boler - All Rights Reserved }
  4.  
  5. {-----------------------------------------------------------------------------}
  6.  
  7. {$B-}    { Boolean complete evaluation off }
  8. {$D+}    { Debug information on            }
  9. {$I-}    { I/O checking off                }
  10. {$L+}    { Linker uses memory for a buffer }
  11. {$N-}    { No numeric coprocessor          }
  12. {$R-}    { Range checking off              }
  13. {$S-}    { Stack checking off              }
  14. {$T-}    { .TPM file generation off        }
  15. {$V-}    { No VAR-String checks            }
  16.  
  17. UNIT Env;
  18.  
  19. INTERFACE
  20.  
  21. USES Strings;
  22.  
  23. FUNCTION GetEnv(Search: STRING): STRING;
  24.  
  25. PROCEDURE EnvFirst(VAR St: STRING; VAR EnvData; VAR Status: WORD);
  26.  
  27. PROCEDURE EnvNext(VAR St: STRING; VAR EnvData; VAR Status: WORD);
  28.  
  29. FUNCTION EnvExec: STRING;
  30.  
  31. IMPLEMENTATION
  32.  
  33. PROCEDURE EnvFirst; EXTERNAL;
  34.  
  35. PROCEDURE EnvNext; EXTERNAL;
  36.  
  37. {$L ENV.OBJ}
  38.  
  39. FUNCTION EnvExec: STRING; EXTERNAL;
  40.  
  41. {$L ENVEXEC.OBJ}
  42.  
  43. FUNCTION GetEnv(Search: STRING): STRING;
  44.  
  45. VAR
  46.       Found : BOOLEAN;
  47.       Status: WORD;
  48.       EnvStr: STRING;
  49.       EnvPtr: POINTER;
  50.  
  51. BEGIN {GetEnv}
  52.       Search:= UpCaseStr(StripBlanks(Search));
  53.       IF (LENGTH(Search) > 0) THEN
  54.       BEGIN
  55.           IF (CharPos('=', Search) = 0) THEN
  56.           BEGIN
  57.               INC(Search[0]);
  58.               Search[LENGTH(Search)]:= '=';
  59.           END; {if}
  60.           EnvFirst(EnvStr, EnvPtr, Status);
  61.           Found:= (LeftStr(EnvStr, LENGTH(Search)) = Search);
  62.           WHILE (NOT Found) AND (Status = 0) DO
  63.           BEGIN
  64.               EnvNext(EnvStr, EnvPtr, Status);
  65.               Found:= (LeftStr(EnvStr, LENGTH(Search)) = Search);
  66.           END; {while}
  67.           IF Found AND (Status = 0) THEN
  68.              GetEnv:= RightStr(EnvStr, SUCC(LENGTH(Search)))
  69.                 ELSE GetEnv:= '';
  70.       END
  71.       ELSE GetEnv:= '';
  72. END; {GetEnv}
  73.  
  74.       {$IFDEF SHOWINIT}
  75. BEGIN {Init Env}
  76.       WRITELN('Initializing unit ENV');
  77.       {$ENDIF}
  78. END.  {Init Env}
  79.