From f9d1fa894338514aa11d3b8dc1e7273ecf1d9d74 Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Tue, 31 Jan 2017 14:27:36 -0800 Subject: [PATCH] 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. --- enter.c | 4 ++-- init.c | 8 ++------ protos.h | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/enter.c b/enter.c index db2e4977e..108311ef0 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 35f36ea72..935013bb9 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 b26724c4c..c43b49cd2 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); -- 2.40.0