Changeset 431
- Timestamp:
- 05/22/07 21:28:31 (1 year ago)
- Files:
-
- ondir/trunk/conf.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ondir/trunk/conf.c
r333 r431 156 156 } 157 157 158 /* Expand allenvironment variables */158 /* Expand internal ONDIR environment variables */ 159 159 char *expand_envars(const char *in) { 160 160 int inlen = strlen(in), outmax = inlen * 2, outlen = 0; … … 181 181 strncpy(var, varstart, varlen); 182 182 var[varlen] = 0; 183 val = getenv(var); 184 if (val) { 185 int vallen = strlen(val); 186 187 if (outlen + vallen >= outmax) { 188 outmax = outmax * 2 + vallen; 189 out = realloc(out, outmax); 183 184 if (strcmp(var, "ONDIRWD") && (var[0] < '0' || var[0] > '9')) { 185 in = mark; 186 } else { 187 val = getenv(var); 188 if (val) { 189 int vallen = strlen(val); 190 191 if (outlen + vallen >= outmax) { 192 outmax = outmax * 2 + vallen; 193 out = realloc(out, outmax); 194 } 195 strcat(out, val); 196 outlen += vallen; 197 in = mark + varlen + bracketed * 2 + 1; 198 continue; 199 } else { 200 in = mark; 201 out[outlen] = 0; 190 202 } 191 strcat(out, val);192 outlen += vallen;193 in = mark + varlen + bracketed * 2 + 1;194 continue;195 } else {196 in = mark;197 out[outlen] = 0;198 203 } 199 204 }
