]> granicus.if.org Git - neomutt/commitdiff
Introduce fall-back from complete-query to complete for the edit
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Tue, 26 Jul 2005 16:37:28 +0000 (16:37 +0000)
committerTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Tue, 26 Jul 2005 16:37:28 +0000 (16:37 +0000)
menu, so 'bind editor <tab> complete-query' becomes possible.

enter.c

diff --git a/enter.c b/enter.c
index eb87e7969d27b97414f1ece9c9ea976a75f99f5f..846ffae4bb20ddcb89bbb30c95dabb4510ab7dab 100644 (file)
--- a/enter.c
+++ b/enter.c
@@ -269,7 +269,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
     if (ch != OP_NULL)
     {
       first = 0;
-      if (ch != OP_EDITOR_COMPLETE)
+      if (ch != OP_EDITOR_COMPLETE && ch != OP_EDITOR_COMPLETE_QUERY)
        state->tabs = 0;
       redraw = M_REDRAW_LINE;
       switch (ch)
@@ -458,6 +458,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
          /* fall through to completion routine (M_FILE) */
 
        case OP_EDITOR_COMPLETE:
+       case OP_EDITOR_COMPLETE_QUERY:
          state->tabs++;
          if (flags & M_CMD)
          {
@@ -484,7 +485,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
 
            replace_part (state, i, buf);
          }
-         else if (flags & M_ALIAS)
+         else if (flags & M_ALIAS && ch == OP_EDITOR_COMPLETE)
          {
            /* invoke the alias-menu to get more addresses */
            for (i = state->curpos; i && state->wbuf[i-1] != ',' && 
@@ -502,6 +503,24 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
            }
            break;
          }
+         else if (flags & M_ALIAS && ch == OP_EDITOR_COMPLETE_QUERY)
+         {
+           /* invoke the query-menu to get more addresses */
+           if ((i = state->curpos))
+           {
+             for (; i && state->wbuf[i - 1] != ','; i--)
+               ;
+             for (; i < state->curpos && state->wbuf[i] == ' '; i++)
+               ;
+           }
+
+           my_wcstombs (buf, buflen, state->wbuf + i, state->curpos - i);
+           mutt_query_complete (buf, buflen);
+           replace_part (state, i, buf);
+
+           rv = 1; 
+           goto bye;
+         }
          else if (flags & M_COMMAND)
          {
            my_wcstombs (buf, buflen, state->wbuf, state->curpos);
@@ -553,28 +572,6 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
            goto self_insert;
          break;
 
-       case OP_EDITOR_COMPLETE_QUERY:
-         if (flags & M_ALIAS)
-         {
-           /* invoke the query-menu to get more addresses */
-           if ((i = state->curpos))
-           {
-             for (; i && state->wbuf[i - 1] != ','; i--)
-               ;
-             for (; i < state->curpos && state->wbuf[i] == ' '; i++)
-               ;
-           }
-
-           my_wcstombs (buf, buflen, state->wbuf + i, state->curpos - i);
-           mutt_query_complete (buf, buflen);
-           replace_part (state, i, buf);
-
-           rv = 1; 
-           goto bye;
-         }
-         else
-           goto self_insert;
-
        case OP_EDITOR_QUOTE_CHAR:
          {
            event_t event;