Files
vim/source-files/fix-building-with-ruby-4.0.patch
T
2025-12-31 21:24:05 +02:00

125 lines
4.3 KiB
Diff

From 293c5e235bf590bca1088e9ce0af71e1c25b3678 Mon Sep 17 00:00:00 2001
From: EnumDev <[email protected]>
Date: Tue, 30 Dec 2025 17:10:53 +0200
Subject: [PATCH 1/3] Fix building with ruby 4.0
Signed-off-by: EnumDev <[email protected]>
---
src/if_ruby.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 6af508beccdc1..a2dc53da8b79f 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -244,7 +244,11 @@ static int ruby_convert_to_vim_value(VALUE val, typval_T *rettv);
# define rb_check_type dll_rb_check_type
# endif
# ifdef USE_TYPEDDATA
-# define rb_check_typeddata dll_rb_check_typeddata
+# if RUBY_VERSION >= 40
+# define rbimpl_check_typeddata dll_rbimpl_check_typeddata
+# else
+# define define rb_check_typeddata dll_rb_check_typeddata
+# endif
# endif
# define rb_class_path dll_rb_class_path
# ifdef USE_TYPEDDATA
@@ -373,7 +377,11 @@ VALUE *dll_rb_cTrueClass;
static VALUE (*dll_rb_class_new_instance) (int,VALUE*,VALUE);
static void (*dll_rb_check_type) (VALUE,int);
# ifdef USE_TYPEDDATA
+# if RUBY_VERSION >= 40
+static void *(*dll_rbimpl_check_typeddata) (VALUE,const rb_data_type_t *);
+# else
static void *(*dll_rb_check_typeddata) (VALUE,const rb_data_type_t *);
+# endif
# endif
static VALUE (*dll_rb_class_path) (VALUE);
# ifdef USE_TYPEDDATA
@@ -632,7 +640,11 @@ static struct
{"rb_class_new_instance", (RUBY_PROC*)&dll_rb_class_new_instance},
{"rb_check_type", (RUBY_PROC*)&dll_rb_check_type},
# ifdef USE_TYPEDDATA
+# if RUBY_VERSION >= 40
+ {"rbimpl_check_typeddata", (RUBY_PROC*)&dll_rbimpl_check_typeddata},
+# else
{"rb_check_typeddata", (RUBY_PROC*)&dll_rb_check_typeddata},
+# endif
# endif
{"rb_class_path", (RUBY_PROC*)&dll_rb_class_path},
# ifdef USE_TYPEDDATA
From 9c7c407a83226bd72541fc3c080245e72d8b23e2 Mon Sep 17 00:00:00 2001
From: EnumDev <[email protected]>
Date: Wed, 31 Dec 2025 14:17:28 +0200
Subject: [PATCH 2/3] Fix typo in src/if_ruby.c
Signed-off-by: EnumDev <[email protected]>
---
src/if_ruby.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/if_ruby.c b/src/if_ruby.c
index a2dc53da8b79f..81252102b1d48 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -247,7 +247,7 @@ static int ruby_convert_to_vim_value(VALUE val, typval_T *rettv);
# if RUBY_VERSION >= 40
# define rbimpl_check_typeddata dll_rbimpl_check_typeddata
# else
-# define define rb_check_typeddata dll_rb_check_typeddata
+# define rb_check_typeddata dll_rb_check_typeddata
# endif
# endif
# define rb_class_path dll_rb_class_path
From 4cd61636526b710f12ca2d987c1c898502718f2d Mon Sep 17 00:00:00 2001
From: EnumDev <[email protected]>
Date: Wed, 31 Dec 2025 21:05:02 +0200
Subject: [PATCH 3/3] Always define rb_check_typeddata
Signed-off-by: EnumDev <[email protected]>
---
src/if_ruby.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 81252102b1d48..49fdc34dd5316 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -246,9 +246,8 @@ static int ruby_convert_to_vim_value(VALUE val, typval_T *rettv);
# ifdef USE_TYPEDDATA
# if RUBY_VERSION >= 40
# define rbimpl_check_typeddata dll_rbimpl_check_typeddata
-# else
-# define rb_check_typeddata dll_rb_check_typeddata
# endif
+# define rb_check_typeddata dll_rb_check_typeddata
# endif
# define rb_class_path dll_rb_class_path
# ifdef USE_TYPEDDATA
@@ -379,9 +378,8 @@ static void (*dll_rb_check_type) (VALUE,int);
# ifdef USE_TYPEDDATA
# if RUBY_VERSION >= 40
static void *(*dll_rbimpl_check_typeddata) (VALUE,const rb_data_type_t *);
-# else
-static void *(*dll_rb_check_typeddata) (VALUE,const rb_data_type_t *);
# endif
+static void *(*dll_rb_check_typeddata) (VALUE,const rb_data_type_t *);
# endif
static VALUE (*dll_rb_class_path) (VALUE);
# ifdef USE_TYPEDDATA
@@ -640,11 +638,7 @@ static struct
{"rb_class_new_instance", (RUBY_PROC*)&dll_rb_class_new_instance},
{"rb_check_type", (RUBY_PROC*)&dll_rb_check_type},
# ifdef USE_TYPEDDATA
-# if RUBY_VERSION >= 40
- {"rbimpl_check_typeddata", (RUBY_PROC*)&dll_rbimpl_check_typeddata},
-# else
{"rb_check_typeddata", (RUBY_PROC*)&dll_rb_check_typeddata},
-# endif
# endif
{"rb_class_path", (RUBY_PROC*)&dll_rb_class_path},
# ifdef USE_TYPEDDATA