Mercurial > vim
diff src/ex_getln.c @ 180:7e70fc748752
updated for version 7.0056
author | vimboss |
---|---|
date | Sun, 06 Mar 2005 23:38:09 +0000 |
parents | 4d9eabb1396e |
children | 49748afd794b |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -320,9 +320,11 @@ getcmdline(firstc, count, indent) switch (c) { case K_RIGHT: c = K_LEFT; break; + case K_XRIGHT: c = K_XLEFT; break; case K_S_RIGHT: c = K_S_LEFT; break; case K_C_RIGHT: c = K_C_LEFT; break; case K_LEFT: c = K_RIGHT; break; + case K_XLEFT: c = K_XRIGHT; break; case K_S_LEFT: c = K_S_RIGHT; break; case K_C_LEFT: c = K_C_RIGHT; break; } @@ -354,10 +356,11 @@ getcmdline(firstc, count, indent) /* free old command line when finished moving around in the history * list */ if (lookfor != NULL - && c != K_S_DOWN && c != K_S_UP && c != K_DOWN && c != K_UP + && c != K_S_DOWN && c != K_S_UP + && c != K_DOWN && c != K_UP && c != K_XDOWN && c != K_XUP && c != K_PAGEDOWN && c != K_PAGEUP && c != K_KPAGEDOWN && c != K_KPAGEUP - && c != K_LEFT && c != K_RIGHT + && c != K_LEFT && c != K_RIGHT && c != K_XLEFT && c != K_XRIGHT && (xpc.xp_numfiles > 0 || (c != Ctrl_P && c != Ctrl_N))) { vim_free(lookfor); @@ -375,9 +378,9 @@ getcmdline(firstc, count, indent) /* Special translations for 'wildmenu' */ if (did_wild_list && p_wmnu) { - if (c == K_LEFT) + if (c == K_LEFT || c == K_XLEFT) c = Ctrl_P; - else if (c == K_RIGHT) + else if (c == K_RIGHT || c == K_XRIGHT) c = Ctrl_N; } /* Hitting CR after "emenu Name.": complete submenu */ @@ -398,7 +401,8 @@ getcmdline(firstc, count, indent) (void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE); did_wild_list = FALSE; #ifdef FEAT_WILDMENU - if (!p_wmnu || (c != K_UP && c != K_DOWN)) + if (!p_wmnu || (c != K_UP && c != K_DOWN + && c != K_XUP && c != K_XDOWN)) #endif xpc.xp_context = EXPAND_NOTHING; wim_index = 0; @@ -443,9 +447,10 @@ getcmdline(firstc, count, indent) if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu) { /* Hitting <Down> after "emenu Name.": complete submenu */ - if (ccline.cmdbuff[ccline.cmdpos - 1] == '.' && c == K_DOWN) + if (ccline.cmdbuff[ccline.cmdpos - 1] == '.' + && (c == K_DOWN || c == K_XDOWN)) c = p_wc; - else if (c == K_UP) + else if (c == K_UP || c == K_XUP) { /* Hitting <Up>: Remove one submenu name in front of the * cursor */ @@ -492,14 +497,15 @@ getcmdline(firstc, count, indent) upseg[4] = NUL; if (ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP - && c == K_DOWN + && (c == K_DOWN || c == K_XDOWN) && (ccline.cmdbuff[ccline.cmdpos - 2] != '.' || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) { /* go down a directory */ c = p_wc; } - else if (STRNCMP(xpc.xp_pattern, upseg + 1, 3) == 0 && c == K_DOWN) + else if (STRNCMP(xpc.xp_pattern, upseg + 1, 3) == 0 + && (c == K_DOWN || c == K_XDOWN)) { /* If in a direct ancestor, strip off one ../ to go down */ int found = FALSE; @@ -527,7 +533,7 @@ getcmdline(firstc, count, indent) c = p_wc; } } - else if (c == K_UP) + else if (c == K_UP || c == K_XUP) { /* go up a directory */ int found = FALSE; @@ -1096,6 +1102,7 @@ getcmdline(firstc, count, indent) continue; /* don't do incremental search now */ case K_RIGHT: + case K_XRIGHT: case K_S_RIGHT: case K_C_RIGHT: do @@ -1114,7 +1121,8 @@ getcmdline(firstc, count, indent) #endif ++ccline.cmdpos; } - while ((c == K_S_RIGHT || c == K_C_RIGHT) + while ((c == K_S_RIGHT || c == K_C_RIGHT + || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL))) && ccline.cmdbuff[ccline.cmdpos] != ' '); #ifdef FEAT_MBYTE if (has_mbyte) @@ -1123,6 +1131,7 @@ getcmdline(firstc, count, indent) goto cmdline_not_changed; case K_LEFT: + case K_XLEFT: case K_S_LEFT: case K_C_LEFT: do @@ -1137,7 +1146,8 @@ getcmdline(firstc, count, indent) #endif ccline.cmdspos -= cmdline_charsize(ccline.cmdpos); } - while ((c == K_S_LEFT || c == K_C_LEFT) + while ((c == K_S_LEFT || c == K_C_LEFT + || (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL))) && ccline.cmdbuff[ccline.cmdpos - 1] != ' '); #ifdef FEAT_MBYTE if (has_mbyte) @@ -1320,7 +1330,9 @@ getcmdline(firstc, count, indent) #ifdef FEAT_CMDHIST case K_UP: + case K_XUP: case K_DOWN: + case K_XDOWN: case K_S_UP: case K_S_DOWN: case K_PAGEUP: @@ -1344,8 +1356,8 @@ getcmdline(firstc, count, indent) for (;;) { /* one step backwards */ - if (c == K_UP || c == K_S_UP || c == Ctrl_P || - c == K_PAGEUP || c == K_KPAGEUP) + if (c == K_UP || c == K_XUP || c == K_S_UP || c == Ctrl_P + || c == K_PAGEUP || c == K_KPAGEUP) { if (hiscnt == hislen) /* first time */ hiscnt = hisidx[histype]; @@ -1381,7 +1393,8 @@ getcmdline(firstc, count, indent) hiscnt = i; break; } - if ((c != K_UP && c != K_DOWN) || hiscnt == i + if ((c != K_UP && c != K_DOWN && c != K_XUP && c != K_XDOWN) + || hiscnt == i || STRNCMP(history[histype][hiscnt].hisstr, lookfor, (size_t)j) == 0) break;