diff options
author | vimboss <devnull@localhost> | 2007-07-17 16:15:36 +0000 |
---|---|---|
committer | vimboss <devnull@localhost> | 2007-07-17 16:15:36 +0000 |
commit | 37e099ec65d43d4fa23f0997e062542063e49e29 (patch) | |
tree | caf292d05c70f65e7a866ceb81c46d8558cd09fb | |
parent | 23451989492e9421ee90be2a3fa3de928c79e550 (diff) | |
download | vim-37e099ec65d43d4fa23f0997e062542063e49e29.tar.gz |
-rw-r--r-- | src/ex_getln.c | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index b1afab55..e59eb1b2 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -484,7 +484,8 @@ 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 (c == K_DOWN && ccline.cmdpos > 0 + && ccline.cmdbuff[ccline.cmdpos - 1] == '.') c = p_wc; else if (c == K_UP) { @@ -533,9 +534,11 @@ getcmdline(firstc, count, indent) upseg[3] = PATHSEP; upseg[4] = NUL; - if (ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP - && c == K_DOWN - && (ccline.cmdbuff[ccline.cmdpos - 2] != '.' + if (c == K_DOWN + && ccline.cmdpos > 0 + && ccline.cmdbuff[ccline.cmdpos - 1] == PATHSEP + && (ccline.cmdpos < 3 + || ccline.cmdbuff[ccline.cmdpos - 2] != '.' || ccline.cmdbuff[ccline.cmdpos - 3] != '.')) { /* go down a directory */ @@ -730,8 +733,8 @@ getcmdline(firstc, count, indent) /* In Ex mode a backslash escapes a newline. */ if (exmode_active && c != ESC - && ccline.cmdpos > 0 && ccline.cmdpos == ccline.cmdlen + && ccline.cmdpos > 0 && ccline.cmdbuff[ccline.cmdpos - 1] == '\\') { if (c == K_KENTER) diff --git a/src/version.c b/src/version.c index 0985a502..082ce127 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 32, +/**/ 31, /**/ 30, |