Matt Wozniski wrote:
> function! ReturnArgs(...)
> return a:000
> endfunction
>
> " Seems to work fine?
> echo ReturnArgs(1, 2, 3)
>
> " SEGV
> echo string(ReturnArgs(1, 2, 3))
>
> function! MakeArgsDict(...)
> return { 'args': a:000 }
> endfunction
>
> " E685 Internal Error
> echo MakeArgsDict(1, 2, 3)
>
> " SEGV
> echo string(MakeArgsDict(1, 2, 3))
>
> ~Matt
I can reproduce that with vim-7.2.69 on Linux.
Following patch seems to fix it, but I'm not sure whether
that's the correct fix or whether it's only a workaround:
$ cvs diff -c eval.c
Index: eval.c
===================================================================
RCS file: /cvsroot/vim/vim7/src/eval.c,v
retrieving revision 1.277
diff -c -r1.277 eval.c
*** eval.c 9 Dec 2008 09:57:49 -0000 1.277
--- eval.c 15 Dec 2008 19:39:37 -0000
***************
*** 21111,21117 ****
char_u *save_sourcing_name;
linenr_T save_sourcing_lnum;
scid_T save_current_SID;
! funccall_T fc;
int save_did_emsg;
static int depth = 0;
dictitem_T *v;
--- 21111,21117 ----
char_u *save_sourcing_name;
linenr_T save_sourcing_lnum;
scid_T save_current_SID;
! static funccall_T fc;
int save_did_emsg;
static int depth = 0;
dictitem_T *v;
-- Dominique
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---