Metropoli BBS
VIEWER: getenv.asm MODE: TEXT (ASCII)
include qlib.inc
include string.inc

.code
;returns:
;  successful: eax - environment string after the = sign
;  on error : eax=NULL
getenv proc uses ecx esi edi,nam:dword
  local siz:word
  callp strlen,nam
  mov siz,ax
  mov edi,_environ
@@top:
  cmp byte ptr [edi],0
  jz @@bad
  mov cx,siz
  mov esi,nam
@@:
  cmp byte ptr [edi],'='
  jz @f
  cmpsb
  jnz @f
  dec cx
  jnz @b
  jmp @@gotit
@@: ;not the one
  dec edi
@@:
  inc edi
  cmp byte ptr [edi],0
  jnz @b
  inc edi
  jmp @@top
@@gotit:
  inc edi ;skip the =
  mov eax,edi  ;FIXED Ver1.1 !!!
  ret
@@bad:
  mov eax,NULL  ;FIXED v2.00 Beta #2
  ret
getenv endp

end

[ RETURN TO DIRECTORY ]