diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 656bb18560a7d91aefb78feca2cac6fc5b3a5a12..ac5f17f1ca494cc5abe39d7d9507416f783df2e5 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 29 +*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 30 VIM REFERENCE MANUAL by Bram Moolenaar @@ -53,7 +53,6 @@ Awaiting response: the screen. - mblen(NULL, 0) also in Vim 6.3? -Implement printf("blah %d: %s", nr, str)? Use vim_snprintf code. PLANNED FOR VERSION 7.0: @@ -69,9 +68,10 @@ PLANNED FOR VERSION 7.0: First cleanup the Insert-mode completion. UI: - - Use 'wildmenu' kind of thing. - - Put the list of choices right under the place where they would be - inserted. + - At first: use 'wildmenu' kind of thing. + - Nicer: Display the list of choices right under the place where they + would be inserted in a kind of meny (use scrollbar when there are many + alternatives). Completion logic: Use 'coupler' option to list items that connect words. For C: ".,->". @@ -1628,7 +1628,6 @@ Built-in script language: mapname({idx}, mode) return the name of the idx'th mapping. Patch by Ilya Sher, 2004 Mar 4. Return a list instead. - printf(format, arg, ..) How to prevent a crash??? char2hex() convert char string to hex string. attributes() return file protection flags "drwxrwxrwx" filecopy(from, to) Copy a file diff --git a/src/eval.c b/src/eval.c index 4e202f40444f0cc96ab7ad798627067af2a45ca5..596fa526cf5bc1e5657b255c6654a30307358658 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1405,7 +1405,8 @@ call_vim_function(func, argc, argv, safe, rettv) } /* - * Call some vimL function and return the result as a string + * Call vimL function "func" and return the result as a string. + * Returns NULL when calling the function fails. * Uses argv[argc] for the function arguments. */ void * @@ -1416,20 +1417,43 @@ call_func_retstr(func, argc, argv, safe) int safe; /* use the sandbox */ { typval_T rettv; - char_u *retval = NULL; + char_u *retval; if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL) return NULL; retval = vim_strsave(get_tv_string(&rettv)); - clear_tv(&rettv); + return retval; +} +#if defined(FEAT_COMPL_FUNC) || defined(PROTO) +/* + * Call vimL function "func" and return the result as a number. + * Returns -1 when calling the function fails. + * Uses argv[argc] for the function arguments. + */ + long +call_func_retnr(func, argc, argv, safe) + char_u *func; + int argc; + char_u **argv; + int safe; /* use the sandbox */ +{ + typval_T rettv; + long retval; + + if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL) + return -1; + + retval = get_tv_number_chk(&rettv, NULL); + clear_tv(&rettv); return retval; } +#endif /* - * Call some vimL function and return the result as a list + * Call vimL function "func" and return the result as a list * Uses argv[argc] for the function arguments. */ void *