I forgot to attach the patch.
On Fri, Mar 27, 2009 at 3:29 PM, Kessia 'even' Pinheiro
<[email protected]> wrote:
> Hi folks,
> I made a patch for VIM works with ruby1.9 and it are running fine
> here. It affects file if_ruby.c only. For who want compile it for
> ruby1.9, I need pass the library path for make with:
>
> make \
> CXXFLAGS="${CXXFLAGS} -I/usr/include/ruby-1.9.1/ \
> -I/usr/include/ruby-1.9.1/i686-linux/" \
> CFLAGS="${CFLAGS} -I/usr/include/ruby-1.9.1/ \
> -I/usr/include/ruby-1.9.1/i686-linux/"
>
> because some issues for ruby package.
>
> Please, tell me if some are wrong.
> --
> Kessia Pinheiro
> Computer Science Student - Brazil, UFBa
> Linux System Administrator
> Arch Linux Trusted User
> Linux User #389695
> http://even.archlinux-br.org
> ---
> X Fórum Internacional Software Livre - fisl10
> 24 a 27 de junho de 2009
> PUCRS - Porto Alegre - Brasil
>
--
Kessia Pinheiro
Computer Science Student - Brazil, UFBa
Linux System Administrator
Arch Linux Trusted User
Linux User #389695
http://even.archlinux-br.org
---
X Fórum Internacional Software Livre - fisl10
24 a 27 de junho de 2009
PUCRS - Porto Alegre - Brasil
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---
--- src/if_ruby.c 2007-09-10 05:40:38.000000000 -0300
+++ src/if_ruby.new 2009-02-18 12:46:25.371757534 -0300
@@ -26,6 +26,7 @@
# define RUBYEXTERN extern
#endif
+#define HAVE_STRUCT_TIMESPEC
/*
* This is tricky. In ruby.h there is (inline) function rb_class_of()
* definition. This function use these variables. But we want function to
@@ -129,7 +130,8 @@
#define rb_str_concat dll_rb_str_concat
#define rb_str_new dll_rb_str_new
#define rb_str_new2 dll_rb_str_new2
-#define ruby_errinfo (*dll_ruby_errinfo)
+#define rb_errinfo dll_rb_errinfo
+#define ruby_init_stack dll_ruby_init_stack
#define ruby_init dll_ruby_init
#define ruby_init_loadpath dll_ruby_init_loadpath
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
@@ -183,7 +185,8 @@
static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
static VALUE (*dll_rb_str_new) (const char*, long);
static VALUE (*dll_rb_str_new2) (const char*);
-static VALUE *dll_ruby_errinfo;
+static VALUE (*dll_rb_errinfo) (void);
+static void (*dll_ruby_init_stack) (void);
static void (*dll_ruby_init) (void);
static void (*dll_ruby_init_loadpath) (void);
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
@@ -245,7 +248,8 @@
{"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
{"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
{"rb_str_new2", (RUBY_PROC*)&dll_rb_str_new2},
- {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo},
+ {"rb_errinfo", (RUBY_PROC*)&dll_rb_errinfo},
+ {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
{"ruby_init", (RUBY_PROC*)&dll_ruby_init},
{"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
@@ -413,7 +417,8 @@
#ifdef DYNAMIC_RUBY
if (ruby_enabled(TRUE))
{
-#endif
+#endif
+ RUBY_INIT_STACK
ruby_init();
ruby_init_loadpath();
ruby_io_init();
@@ -433,9 +438,6 @@
static void error_print(int state)
{
-#ifndef DYNAMIC_RUBY
- RUBYEXTERN VALUE ruby_errinfo;
-#endif
VALUE eclass;
VALUE einfo;
char buff[BUFSIZ];
@@ -468,9 +470,9 @@
break;
case TAG_RAISE:
case TAG_FATAL:
- eclass = CLASS_OF(ruby_errinfo);
- einfo = rb_obj_as_string(ruby_errinfo);
- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
+ eclass = CLASS_OF(rb_errinfo());
+ einfo = rb_obj_as_string(rb_errinfo());
+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
EMSG(_("E272: unhandled exception"));
}
else {
@@ -479,7 +481,7 @@
epath = rb_class_path(eclass);
vim_snprintf(buff, BUFSIZ, "%s: %s",
- RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
p = strchr(buff, '\n');
if (p) *p = '\0';
EMSG(buff);
@@ -497,8 +499,8 @@
char *buff, *p;
str = rb_obj_as_string(str);
- buff = ALLOCA_N(char, RSTRING(str)->len);
- strcpy(buff, RSTRING(str)->ptr);
+ buff = ALLOCA_N(char, RSTRING_LEN(str));
+ strcpy(buff, RSTRING_PTR(str));
p = strchr(buff, '\n');
if (p) *p = '\0';
MSG(buff);
@@ -886,10 +888,10 @@
win_T *win = get_win(self);
Check_Type(pos, T_ARRAY);
- if (RARRAY(pos)->len != 2)
+ if (RARRAY_LEN(pos) != 2)
rb_raise(rb_eArgError, "array length must be 2");
- lnum = RARRAY(pos)->ptr[0];
- col = RARRAY(pos)->ptr[1];
+ lnum = RARRAY_PTR(pos)[0];
+ col = RARRAY_PTR(pos)[1];
win->w_cursor.lnum = NUM2LONG(lnum);
win->w_cursor.col = NUM2UINT(col);
check_cursor(); /* put cursor on an existing line */
@@ -906,7 +908,7 @@
if (i > 0) rb_str_cat(str, ", ", 2);
rb_str_concat(str, rb_inspect(argv[i]));
}
- MSG(RSTRING(str)->ptr);
+ MSG(RSTRING_PTR(str));
return Qnil;
}