diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.317')
-rw-r--r-- | source/ap/vim/patches/7.3.317 | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/source/ap/vim/patches/7.3.317 b/source/ap/vim/patches/7.3.317 deleted file mode 100644 index 220cae21..00000000 --- a/source/ap/vim/patches/7.3.317 +++ /dev/null @@ -1,116 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.317 -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.317 -Problem: Calling debug.debug() in Lua may cause Vim to hang. -Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho) -Files: src/if_lua.c - - -*** ../vim-7.3.316/src/if_lua.c 2011-01-17 19:53:20.000000000 +0100 ---- src/if_lua.c 2011-09-21 17:15:21.000000000 +0200 -*************** -*** 100,105 **** ---- 100,106 ---- - #define lua_setfield dll_lua_setfield - #define lua_rawset dll_lua_rawset - #define lua_rawseti dll_lua_rawseti -+ #define lua_remove dll_lua_remove - #define lua_setmetatable dll_lua_setmetatable - #define lua_call dll_lua_call - #define lua_pcall dll_lua_pcall -*************** -*** 161,166 **** ---- 162,168 ---- - void (*dll_lua_setfield) (lua_State *L, int idx, const char *k); - void (*dll_lua_rawset) (lua_State *L, int idx); - void (*dll_lua_rawseti) (lua_State *L, int idx, int n); -+ void (*dll_lua_remove) (lua_State *L, int idx); - int (*dll_lua_setmetatable) (lua_State *L, int objindex); - void (*dll_lua_call) (lua_State *L, int nargs, int nresults); - int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); -*************** -*** 229,234 **** ---- 231,237 ---- - {"lua_setfield", (luaV_function) &dll_lua_setfield}, - {"lua_rawset", (luaV_function) &dll_lua_rawset}, - {"lua_rawseti", (luaV_function) &dll_lua_rawseti}, -+ {"lua_remove", (luaV_function) &dll_lua_remove}, - {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable}, - {"lua_call", (luaV_function) &dll_lua_call}, - {"lua_pcall", (luaV_function) &dll_lua_pcall}, -*************** -*** 924,929 **** ---- 927,957 ---- - } - - static int -+ luaV_debug(lua_State *L) -+ { -+ lua_settop(L, 0); -+ lua_getglobal(L, "vim"); -+ lua_getfield(L, -1, "eval"); -+ lua_remove(L, -2); /* vim.eval at position 1 */ -+ for (;;) -+ { -+ const char *input; -+ size_t l; -+ lua_pushvalue(L, 1); /* vim.eval */ -+ lua_pushliteral(L, "input('lua_debug> ')"); -+ lua_call(L, 1, 1); /* return string */ -+ input = lua_tolstring(L, -1, &l); -+ if (l == 0 || strcmp(input, "cont") == 0) -+ return 0; -+ msg_putchar('\n'); /* avoid outputting on input line */ -+ if (luaL_loadbuffer(L, input, l, "=(debug command)") -+ || lua_pcall(L, 0, 0, 0)) -+ luaV_emsg(L); -+ lua_settop(L, 1); /* remove eventual returns, but keep vim.eval */ -+ } -+ } -+ -+ static int - luaV_command(lua_State *L) - { - do_cmdline_cmd((char_u *) luaL_checkstring(L, 1)); -*************** -*** 1082,1087 **** ---- 1110,1120 ---- - /* print */ - lua_pushcfunction(L, luaV_print); - lua_setglobal(L, "print"); -+ /* debug.debug */ -+ lua_getglobal(L, "debug"); -+ lua_pushcfunction(L, luaV_debug); -+ lua_setfield(L, -2, "debug"); -+ lua_pop(L, 1); - /* free */ - lua_pushlightuserdata(L, (void *) LUAVIM_FREE); - lua_pushcfunction(L, luaV_free); -*** ../vim-7.3.316/src/version.c 2011-09-21 13:40:13.000000000 +0200 ---- src/version.c 2011-09-21 17:14:01.000000000 +0200 -*************** -*** 711,712 **** ---- 711,714 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 317, - /**/ - --- -Q: What is the difference betwee open-source and commercial software? -A: If you have a problem with commercial software you can call a phone - number and they will tell you it might be solved in a future version. - For open-source software there isn't a phone number to call, but you - get the solution within a day. - - /// 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 /// |