X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=enter.c;h=cd98df94558ac5c1c1990ca180bad0fe12cd83b7;hp=793804b18b73fe9236ab019e7b14cc7ad603ddae;hb=18ea5e8b861632627335b8d94787c742dbf5f567;hpb=74a2265af51ce89bca845adc1d68f273c9933c13 diff --git a/enter.c b/enter.c index 793804b..cd98df9 100644 --- a/enter.c +++ b/enter.c @@ -17,6 +17,7 @@ #include "mutt_curses.h" #include "keymap.h" #include "history.h" +#include "buffy.h" #include "lib/mem.h" @@ -267,7 +268,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) { @@ -439,7 +440,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x, if (flags & M_EFILE) { first = 1; /* clear input if user types a real key later */ my_wcstombs (buf, buflen, state->wbuf, state->curpos); - mutt_buffy (buf, buflen); + buffy_next (buf, buflen); state->curpos = state->lastchar = my_mbstowcs (&state->wbuf, &state->wbuflen, 0, buf); break; @@ -449,6 +450,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) { for (i = state->curpos; i && state->wbuf[i - 1] != ' '; i--); @@ -473,7 +475,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] != ',' && state->wbuf[i - 1] != ':'; i--); @@ -486,8 +488,18 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x, goto bye; } break; - } - else if (flags & M_COMMAND) { + } 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); i = mutt_strlen (buf); if (i && buf[i - 1] == '=' && @@ -535,24 +547,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;