updated for version 7.0106

This commit is contained in:
Bram Moolenaar
2005-07-09 21:14:46 +00:00
parent 35fdbb540a
commit d8e9bb2090
7 changed files with 93 additions and 28 deletions

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 08
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,11 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
9 Editing a XML file with a long line is extremely slow. Example file from
Randy Parker (Dec 13). Editing the dictionaries for engspchk plugin with
syntax highlighting is also very slow.
Limit the searching for items to a few hundred characters?
Add extra list of file locations. Can be used with:
:ltag list of matching tags, like :tselect
@@ -862,10 +867,6 @@ Macintosh:
Alternate one: http://www.pramodx.20m.com/tee_for_win32.htm, but Walter
Briscoe says it's not as good.
8 'fillchars' doesn't work for multi-byte characters.
9 Editing a XML file with a long line is extremely slow. Example file from
Randy Parker (Dec 13). Editing the dictionaries for engspchk plugin with
syntax highlighting is also very slow.
Limit the searching for items to a few hundred characters?
8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 Output for ":scriptnames" and ":breaklist" should shorten the file names:
@@ -2339,6 +2340,11 @@ Insert mode:
8 Wrong indent below ? : with ():
if ((a ? (b) : c) != 0)
aligns with ":".
8 Using "+" part of 'cinoptions' where it's not expected (Alexei Alexandrov):
if (a)
{
} else
asdf;
8 Wrong indent for ":" after a method with line break in arguments:
Foo::Foo (int one,
int two)

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jul 08
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jul 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -678,6 +678,14 @@ When using @= in an expression the value is expression @= contains. ":let @=
A ! can be added to ":popup" to have the popup menu appear at the mouse
pointer position instead of the text cursor.
The table with encodings has been expanded with many MS-Windows codepages,
such as cp1250 and cp737, so that these can also be used on Unix without
prepending "8bit-".
Added the "customlist" completion argument to a user-defined command. The
user-defined completion function should return the completion candidates as a
Vim List and the returned results are not filtered by Vim.
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*

View File

@@ -2683,7 +2683,7 @@ call_completefunc(line, base, col, preproc)
args[1] = base;
args[2] = colbuf;
args[3] = (char_u *)(preproc ? "1" : "0");
return call_vim_function(curbuf->b_p_cfu, 4, args, FALSE);
return (char_u *)call_func_retstr(curbuf->b_p_cfu, 4, args, FALSE);
}
/*

View File

@@ -1272,28 +1272,29 @@ get_spellword(list, pp)
#if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
/*
* Call some vimL function and return the result as a string
* Call some vimL function and return the result in "*rettv".
* Uses argv[argc] for the function arguments.
* Returns OK or FAIL.
*/
char_u *
call_vim_function(func, argc, argv, safe)
static int
call_vim_function(func, argc, argv, safe, rettv)
char_u *func;
int argc;
char_u **argv;
int safe; /* use the sandbox */
typval_T *rettv;
{
char_u *retval = NULL;
typval_T rettv;
typval_T *argvars;
long n;
int len;
int i;
int doesrange;
void *save_funccalp = NULL;
int ret;
argvars = (typval_T *)alloc((unsigned)(argc * sizeof(typval_T)));
if (argvars == NULL)
return NULL;
return FAIL;
for (i = 0; i < argc; i++)
{
@@ -1325,22 +1326,72 @@ call_vim_function(func, argc, argv, safe)
++sandbox;
}
rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
if (call_func(func, (int)STRLEN(func), &rettv, argc, argvars,
rettv->v_type = VAR_UNKNOWN; /* clear_tv() uses this */
ret = call_func(func, (int)STRLEN(func), rettv, argc, argvars,
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&doesrange, TRUE, NULL) == OK)
retval = vim_strsave(get_tv_string(&rettv));
clear_tv(&rettv);
vim_free(argvars);
&doesrange, TRUE, NULL);
if (safe)
{
--sandbox;
restore_funccal(save_funccalp);
}
vim_free(argvars);
if (ret == FAIL)
clear_tv(rettv);
return ret;
}
/*
* Call some vimL function and return the result as a string
* Uses argv[argc] for the function arguments.
*/
void *
call_func_retstr(func, argc, argv, safe)
char_u *func;
int argc;
char_u **argv;
int safe; /* use the sandbox */
{
typval_T rettv;
char_u *retval = NULL;
if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
return NULL;
retval = vim_strsave(get_tv_string(&rettv));
clear_tv(&rettv);
return retval;
}
/*
* Call some vimL function and return the result as a list
* Uses argv[argc] for the function arguments.
*/
void *
call_func_retlist(func, argc, argv, safe)
char_u *func;
int argc;
char_u **argv;
int safe; /* use the sandbox */
{
typval_T rettv;
if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
return NULL;
if (rettv.v_type != VAR_LIST)
{
clear_tv(&rettv);
return NULL;
}
return rettv.vval.v_list;
}
#endif
/*
@@ -1640,7 +1691,7 @@ skip_var_list(arg, var_count, semicolon)
{
/* "[var, var]": find the matching ']'. */
p = arg;
while (1)
for (;;)
{
p = skipwhite(p + 1); /* skip whites after '[', ';' or ',' */
s = skip_var_one(p);
@@ -11315,7 +11366,7 @@ find_some_match(argvars, rettv, type)
{
regmatch.rm_ic = p_ic;
while (1)
for (;;)
{
if (l != NULL)
{
@@ -11472,7 +11523,7 @@ max_min(argvars, rettv, domax)
if (li != NULL)
{
n = get_tv_number_chk(&li->li_tv, &error);
while (1)
for (;;)
{
li = li->li_next;
if (li == NULL)

View File

@@ -3562,7 +3562,7 @@ ex_append(eap)
if (curbuf->b_p_iminsert == B_IMODE_LMAP)
State |= LANGMAP;
while (1)
for (;;)
{
msg_scroll = TRUE;
need_wait_return = FALSE;

View File

@@ -5158,7 +5158,7 @@ cin_ispreproc_cont(pp, lnump)
linenr_T lnum = *lnump;
int retval = FALSE;
while (1)
for (;;)
{
if (cin_ispreproc(line))
{

View File

@@ -3745,7 +3745,7 @@ find_next_quote(line, col, quotechar, escape)
{
int c;
while (1)
for (;;)
{
c = line[col];
if (c == NUL)
@@ -3886,7 +3886,7 @@ current_quote(oap, count, include, quotechar)
* Also do this when there is a Visual area, a' may leave the cursor
* in between two strings. */
col_start = 0;
while (1)
for (;;)
{
/* Find open quote character. */
col_start = find_next_quote(line, col_start, quotechar, NULL);