Subversion Repositories SvarDOS

Rev

Rev 1732 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1732 Rev 1985
Line 36... Line 36...
36
 * by either a = sign or a NULL terminator */
36
 * by either a = sign or a NULL terminator */
37
char far *env_lookup(unsigned short env_seg, const char *varname) {
37
char far *env_lookup(unsigned short env_seg, const char *varname) {
38
  char far *env = MK_FP(env_seg, 0);
38
  char far *env = MK_FP(env_seg, 0);
39
  int i;
39
  int i;
40
  for (;;) {
40
  for (;;) {
-
 
41
    /* end of environment block? */
-
 
42
    if (*env == 0) return(NULL);
41
    /* is this it? */
43
    /* is this it? */
42
    for (i = 0;; i++) {
44
    for (i = 0;; i++) {
43
      if ((varname[i] == '=') || (varname[i] == 0)) {
45
      if ((varname[i] == '=') || (varname[i] == 0)) {
44
        if (env[i] == '=') return(env); /* FOUND! */
46
        if (env[i] == '=') return(env); /* FOUND! */
45
        break; /* else look for next string */
47
        break; /* else look for next string */
46
      }
48
      }
47
      if (varname[i] != env[i]) break;
49
      if (varname[i] != env[i]) break;
48
    }
50
    }
49
    /* move env to end of current string */
51
    /* move env to end of current string */
50
    while (*env != 0) env++;
52
    while (*env != 0) env++;
51
    /* if there's another trailing zero, then that is the end of environment */
53
    /* move to next variable */
52
    env++;
54
    env++;
53
    if (*env == 0) return(NULL);
-
 
54
  }
55
  }
55
}
56
}
56
 
57
 
57
 
58
 
58
/* almost identical to env_lookup(), but instead of returning a pointer
59
/* almost identical to env_lookup(), but instead of returning a pointer