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
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui