Mercurial > vim
comparison src/ex_getln.c @ 1318:eb57516376d4 v7.1.032
updated for version 7.1-032
author | vimboss |
---|---|
date | Tue, 17 Jul 2007 16:15:36 +0000 |
parents | a91a2e0c4108 |
children | 4ce0a7e4c6b3 |
comparison
equal
deleted
inserted
replaced
1317:45bae37de037 | 1318:eb57516376d4 |
---|---|
482 #ifdef FEAT_WILDMENU | 482 #ifdef FEAT_WILDMENU |
483 /* Special translations for 'wildmenu' */ | 483 /* Special translations for 'wildmenu' */ |
484 if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu) | 484 if (xpc.xp_context == EXPAND_MENUNAMES && p_wmnu) |
485 { | 485 { |
486 /* Hitting <Down> after "emenu Name.": complete submenu */ | 486 /* Hitting <Down> after "emenu Name.": complete submenu */ |
487 if (ccline.cmdbuff[ccline.cmdpos - 1] == '.' && c == K_DOWN) | 487 if (c == K_DOWN && ccline.cmdpos > 0 |
488 && ccline.cmdbuff[ccline.cmdpos - 1] == '.') | |
488 c = p_wc; | 489 c = p_wc; |
489 else if (c == K_UP) | 490 else if (c == K_UP) |
490 { | 491 { |
491 /* Hitting <Up>: Remove one submenu name in front of the | 492 /* Hitting <Up>: Remove one submenu name in front of the |
492 * cursor */ | 493 * cursor */ |
531 upseg[1] = '.'; | 532 upseg[1] = '.'; |
532 upseg[2] = '.'; | 533 upseg[2] = '.'; |
533 upseg[3] = PATHSEP; | 534 upseg[3] = PATHSEP; |
534 upseg[4] = NUL; | 535 upseg[4] = NUL; |
535 | 536 |
536 if (ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP | 537 if (c == K_DOWN |
537 && c == K_DOWN | 538 && ccline.cmdpos > 0 |
538 && (ccline.cmdbuff[ccline.cmdpos - 2] != '.' | 539 && ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP |
540 && (ccline.cmdpos < 3 | |
541 || ccline.cmdbuff[ccline.cmdpos - 2] != '.' | |
539 || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) | 542 || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) |
540 { | 543 { |
541 /* go down a directory */ | 544 /* go down a directory */ |
542 c = p_wc; | 545 c = p_wc; |
543 } | 546 } |
728 && (!KeyTyped || vim_strchr(p_cpo, CPO_ESC) != NULL))) | 731 && (!KeyTyped || vim_strchr(p_cpo, CPO_ESC) != NULL))) |
729 { | 732 { |
730 /* In Ex mode a backslash escapes a newline. */ | 733 /* In Ex mode a backslash escapes a newline. */ |
731 if (exmode_active | 734 if (exmode_active |
732 && c != ESC | 735 && c != ESC |
736 && ccline.cmdpos == ccline.cmdlen | |
733 && ccline.cmdpos > 0 | 737 && ccline.cmdpos > 0 |
734 && ccline.cmdpos == ccline.cmdlen | |
735 && ccline.cmdbuff[ccline.cmdpos - 1] == '\\') | 738 && ccline.cmdbuff[ccline.cmdpos - 1] == '\\') |
736 { | 739 { |
737 if (c == K_KENTER) | 740 if (c == K_KENTER) |
738 c = '\n'; | 741 c = '\n'; |
739 } | 742 } |