diff options
Diffstat (limited to 'source/ap/vim/patches/7.2.262')
-rw-r--r-- | source/ap/vim/patches/7.2.262 | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/source/ap/vim/patches/7.2.262 b/source/ap/vim/patches/7.2.262 deleted file mode 100644 index dc73c07b..00000000 --- a/source/ap/vim/patches/7.2.262 +++ /dev/null @@ -1,189 +0,0 @@ -To: vim-dev@vim.org -Subject: Patch 7.2.262 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.2.262 -Problem: When using custom completion for a user command the pattern string - goes beyond the cursor position. (Hari Krishna Dara) -Solution: Truncate the string at the cursor position. -Files: src/ex_getln.c, src/structs.h - - -*** ../vim-7.2.261/src/ex_getln.c 2009-06-24 17:04:40.000000000 +0200 ---- src/ex_getln.c 2009-09-18 16:58:16.000000000 +0200 -*************** -*** 3266,3272 **** - int i, j; - char_u *p1; - char_u *p2; -- int oldlen; - int difflen; - int v; - ---- 3266,3271 ---- -*************** -*** 3291,3297 **** - out_flush(); - - i = (int)(xp->xp_pattern - ccline.cmdbuff); -! oldlen = ccline.cmdpos - i; - - if (type == WILD_NEXT || type == WILD_PREV) - { ---- 3290,3296 ---- - out_flush(); - - i = (int)(xp->xp_pattern - ccline.cmdbuff); -! xp->xp_pattern_len = ccline.cmdpos - i; - - if (type == WILD_NEXT || type == WILD_PREV) - { -*************** -*** 3305,3322 **** - /* - * Translate string into pattern and expand it. - */ -! if ((p1 = addstar(&ccline.cmdbuff[i], oldlen, xp->xp_context)) == NULL) - p2 = NULL; - else - { -! p2 = ExpandOne(xp, p1, vim_strnsave(&ccline.cmdbuff[i], oldlen), - WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE - |options, type); - vim_free(p1); - /* longest match: make sure it is not shorter (happens with :help */ - if (p2 != NULL && type == WILD_LONGEST) - { -! for (j = 0; j < oldlen; ++j) - if (ccline.cmdbuff[i + j] == '*' - || ccline.cmdbuff[i + j] == '?') - break; ---- 3304,3323 ---- - /* - * Translate string into pattern and expand it. - */ -! if ((p1 = addstar(xp->xp_pattern, xp->xp_pattern_len, -! xp->xp_context)) == NULL) - p2 = NULL; - else - { -! p2 = ExpandOne(xp, p1, -! vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len), - WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE - |options, type); - vim_free(p1); - /* longest match: make sure it is not shorter (happens with :help */ - if (p2 != NULL && type == WILD_LONGEST) - { -! for (j = 0; j < xp->xp_pattern_len; ++j) - if (ccline.cmdbuff[i + j] == '*' - || ccline.cmdbuff[i + j] == '?') - break; -*************** -*** 3331,3337 **** - - if (p2 != NULL && !got_int) - { -! difflen = (int)STRLEN(p2) - oldlen; - if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4) - { - v = realloc_cmdbuff(ccline.cmdlen + difflen); ---- 3332,3338 ---- - - if (p2 != NULL && !got_int) - { -! difflen = (int)STRLEN(p2) - xp->xp_pattern_len; - if (ccline.cmdlen + difflen > ccline.cmdbufflen - 4) - { - v = realloc_cmdbuff(ccline.cmdlen + difflen); -*************** -*** 3620,3625 **** ---- 3621,3627 ---- - expand_T *xp; - { - xp->xp_pattern = NULL; -+ xp->xp_pattern_len = 0; - xp->xp_backslash = XP_BS_NONE; - #ifndef BACKSLASH_IN_FILENAME - xp->xp_shell = FALSE; -*************** -*** 4311,4318 **** - } - - /* add star to file name, or convert to regexp if not exp. files. */ -! file_str = addstar(xp->xp_pattern, -! (int)(str + col - xp->xp_pattern), xp->xp_context); - if (file_str == NULL) - return EXPAND_UNSUCCESSFUL; - ---- 4313,4320 ---- - } - - /* add star to file name, or convert to regexp if not exp. files. */ -! xp->xp_pattern_len = (int)(str + col - xp->xp_pattern); -! file_str = addstar(xp->xp_pattern, xp->xp_pattern_len, xp->xp_context); - if (file_str == NULL) - return EXPAND_UNSUCCESSFUL; - -*************** -*** 4781,4787 **** - sprintf((char *)num, "%d", ccline.cmdpos); - args[1] = ccline.cmdbuff; - } -! args[0] = xp->xp_pattern; - args[2] = num; - - /* Save the cmdline, we don't know what the function may do. */ ---- 4783,4789 ---- - sprintf((char *)num, "%d", ccline.cmdpos); - args[1] = ccline.cmdbuff; - } -! args[0] = vim_strnsave(xp->xp_pattern, xp->xp_pattern_len); - args[2] = num; - - /* Save the cmdline, we don't know what the function may do. */ -*************** -*** 4797,4802 **** ---- 4799,4805 ---- - if (ccline.cmdbuff != NULL) - ccline.cmdbuff[ccline.cmdlen] = keep; - -+ vim_free(args[0]); - return ret; - } - -*** ../vim-7.2.261/src/structs.h 2009-07-29 12:09:49.000000000 +0200 ---- src/structs.h 2009-09-18 15:33:15.000000000 +0200 -*************** -*** 432,437 **** ---- 432,438 ---- - { - int xp_context; /* type of expansion */ - char_u *xp_pattern; /* start of item to expand */ -+ int xp_pattern_len; /* bytes in xp_pattern before cursor */ - #if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) - char_u *xp_arg; /* completion function */ - int xp_scriptID; /* SID for completion function */ -*** ../vim-7.2.261/src/version.c 2009-09-18 15:16:37.000000000 +0200 ---- src/version.c 2009-09-18 17:23:20.000000000 +0200 -*************** -*** 678,679 **** ---- 678,681 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 262, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -252. You vote for foreign officials. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ download, build and distribute -- http://www.A-A-P.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |