Commit b7182d2a authored by Kevin J. McCarthy's avatar Kevin J. McCarthy

Simplify mutt_label_complete().

It was derived from mutt_command_complete(), which had more complex
requirements.  For labels, we just need to skip whitespace and
complete based on the passed in buffer.

Therefore, we don't need the pos parameter, or to work backwards from
the end of the buffer.
parent 956f7c05
......@@ -574,7 +574,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int col,
for (; i < state->lastchar && state->wbuf[i] == ' '; i++)
;
my_wcstombs (buf, buflen, state->wbuf + i, state->curpos - i);
r = mutt_label_complete (buf, buflen, strlen (buf), state->tabs);
r = mutt_label_complete (buf, buflen, state->tabs);
replace_part (state, i, buf);
if (!r)
{
......@@ -591,7 +591,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int col,
{
i++;
my_wcstombs (buf, buflen, state->wbuf + i, state->curpos - i);
r = mutt_label_complete (buf, buflen, strlen (buf), state->tabs);
r = mutt_label_complete (buf, buflen, state->tabs);
replace_part (state, i, buf);
if (!r)
{
......
......@@ -3630,7 +3630,7 @@ static const char* myvar_get (const char* var)
return NULL;
}
int mutt_label_complete (char *buffer, size_t len, int pos, int numtabs)
int mutt_label_complete (char *buffer, size_t len, int numtabs)
{
char *pt = buffer;
int spaces; /* keep track of the number of leading spaces on the line */
......@@ -3641,10 +3641,6 @@ int mutt_label_complete (char *buffer, size_t len, int pos, int numtabs)
SKIPWS (buffer);
spaces = buffer - pt;
pt = buffer + pos - spaces;
while ((pt > buffer) && !isspace ((unsigned char) *pt))
pt--;
/* first TAB. Collect all the matches */
if (numtabs == 1)
{
......@@ -3652,7 +3648,7 @@ int mutt_label_complete (char *buffer, size_t len, int pos, int numtabs)
struct hash_walk_state state;
Num_matched = 0;
strfcpy (User_typed, pt, sizeof (User_typed));
strfcpy (User_typed, buffer, sizeof (User_typed));
memset (Matches, 0, Matches_listsize);
memset (Completed, 0, sizeof (Completed));
memset (&state, 0, sizeof(state));
......
......@@ -190,7 +190,7 @@ int mutt_label_message (HEADER *);
void mutt_make_label_hash (CONTEXT *);
void mutt_label_hash_add (CONTEXT *ctx, HEADER *hdr);
void mutt_label_hash_remove (CONTEXT *ctx, HEADER *hdr);
int mutt_label_complete (char *, size_t, int, int);
int mutt_label_complete (char *, size_t, int);
void mutt_curses_error (const char *, ...);
void mutt_curses_message (const char *, ...);
void mutt_encode_descriptions (BODY *, short);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment