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 */

Reply via email to