Patch from vodz, based on bug report from Richard Kojedzinszky:

Richard,

>I have a problem, which I can reproduce now. I am using pre7 version of
>busybox, and the tab completion works fine. I mean, with an empty command
>line I press the TAB twice, and ash shows me the available commands. But
>when i process the profile file below, as
> $ . /etc/profile
>then it stops working, and the double-tab lists the directories available
>from the cwd, and not the commands. Has someone else meet this problem
>before, or am i doing something wrong?
>
>This is  my '/etc/profile':
>- ---
># System profile
>
>PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
>export PATH
>trap ":" INT QUIT TERM
>
>export PS1="\h \w # "

Thanks. Patch attached.


--w
vodz
This commit is contained in:
Eric Andersen 2004-02-06 10:33:19 +00:00
parent ef8cd3be17
commit fa06a77040

View File

@ -4126,9 +4126,6 @@ changepath(const char *newval)
firstchange = 0; firstchange = 0;
clearcmdentry(firstchange); clearcmdentry(firstchange);
builtinloc = idx_bltin; builtinloc = idx_bltin;
#ifdef CONFIG_FEATURE_COMMAND_TAB_COMPLETION
cmdedit_path_lookup = newval;
#endif
} }
@ -6026,6 +6023,7 @@ retry:
if (!iflag || parsefile->fd) if (!iflag || parsefile->fd)
nr = safe_read(parsefile->fd, buf, BUFSIZ - 1); nr = safe_read(parsefile->fd, buf, BUFSIZ - 1);
else { else {
cmdedit_path_lookup = pathval();
nr = cmdedit_read_input((char *) cmdedit_prompt, buf); nr = cmdedit_read_input((char *) cmdedit_prompt, buf);
if(nr == 0) { if(nr == 0) {
/* Ctrl+C presend */ /* Ctrl+C presend */