enter.c | 27 ++++++++++++++++++++++++++- 1 files changed, 26 insertions(+), 1 deletions(-)
# HG changeset patch # User David Champion <d...@bikeshed.us> # Date 1472606303 25200 # Tue Aug 30 18:18:23 2016 -0700 # Node ID b18e00baf96e46fea51555eaede1a6ff7b9fcd06 # Parent ea53e34cfe2833ce95af60a28d83a6f86c3403c6 Permit tab completion of pattern expressions with ~y (labels). diff --git a/enter.c b/enter.c --- a/enter.c +++ b/enter.c @@ -568,7 +568,6 @@ } else if (flags & MUTT_LABEL && ch == OP_EDITOR_COMPLETE) { - /* invoke the alias-menu to get more addresses */ for (i = state->curpos; i && state->wbuf[i-1] != ',' && state->wbuf[i-1] != ':'; i--) ; @@ -584,6 +583,32 @@ } break; } + else if (flags & MUTT_PATTERN && ch == OP_EDITOR_COMPLETE) + { + char *p; + for (i = state->curpos; i && state->wbuf[i-1] != ',' && + state->wbuf[i-1] != ':'; i--) + ; + for (; i < state->lastchar && state->wbuf[i] == ' '; i++) + ; + my_wcstombs (buf, buflen, state->wbuf + i, state->curpos - i); + p = &buf[i]; + while (p > buf && *(p-1) != '~') + p--; + if (*p == '~' && *(p+1) == 'y') + { + r = mutt_label_complete (buf, buflen, i, state->tabs); + replace_part (state, i, buf); + if (!r) + { + rv = 1; + goto bye; + } + } + else + goto self_insert; + break; + } else if (flags & MUTT_ALIAS && ch == OP_EDITOR_COMPLETE_QUERY) { /* invoke the query-menu to get more addresses */