version 1.14, 2010/07/19 19:46:44 |
version 1.15, 2013/11/22 15:47:35 |
|
|
find_op1(const char *p) |
find_op1(const char *p) |
{ |
{ |
for(;; p++) { |
for(;; p++) { |
if (isspace(*p) || *p == '$' || *p == '\0') |
if (ISSPACE(*p) || *p == '$' || *p == '\0') |
break; |
break; |
if (p[strspn(p, "?:!+")] == '=') |
if (p[strspn(p, "?:!+")] == '=') |
break; |
break; |
|
|
find_op2(const char *p) |
find_op2(const char *p) |
{ |
{ |
for(;; p++) { |
for(;; p++) { |
if (isspace(*p) || *p == '$' || *p == '\0') |
if (ISSPACE(*p) || *p == '$' || *p == '\0') |
break; |
break; |
if (p[strspn(p, "?:!+")] == '=') |
if (p[strspn(p, "?:!+")] == '=') |
break; |
break; |
|
|
arg = VarName_Get(line, &name, NULL, true, |
arg = VarName_Get(line, &name, NULL, true, |
FEATURES(FEATURE_SUNSHCMD) ? find_op1 : find_op2); |
FEATURES(FEATURE_SUNSHCMD) ? find_op1 : find_op2); |
|
|
while (isspace(*arg)) |
while (ISSPACE(*arg)) |
arg++; |
arg++; |
|
|
type = VAR_NORMAL; |
type = VAR_NORMAL; |
|
|
} |
} |
|
|
arg++; |
arg++; |
while (isspace(*arg)) |
while (ISSPACE(*arg)) |
arg++; |
arg++; |
/* If the variable already has a value, we don't do anything. */ |
/* If the variable already has a value, we don't do anything. */ |
if ((type & VAR_OPT) && Var_Definedi(name.s, name.e)) { |
if ((type & VAR_OPT) && Var_Definedi(name.s, name.e)) { |