Warning cleanup from Gennady Feldman
-Erik
This commit is contained in:
parent
ef936da7c5
commit
a75466e981
19
cmdedit.c
19
cmdedit.c
@ -283,12 +283,12 @@ char** exe_n_cwd_tab_completion(char* command, int *num_matches)
|
||||
return (matches);
|
||||
}
|
||||
|
||||
void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len, int lastWasTab)
|
||||
{
|
||||
/* Do TAB completion */
|
||||
static int num_matches=0;
|
||||
static char **matches = (char **) NULL;
|
||||
int pos = cursor;
|
||||
int pos = *cursor;
|
||||
|
||||
|
||||
if (lastWasTab == FALSE) {
|
||||
@ -303,7 +303,7 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
/* Make a local copy of the string -- up
|
||||
* to the position of the cursor */
|
||||
matchBuf = (char *) xcalloc(BUFSIZ, sizeof(char));
|
||||
strncpy(matchBuf, command, cursor);
|
||||
strncpy(matchBuf, command, *cursor);
|
||||
tmp=matchBuf;
|
||||
|
||||
/* skip past any command seperator tokens */
|
||||
@ -343,10 +343,10 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
if (matches && num_matches==1) {
|
||||
/* write out the matched command */
|
||||
strncpy(command+pos, matches[0]+pos, strlen(matches[0])-pos);
|
||||
len=strlen(command);
|
||||
cursor=len;
|
||||
*len=strlen(command);
|
||||
*cursor=*len;
|
||||
xwrite(outputFd, matches[0]+pos, strlen(matches[0])-pos);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
/* Ok -- the last char was a TAB. Since they
|
||||
@ -372,9 +372,9 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
/* Rewrite the prompt */
|
||||
xwrite(outputFd, prompt, strlen(prompt));
|
||||
/* Rewrite the command */
|
||||
xwrite(outputFd, command, len);
|
||||
xwrite(outputFd, command, *len);
|
||||
/* Put the cursor back to where it used to be */
|
||||
for (cursor=len; cursor > pos; cursor--)
|
||||
for (cursor=len; *cursor > pos; cursor--)
|
||||
xwrite(outputFd, "\b", 1);
|
||||
}
|
||||
}
|
||||
@ -505,7 +505,8 @@ extern void cmdedit_read_input(char* prompt, char command[BUFSIZ])
|
||||
break;
|
||||
case '\t':
|
||||
#ifdef BB_FEATURE_SH_TAB_COMPLETION
|
||||
input_tab(command, prompt, outputFd, &cursor, &len);
|
||||
input_tab(command, prompt, outputFd, &cursor,
|
||||
&len, lastWasTab);
|
||||
#endif
|
||||
break;
|
||||
case 14:
|
||||
|
@ -283,12 +283,12 @@ char** exe_n_cwd_tab_completion(char* command, int *num_matches)
|
||||
return (matches);
|
||||
}
|
||||
|
||||
void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len, int lastWasTab)
|
||||
{
|
||||
/* Do TAB completion */
|
||||
static int num_matches=0;
|
||||
static char **matches = (char **) NULL;
|
||||
int pos = cursor;
|
||||
int pos = *cursor;
|
||||
|
||||
|
||||
if (lastWasTab == FALSE) {
|
||||
@ -303,7 +303,7 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
/* Make a local copy of the string -- up
|
||||
* to the position of the cursor */
|
||||
matchBuf = (char *) xcalloc(BUFSIZ, sizeof(char));
|
||||
strncpy(matchBuf, command, cursor);
|
||||
strncpy(matchBuf, command, *cursor);
|
||||
tmp=matchBuf;
|
||||
|
||||
/* skip past any command seperator tokens */
|
||||
@ -343,10 +343,10 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
if (matches && num_matches==1) {
|
||||
/* write out the matched command */
|
||||
strncpy(command+pos, matches[0]+pos, strlen(matches[0])-pos);
|
||||
len=strlen(command);
|
||||
cursor=len;
|
||||
*len=strlen(command);
|
||||
*cursor=*len;
|
||||
xwrite(outputFd, matches[0]+pos, strlen(matches[0])-pos);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
/* Ok -- the last char was a TAB. Since they
|
||||
@ -372,9 +372,9 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
|
||||
/* Rewrite the prompt */
|
||||
xwrite(outputFd, prompt, strlen(prompt));
|
||||
/* Rewrite the command */
|
||||
xwrite(outputFd, command, len);
|
||||
xwrite(outputFd, command, *len);
|
||||
/* Put the cursor back to where it used to be */
|
||||
for (cursor=len; cursor > pos; cursor--)
|
||||
for (cursor=len; *cursor > pos; cursor--)
|
||||
xwrite(outputFd, "\b", 1);
|
||||
}
|
||||
}
|
||||
@ -505,7 +505,8 @@ extern void cmdedit_read_input(char* prompt, char command[BUFSIZ])
|
||||
break;
|
||||
case '\t':
|
||||
#ifdef BB_FEATURE_SH_TAB_COMPLETION
|
||||
input_tab(command, prompt, outputFd, &cursor, &len);
|
||||
input_tab(command, prompt, outputFd, &cursor,
|
||||
&len, lastWasTab);
|
||||
#endif
|
||||
break;
|
||||
case 14:
|
||||
|
Loading…
Reference in New Issue
Block a user