version 1.52, 2018/06/22 11:04:55 |
version 1.52.2.3, 2020/04/21 19:37:34 |
Line 1064 typecmd(int argc, char **argv) |
|
Line 1064 typecmd(int argc, char **argv) |
|
} |
} |
} |
} |
|
|
if (p_flag && (v_flag || V_flag)) |
if (argv[0][0] != 'c' && v_flag | V_flag | p_flag) |
error("cannot specify -p with -v or -V"); |
error("usage: %s name...", argv[0]); |
|
|
|
if (v_flag && V_flag) |
|
error("-v and -V cannot both be specified"); |
|
|
|
if (*argptr == NULL) |
|
error("usage: %s%s name ...", argv[0], |
|
argv[0][0] == 'c' ? " [-p] [-v|-V]" : ""); |
|
|
while ((arg = *argptr++)) { |
while ((arg = *argptr++)) { |
if (!v_flag) |
if (!v_flag) |
Line 1077 typecmd(int argc, char **argv) |
|
Line 1084 typecmd(int argc, char **argv) |
|
|
|
if (*pp) { |
if (*pp) { |
if (v_flag) |
if (v_flag) |
err = 1; |
out1fmt("%s\n", arg); |
else |
else |
out1str(" is a shell keyword\n"); |
out1str(" is a shell keyword\n"); |
continue; |
continue; |
Line 1085 typecmd(int argc, char **argv) |
|
Line 1092 typecmd(int argc, char **argv) |
|
|
|
/* Then look at the aliases */ |
/* Then look at the aliases */ |
if ((ap = lookupalias(arg, 1)) != NULL) { |
if ((ap = lookupalias(arg, 1)) != NULL) { |
if (!v_flag) |
int ml = 0; |
out1fmt(" is an alias for \n"); |
|
|
if (!v_flag) { |
|
out1str(" is an alias "); |
|
if (strchr(ap->val, '\n')) { |
|
out1str("(multiline)...\n"); |
|
ml = 1; |
|
} else |
|
out1str("for: "); |
|
} |
out1fmt("%s\n", ap->val); |
out1fmt("%s\n", ap->val); |
|
if (ml && *argptr != NULL) |
|
out1c('\n'); |
continue; |
continue; |
} |
} |
|
|
/* Then check if it is a tracked alias */ |
/* Then check if it is a tracked alias */ |
if ((cmdp = cmdlookup(arg, 0)) != NULL) { |
if (!p_flag && (cmdp = cmdlookup(arg, 0)) != NULL) { |
entry.cmdtype = cmdp->cmdtype; |
entry.cmdtype = cmdp->cmdtype; |
entry.u = cmdp->param; |
entry.u = cmdp->param; |
} else { |
} else { |
|
cmdp = NULL; |
/* Finally use brute force */ |
/* Finally use brute force */ |
find_command(arg, &entry, DO_ABS, pathval()); |
find_command(arg, &entry, DO_ABS, |
|
p_flag ? syspath() + 5 : pathval()); |
} |
} |
|
|
switch (entry.cmdtype) { |
switch (entry.cmdtype) { |
case CMDNORMAL: { |
case CMDNORMAL: { |
if (strchr(arg, '/') == NULL) { |
if (strchr(arg, '/') == NULL) { |
const char *path = pathval(); |
const char *path; |
char *name; |
char *name; |
int j = entry.u.index; |
int j = entry.u.index; |
|
|
|
path = p_flag ? syspath() + 5 : pathval(); |
|
|
do { |
do { |
name = padvance(&path, arg, 1); |
name = padvance(&path, arg, 1); |
stunalloc(name); |
stunalloc(name); |