[vim] - patchlevel 013

Karsten Hopp karsten at fedoraproject.org
Thu Sep 30 14:35:20 UTC 2010


commit 487812e3eedf315f87af177e9ace818b687f1d67
Author: Karsten Hopp <karsten at redhat.com>
Date:   Thu Sep 30 16:32:04 2010 +0200

    - patchlevel 013

 7.3.013 |  208 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 208 insertions(+), 0 deletions(-)
---
diff --git a/7.3.013 b/7.3.013
new file mode 100644
index 0000000..489aa0e
--- /dev/null
+++ b/7.3.013
@@ -0,0 +1,208 @@
+To: vim-dev at vim.org
+Subject: Patch 7.3.013
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.013
+Problem:    Dynamic loading with Ruby doesn't work for 1.9.2.
+Solution:   Handle rb_str2cstr differently.  Also support dynamic loading on
+	    Unix. (Jon Maken)
+Files:	    src/if_ruby.c
+
+
+*** ../vim-7.3.012/src/if_ruby.c	2010-08-15 21:57:25.000000000 +0200
+--- src/if_ruby.c	2010-09-29 12:49:50.000000000 +0200
+***************
+*** 4,9 ****
+--- 4,10 ----
+   *
+   * Ruby interface by Shugo Maeda
+   *   with improvements by SegPhault (Ryan Paul)
++  *   with improvements by Jon Maken
+   *
+   * Do ":help uganda"  in Vim to read copying and usage conditions.
+   * Do ":help credits" in Vim to see a list of people who contributed.
+***************
+*** 26,37 ****
+  # define RUBYEXTERN extern
+  #endif
+  
+  /*
+   * This is tricky.  In ruby.h there is (inline) function rb_class_of()
+   * definition.  This function use these variables.  But we want function to
+   * use dll_* variables.
+   */
+- #ifdef DYNAMIC_RUBY
+  # define rb_cFalseClass		(*dll_rb_cFalseClass)
+  # define rb_cFixnum		(*dll_rb_cFixnum)
+  # define rb_cNilClass		(*dll_rb_cNilClass)
+--- 27,38 ----
+  # define RUBYEXTERN extern
+  #endif
+  
++ #ifdef DYNAMIC_RUBY
+  /*
+   * This is tricky.  In ruby.h there is (inline) function rb_class_of()
+   * definition.  This function use these variables.  But we want function to
+   * use dll_* variables.
+   */
+  # define rb_cFalseClass		(*dll_rb_cFalseClass)
+  # define rb_cFixnum		(*dll_rb_cFixnum)
+  # define rb_cNilClass		(*dll_rb_cNilClass)
+***************
+*** 46,53 ****
+--- 47,67 ----
+   */
+  #  define RUBY_EXPORT
+  # endif
++ 
++ #if !(defined(WIN32) || defined(_WIN64))
++ # include <dlfcn.h>
++ # define HANDLE void*
++ # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
++ # define symbol_from_dll dlsym
++ # define close_dll dlclose
++ #else
++ # define load_dll LoadLibrary
++ # define symbol_from_dll GetProcAddress
++ # define close_dll FreeLibrary
+  #endif
+  
++ #endif  /* ifdef DYNAMIC_RUBY */
++ 
+  /* suggested by Ariya Mizutani */
+  #if (_MSC_VER == 1200)
+  # undef _WIN32_WINNT
+***************
+*** 166,172 ****
+  #define rb_obj_as_string		dll_rb_obj_as_string
+  #define rb_obj_id			dll_rb_obj_id
+  #define rb_raise			dll_rb_raise
+- #define rb_str2cstr			dll_rb_str2cstr
+  #define rb_str_cat			dll_rb_str_cat
+  #define rb_str_concat			dll_rb_str_concat
+  #define rb_str_new			dll_rb_str_new
+--- 180,185 ----
+***************
+*** 178,187 ****
+--- 191,203 ----
+  # define rb_str_new2			dll_rb_str_new2
+  #endif
+  #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ # define rb_string_value		dll_rb_string_value
+  # define rb_string_value_ptr		dll_rb_string_value_ptr
+  # define rb_float_new			dll_rb_float_new
+  # define rb_ary_new			dll_rb_ary_new
+  # define rb_ary_push			dll_rb_ary_push
++ #else
++ # define rb_str2cstr			dll_rb_str2cstr
+  #endif
+  #ifdef RUBY19_OR_LATER
+  # define rb_errinfo			dll_rb_errinfo
+***************
+*** 246,252 ****
+--- 262,272 ----
+  static VALUE (*dll_rb_obj_as_string) (VALUE);
+  static VALUE (*dll_rb_obj_id) (VALUE);
+  static void (*dll_rb_raise) (VALUE, const char*, ...);
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++ static VALUE (*dll_rb_string_value) (volatile VALUE*);
++ #else
+  static char *(*dll_rb_str2cstr) (VALUE,int*);
++ #endif
+  static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
+  static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+  static VALUE (*dll_rb_str_new) (const char*, long);
+***************
+*** 347,353 ****
+--- 367,377 ----
+      {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
+      {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
+      {"rb_raise", (RUBY_PROC*)&dll_rb_raise},
++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++     {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
++ #else
+      {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
++ #endif
+      {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
+      {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+      {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+***************
+*** 399,405 ****
+  {
+      if (hinstRuby)
+      {
+! 	FreeLibrary(hinstRuby);
+  	hinstRuby = 0;
+      }
+  }
+--- 423,429 ----
+  {
+      if (hinstRuby)
+      {
+! 	close_dll(hinstRuby);
+  	hinstRuby = 0;
+      }
+  }
+***************
+*** 416,422 ****
+  
+      if (hinstRuby)
+  	return OK;
+!     hinstRuby = LoadLibrary(libname);
+      if (!hinstRuby)
+      {
+  	if (verbose)
+--- 440,446 ----
+  
+      if (hinstRuby)
+  	return OK;
+!     hinstRuby = load_dll(libname);
+      if (!hinstRuby)
+      {
+  	if (verbose)
+***************
+*** 426,435 ****
+  
+      for (i = 0; ruby_funcname_table[i].ptr; ++i)
+      {
+! 	if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
+  			ruby_funcname_table[i].name)))
+  	{
+! 	    FreeLibrary(hinstRuby);
+  	    hinstRuby = 0;
+  	    if (verbose)
+  		EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
+--- 450,459 ----
+  
+      for (i = 0; ruby_funcname_table[i].ptr; ++i)
+      {
+! 	if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
+  			ruby_funcname_table[i].name)))
+  	{
+! 	    close_dll(hinstRuby);
+  	    hinstRuby = 0;
+  	    if (verbose)
+  		EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
+*** ../vim-7.3.012/src/version.c	2010-09-29 12:37:53.000000000 +0200
+--- src/version.c	2010-09-29 13:00:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     13,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+223. You set up a web-cam as your home's security system.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


More information about the scm-commits mailing list