Changeset 6424 for trunk/Ohana/src/opihi
- Timestamp:
- Feb 13, 2006, 9:27:46 AM (20 years ago)
- Location:
- trunk/Ohana/src/opihi
- Files:
-
- 1 deleted
- 3 edited
-
dvo/.dvo (deleted)
-
lib.shell/expand_vars.c (modified) (1 diff)
-
lib.shell/string.c (modified) (3 diffs)
-
lib.shell/variable.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/lib.shell/expand_vars.c
r3922 r6424 71 71 *N = *Val; /* place the value of the variable in the newline */ 72 72 } 73 N--; /* we overshoot on last loop */ 73 74 74 for (N--,L++; ISVAR(*L); L++); 75 L--; 75 /* skip past the variable in the source line */ 76 /* L currently points at $ */ 77 L++; 78 if (*L == '?') L++; /* skip past ? in $?name */ 79 80 while (ISVAR(*L)) L++; 81 L--; /* we overshoot */ 76 82 77 83 if (V0 != NULL) free (V0); -
trunk/Ohana/src/opihi/lib.shell/string.c
r2598 r6424 94 94 char *thisvar (char *string) { 95 95 96 int i ;96 int i, start; 97 97 char *word; 98 98 … … 100 100 if (string[0] != '$') return ((char *) NULL); 101 101 102 for (i = 1; ISVAR(string[i]); i++); 103 if (i == 1) return ((char *) NULL); 104 102 /* special case $?name : check that name is valid */ 103 start = 1; 104 if (string[1] == '?') start = 2; 105 106 for (i = start; ISVAR(string[i]); i++); 107 if (i == start) return ((char *) NULL); 108 109 /* the ? is part of the variable */ 105 110 word = strncreate (&string[1], i - 1); 106 111 return (word); … … 207 212 char *aftervar (char *string) { 208 213 209 int i, j ;214 int i, j, start; 210 215 211 216 if (string == (char *) NULL) return ((char *) NULL); 212 217 if (string[0] != '$') return ((char *) NULL); 213 218 214 for (i = 1; ISVAR(string[i]); i++); 215 if (i == 1) return ((char *) NULL); 219 /* special case: $?name : test only name */ 220 start = 1; 221 if (string[1] == '?') start = 2; 222 223 for (i = start; ISVAR(string[i]); i++); 224 if (i == start) return ((char *) NULL); 216 225 217 226 for (j = i; whitespace (string[j]); j++); -
trunk/Ohana/src/opihi/lib.shell/variable.c
r6327 r6424 103 103 104 104 int i; 105 char *local, *MacroName ;105 char *local, *MacroName, *value; 106 106 107 107 if (name == NULL) return (NULL); … … 111 111 /* return a string which should not be freed */ 112 112 if (*name == '?') { 113 value = get_variable_ptr ( name[1]);113 value = get_variable_ptr (&name[1]); 114 114 if (value == NULL) { 115 115 return variable_false; … … 152 152 /* return a string which can be freed */ 153 153 if (*name == '?') { 154 value = get_variable_ptr ( name[1]);154 value = get_variable_ptr (&name[1]); 155 155 if (value == NULL) { 156 156 value = strcreate (variable_false);
Note:
See TracChangeset
for help on using the changeset viewer.
