From: Kevin McCarthy Date: Tue, 31 Jan 2017 22:27:36 +0000 (-0800) Subject: Simplify mutt_label_complete(). X-Git-Tag: mutt-1-8-rel~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b7182d2a7573935e9314f6978931fd4e66215446;p=mutt 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. --- diff --git a/enter.c b/enter.c index db2e4977..108311ef 100644 --- a/enter.c +++ b/enter.c @@ -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) { diff --git a/init.c b/init.c index 35f36ea7..935013bb 100644 --- a/init.c +++ b/init.c @@ -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)); diff --git a/protos.h b/protos.h index b26724c4..c43b49cd 100644 --- a/protos.h +++ b/protos.h @@ -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);