To: vim_dev@googlegroups.com
Subject: Patch 7.3.352
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.3.352
Problem: When completing methods dict functions and script-local functions
get in the way.
Solution: Sort function names starting with "<" to the end. (Yasuhiro
Matsumoto)
Files: src/ex_getln.c
*** ../vim-7.3.351/src/ex_getln.c 2011-09-30 17:46:14.000000000 +0200
--- src/ex_getln.c 2011-10-26 21:37:53.000000000 +0200
***************
*** 121,126 ****
--- 121,134 ----
static int ex_window __ARGS((void));
#endif
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+ static int
+ #ifdef __BORLANDC__
+ _RTLENTRYF
+ #endif
+ sort_func_compare __ARGS((const void *s1, const void *s2));
+ #endif
+
/*
* getcmdline() - accept a command line starting with firstc.
*
***************
*** 3286,3291 ****
--- 3294,3317 ----
return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
}
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+ static int
+ #ifdef __BORLANDC__
+ _RTLENTRYF
+ #endif
+ sort_func_compare(s1, s2)
+ const void *s1;
+ const void *s2;
+ {
+ char_u *p1 = *(char_u **)s1;
+ char_u *p2 = *(char_u **)s2;
+
+ if (*p1 != '<' && *p2 == '<') return -1;
+ if (*p1 == '<' && *p2 != '<') return 1;
+ return STRCMP(p1, p2);
+ }
+ #endif
+
/*
* Return FAIL if this is not an appropriate context in which to do
* completion of anything, return OK if it is (even if there are no matches).
***************
*** 4735,4741 ****
/* Sort the results. Keep menu's in the specified order. */
if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
! sort_strings(*file, *num_file);
#ifdef FEAT_CMDL_COMPL
/* Reset the variables used for special highlight names expansion, so that
--- 4761,4776 ----
/* Sort the results. Keep menu's in the specified order. */
if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
! {
! if (xp->xp_context == EXPAND_EXPRESSION
! || xp->xp_context == EXPAND_FUNCTIONS
! || xp->xp_context == EXPAND_USER_FUNC)
! /* <SNR> functions should be sorted to the end. */
! qsort((void *)*file, (size_t)*num_file, sizeof(char_u *),
! sort_func_compare);
! else
! sort_strings(*file, *num_file);
! }
#ifdef FEAT_CMDL_COMPL
/* Reset the variables used for special highlight names expansion, so that
*** ../vim-7.3.351/src/version.c 2011-10-26 17:04:23.000000000 +0200
--- src/version.c 2011-10-26 21:49:53.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 352,
/**/
--
hundred-and-one symptoms of being an internet addict:
94. Now admit it... How many of you have made "modem noises" into
the phone just to see if it was possible? :-)
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///