version 1.40, 2005/11/18 20:56:52 |
version 1.41, 2005/12/13 05:40:33 |
|
|
{ |
{ |
KEYMAP *pref_map = NULL; |
KEYMAP *pref_map = NULL; |
PF funct; |
PF funct; |
char prompt[80], *bufp, *pep; |
char bprompt[80], *bufp, *pep; |
int c, s, n; |
int c, s, n; |
|
|
#ifndef NO_MACRO |
#ifndef NO_MACRO |
|
|
} else { |
} else { |
#endif /* !NO_STARTUP */ |
#endif /* !NO_STARTUP */ |
#endif /* !NO_MACRO */ |
#endif /* !NO_MACRO */ |
n = strlcpy(prompt, p, sizeof(prompt)); |
n = strlcpy(bprompt, p, sizeof(bprompt)); |
if (n >= sizeof(prompt)) |
if (n >= sizeof(bprompt)) |
n = sizeof(prompt) - 1; |
n = sizeof(bprompt) - 1; |
pep = prompt + n; |
pep = bprompt + n; |
for (;;) { |
for (;;) { |
ewprintf("%s", prompt); |
ewprintf("%s", bprompt); |
pep[-1] = ' '; |
pep[-1] = ' '; |
pep = keyname(pep, sizeof(prompt) - (pep - prompt), |
pep = keyname(pep, sizeof(bprompt) - |
c = getkey(FALSE)); |
(pep - bprompt), c = getkey(FALSE)); |
if (doscan(curmap, c, &curmap) != NULL) |
if (doscan(curmap, c, &curmap) != NULL) |
break; |
break; |
*pep++ = '-'; |
*pep++ = '-'; |
|
|
if (unbind) |
if (unbind) |
funct = rescan; |
funct = rescan; |
else { |
else { |
if ((bufp = eread("%s to command: ", prompt, sizeof(prompt), |
if ((bufp = eread("%s to command: ", bprompt, sizeof(bprompt), |
EFFUNC | EFNEW, prompt)) == NULL) |
EFFUNC | EFNEW, bprompt)) == NULL) |
return (ABORT); |
return (ABORT); |
else if (bufp[0] == '\0') |
else if (bufp[0] == '\0') |
return (FALSE); |
return (FALSE); |
if (((funct = name_function(prompt)) == NULL) ? |
if (((funct = name_function(bprompt)) == NULL) ? |
(pref_map = name_map(prompt)) == NULL : funct == NULL) { |
(pref_map = name_map(bprompt)) == NULL : funct == NULL) { |
ewprintf("[No match]"); |
ewprintf("[No match]"); |
return (FALSE); |
return (FALSE); |
} |
} |