summaryrefslogtreecommitdiff
path: root/www-client/elinks/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-16 09:32:48 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-16 09:32:48 +0100
commit9ee6d97c2883d42f204a533a8bc1f4562df778fb (patch)
treeb690ddc0ca30f1472887edbb0b8313629bfcbbb2 /www-client/elinks/files
parentb17a3ef12038de50228bade1f05502c74e135321 (diff)
gentoo resync : 16.09.2020
Diffstat (limited to 'www-client/elinks/files')
-rw-r--r--www-client/elinks/files/elinks-0.11.2-lua-5.1.patch16
-rw-r--r--www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch12
-rw-r--r--www-client/elinks/files/elinks-0.12_pre5-libressl.patch29
-rw-r--r--www-client/elinks/files/elinks-0.12_pre5-rand-egd.patch20
-rw-r--r--www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch187
-rw-r--r--www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch124
-rw-r--r--www-client/elinks/files/elinks-0.13-ruby.patch183
7 files changed, 0 insertions, 571 deletions
diff --git a/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch b/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch
deleted file mode 100644
index 20db8a484598..000000000000
--- a/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Naurp elinks-0.11.2/src/scripting/lua/core.c elinks-0.11.2-lua/src/scripting/lua/core.c
---- elinks-0.11.2/src/scripting/lua/core.c 2006-11-19 14:46:37.000000000 +0100
-+++ elinks-0.11.2-lua/src/scripting/lua/core.c 2007-03-10 15:34:47.000000000 +0100
-@@ -646,11 +646,7 @@ init_lua(struct module *module)
- {
- L = lua_open();
-
-- luaopen_base(L);
-- luaopen_table(L);
-- luaopen_io(L);
-- luaopen_string(L);
-- luaopen_math(L);
-+ luaL_openlibs(L);
-
- lua_register(L, LUA_ALERT, l_alert);
- lua_register(L, "current_url", l_current_url);
diff --git a/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch b/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch
deleted file mode 100644
index dee09a67eb45..000000000000
--- a/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurp elinks-0.12pre5-orig//src/intl/charsets.c elinks-0.12pre5/src/intl/charsets.c
---- elinks-0.12pre5-orig//src/intl/charsets.c 2010-04-04 12:19:02.000000000 +0200
-+++ elinks-0.12pre5/src/intl/charsets.c 2010-04-04 12:19:20.000000000 +0200
-@@ -821,7 +821,7 @@ free_utf_table(void)
-
- /* Cast away const. */
- for (i = 128; i < 256; i++)
-- mem_free((unsigned char *) utf_table[i].u.str);
-+ mem_free(utf_table[i].u.str);
- }
-
- static struct conv_table *
diff --git a/www-client/elinks/files/elinks-0.12_pre5-libressl.patch b/www-client/elinks/files/elinks-0.12_pre5-libressl.patch
deleted file mode 100644
index d41ab689e9f1..000000000000
--- a/www-client/elinks/files/elinks-0.12_pre5-libressl.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Adapted from upstream
-commit 54ebe365b752f8969a67279d0d29552ab638e025
-Author: Witold Filipczyk <witekfl@poczta.onet.pl>
-Date: Mon Mar 6 17:39:36 2017 +0100
-
- Compilation fix for OpenSSL-1.1
-
---- a/src/network/ssl/socket.c
-+++ b/src/network/ssl/socket.c
-@@ -67,7 +67,9 @@
- ssl_set_no_tls(struct socket *socket)
- {
- #ifdef CONFIG_OPENSSL
-- ((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1;
-+#ifdef SSL_OP_NO_TLSv1
-+ SSL_set_options((ssl_t *)socket->ssl, SSL_OP_NO_TLSv1);
-+#endif
- #elif defined(CONFIG_GNUTLS)
- {
- /* GnuTLS does not support SSLv2 because it is "insecure".
-@@ -145,7 +147,7 @@
- }
-
- if (client_cert) {
-- SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
-+ SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl);
-
- SSL_CTX_use_certificate_chain_file(ctx, client_cert);
- SSL_CTX_use_PrivateKey_file(ctx, client_cert,
diff --git a/www-client/elinks/files/elinks-0.12_pre5-rand-egd.patch b/www-client/elinks/files/elinks-0.12_pre5-rand-egd.patch
deleted file mode 100644
index 6c5679a95bbd..000000000000
--- a/www-client/elinks/files/elinks-0.12_pre5-rand-egd.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/network/ssl/ssl.c
-+++ b/src/network/ssl/ssl.c
-@@ -84,11 +84,16 @@ init_openssl(struct module *module)
- * cannot initialize the PRNG and so every attempt to use SSL fails.
- * It's actually an OpenSSL FAQ, and according to them, it's up to the
- * application coders to seed the RNG. -- William Yodlowsky */
-- if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
-+ RAND_file_name(f_randfile, sizeof(f_randfile));
-+#ifdef HAVE_RAND_EGD
-+ if (RAND_egd(f_randfile) < 0) {
- /* Not an EGD, so read and write to it */
-+#endif
- if (RAND_load_file(f_randfile, -1))
- RAND_write_file(f_randfile);
-+#ifdef HAVE_RAND_EGD
- }
-+#endif
-
- SSLeay_add_ssl_algorithms();
- context = SSL_CTX_new(SSLv23_client_method());
diff --git a/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch b/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch
deleted file mode 100644
index 1e07bcde190a..000000000000
--- a/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-diff -urp a/config/m4/ruby.m4 b/config/m4/ruby.m4
---- a/config/m4/ruby.m4 2009-07-07 13:23:17.000000000 +0100
-+++ b/config/m4/ruby.m4 2012-09-10 18:23:09.000000000 +0100
-@@ -32,36 +32,40 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"
- if test "$CONFIG_SCRIPTING_RUBY" != "no"; then
-
- AC_MSG_CHECKING(Ruby version)
-- if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION or RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then
-+ if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION rescue RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then
- ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'`
- AC_MSG_RESULT($ruby_version)
-
- AC_MSG_CHECKING(for Ruby header files)
-- rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-+ rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print RbConfig::CONFIG[["rubyhdrdir"]] || RbConfig::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-
- if test "X$rubyhdrdir" != "X"; then
- AC_MSG_RESULT($rubyhdrdir)
- RUBY_CFLAGS="-I$rubyhdrdir"
-- rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
-+ rubyarch=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["arch"]]'`
-+ if test -d "$rubyhdrdir/$rubyarch"; then
-+ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
-+ fi
-+ rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LIBS"]]'`
-
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-
-- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-+ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["LIBRUBYARG"]])'`
-
- if test -f "$rubyhdrdir/$librubyarg"; then
- librubyarg="$rubyhdrdir/$librubyarg"
-
- else
-- rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
-+ rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["libdir"]])'`
- if test -f "$rubylibdir/$librubyarg"; then
- librubyarg="$rubylibdir/$librubyarg"
- elif test "$librubyarg" = "libruby.a"; then
- dnl required on Mac OS 10.3 where libruby.a doesn't exist
- librubyarg="-lruby"
- else
-- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-+ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{RbConfig.expand(RbConfig::CONFIG[\"libdir\"])}')"`
- fi
- fi
-
-@@ -69,7 +73,7 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-
-- rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
-+ rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LDFLAGS"]]'`
- if test "X$rubyldflags" != "X"; then
- LDFLAGS="$rubyldflags $LDFLAGS"
- fi
-@@ -86,6 +90,15 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"
- AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
- fi
- fi
-+ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
-+ AC_MSG_CHECKING([for rb_errinfo])
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ruby.h>]], [[rb_errinfo();]])],have_rb_errinfo="yes",have_rb_errinfo="no")
-+ AC_MSG_RESULT($have_rb_errinfo)
-+ if test "$have_rb_errinfo" = "yes"; then
-+ AC_DEFINE([HAVE_RB_ERRINFO], [1],
-+ [Define to 1 if you have the `rb_errinfo' function.])
-+ fi
-+ fi
- fi
-
- EL_RESTORE_FLAGS
-diff -urp a/src/scripting/ruby/core.c b/src/scripting/ruby/core.c
---- a/src/scripting/ruby/core.c 2009-07-07 13:23:17.000000000 +0100
-+++ b/src/scripting/ruby/core.c 2012-09-10 18:27:05.000000000 +0100
-@@ -76,10 +76,10 @@ erb_report_error(struct session *ses, in
- break;
- case TAG_RAISE:
- case TAG_FATAL:
-- eclass = CLASS_OF(ruby_errinfo);
-- einfo = rb_obj_as_string(ruby_errinfo);
-+ eclass = CLASS_OF(RB_ERRINFO);
-+ einfo = rb_obj_as_string(RB_ERRINFO);
-
-- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
-+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
- msg = "unhandled exception";
-
- } else {
-@@ -88,7 +88,7 @@ erb_report_error(struct session *ses, in
-
- epath = rb_class_path(eclass);
- snprintf(buff, MAX_STR_LEN, "%s: %s",
-- RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
-+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
-
- p = strchr(buff, '\n');
- if (p) *p = '\0';
-@@ -115,7 +115,7 @@ erb_module_message(VALUE self, VALUE str
- unsigned char *message, *line_end;
-
- str = rb_obj_as_string(str);
-- message = memacpy(RSTRING(str)->ptr, RSTRING(str)->len);
-+ message = memacpy(RSTRING_PTR(str), RSTRING_LEN(str));
- if (!message) return Qnil;
-
- line_end = strchr(message, '\n');
-@@ -162,8 +162,8 @@ erb_stdout_p(int argc, VALUE *argv, VALU
- * the inspect() method, which adds quotes to the strings, so
- * gently ignore them. */
-
-- ptr = RSTRING(substr)->ptr;
-- len = RSTRING(substr)->len;
-+ ptr = RSTRING_PTR(substr);
-+ len = RSTRING_LEN(substr);
-
- if (*ptr == '"')
- ptr++, len--;
-diff -urp a/src/scripting/ruby/core.h b/src/scripting/ruby/core.h
---- a/src/scripting/ruby/core.h 2009-07-07 13:23:17.000000000 +0100
-+++ b/src/scripting/ruby/core.h 2012-09-10 18:26:25.000000000 +0100
-@@ -7,6 +7,20 @@ struct session;
-
- #include <ruby.h> /* for VALUE */
-
-+#ifndef RSTRING_LEN
-+#define RSTRING_LEN(string) (RSTRING(string)->len)
-+#endif
-+
-+#ifndef RSTRING_PTR
-+#define RSTRING_PTR(string) (RSTRING(string)->ptr)
-+#endif
-+
-+#ifdef HAVE_RB_ERRINFO
-+#define RB_ERRINFO (rb_errinfo())
-+#else
-+#define RB_ERRINFO (ruby_errinfo)
-+#endif
-+
- VALUE erb_module;
-
- void alert_ruby_error(struct session *ses, unsigned char *msg);
-diff -urp a/src/scripting/ruby/hooks.c b/src/scripting/ruby/hooks.c
---- a/src/scripting/ruby/hooks.c 2009-07-07 13:23:17.000000000 +0100
-+++ b/src/scripting/ruby/hooks.c 2012-09-10 17:53:48.000000000 +0100
-@@ -83,7 +83,7 @@ script_hook_goto_url(va_list ap, void *d
- {
- unsigned char *new_url;
-
-- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (new_url) {
- mem_free_set(url, new_url);
- }
-@@ -126,7 +126,7 @@ script_hook_follow_url(va_list ap, void
- {
- unsigned char *new_url;
-
-- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (new_url) {
- mem_free_set(url, new_url);
- }
-@@ -170,9 +170,9 @@ script_hook_pre_format_html(va_list ap,
- switch (rb_type(result)) {
- case T_STRING:
- {
-- int len = RSTRING(result)->len;
-+ int len = RSTRING_LEN(result);
-
-- add_fragment(cached, 0, RSTRING(result)->ptr, len);
-+ add_fragment(cached, 0, RSTRING_PTR(result), len);
- normalize_cache_entry(cached, len);
-
- break;
-@@ -216,7 +216,7 @@ script_hook_get_proxy(va_list ap, void *
- {
- unsigned char *proxy;
-
-- proxy = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ proxy = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (proxy) {
- mem_free_set(new_proxy_url, proxy);
- }
diff --git a/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch b/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch
deleted file mode 100644
index ee2e5e8d633f..000000000000
--- a/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch
+++ /dev/null
@@ -1,124 +0,0 @@
---- a/src/scripting/smjs/action_object.c 2012-06-28 11:46:58.000000000 -0400
-+++ b/src/scripting/smjs/action_object.c 2012-06-28 11:52:42.000000000 -0400
-@@ -50,7 +50,7 @@
- assert(smjs_ctx);
- if_assert_failed return JS_FALSE;
-
-- value = JS_FALSE;
-+ value = JSVAL_FALSE;
-
- if (JS_TRUE != JS_ValueToObject(ctx, argv[-2], &fn_obj)) {
- JS_SET_RVAL(ctx, rval, value);
-@@ -76,7 +76,7 @@
-
- do_action(hop->ses, hop->action_id, 1);
-
-- value = JS_TRUE;
-+ value = JSVAL_TRUE;
- JS_SET_RVAL(ctx, rval, value);
-
- return JS_TRUE;
---- a/src/scripting/smjs/bookmarks.c 2012-06-28 11:57:40.000000000 -0400
-+++ b/src/scripting/smjs/bookmarks.c 2012-06-28 12:08:20.000000000 -0400
-@@ -250,11 +250,20 @@
-
- /* @bookmark_folder_class.getProperty */
- static JSBool
-+#if JS_VERSION >= 185
-+bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp)
-+#else
- bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp)
-+#endif
- {
- struct bookmark *bookmark;
- struct bookmark *folder;
- unsigned char *title = NULL;
-+#if JS_VERSION >= 185
-+ jsval id;
-+ if (!JS_IdToValue(ctx,iid,&id))
-+ return JS_FALSE;
-+#endif
-
- /* This can be called if @obj if not itself an instance of the
- * appropriate class but has one in its prototype chain. Fail
---- a/src/scripting/smjs/elinks_object.c 2012-06-28 12:11:15.000000000 -0400
-+++ b/src/scripting/smjs/elinks_object.c 2012-06-28 12:14:50.000000000 -0400
-@@ -185,7 +185,7 @@
- method, rval))
- return JS_FALSE;
-
-- if (JSVAL_VOID == *rval)
-+ if (JSVAL_IS_VOID(*rval))
- return JS_FALSE;
-
- return JS_CallFunctionValue(smjs_ctx, smjs_elinks_object,
---- a/src/scripting/smjs/globhist.c 2012-06-28 12:20:25.000000000 -0400
-+++ b/src/scripting/smjs/globhist.c 2012-06-28 12:20:15.000000000 -0400
-@@ -201,11 +201,20 @@
-
- /* @smjs_globhist_class.getProperty */
- static JSBool
--smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp)
-+#if JS_VERSION >= 185
-+smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp)
-+#else
-+smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp)
-+#endif
- {
- JSObject *jsobj;
- unsigned char *uri_string;
- struct global_history_item *history_item;
-+#if JS_VERSION >= 185
-+ jsval id;
-+ if (!JS_IdToValue(ctx,iid,&id))
-+ return JS_FALSE;
-+#endif
-
- uri_string = JS_EncodeString(ctx, JS_ValueToString(ctx, id));
- if (!uri_string) goto ret_null;
---- a/src/scripting/smjs/keybinding.c 2012-06-28 12:21:39.000000000 -0400
-+++ b/src/scripting/smjs/keybinding.c.new 2012-06-28 12:48:00.000000000 -0400
-@@ -17,11 +17,20 @@
-
- /* @keymap_class.getProperty */
- static JSBool
--keymap_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp)
-+#if JS_VERSION >= 185
-+keymap_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp)
-+#else
-+keymap_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp)
-+#endif
- {
- unsigned char *action_str;
- const unsigned char *keystroke_str;
- int *data;
-+#if JS_VERSION >= 185
-+ jsval id;
-+ if (!JS_IdToValue(ctx,iid,&id))
-+ return JS_FALSE;
-+#endif
-
- /* This can be called if @obj if not itself an instance of the
- * appropriate class but has one in its prototype chain. Fail
-@@ -70,11 +79,20 @@
-
- /* @keymap_class.setProperty */
- static JSBool
--keymap_set_property(JSContext *ctx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
-+#if JS_VERSION >= 185
-+keymap_set_property(JSContext *ctx, JSObject *obj, jsid iid, JSBool strict, jsval *vp)
-+#else
-+keymap_set_property(JSContext *ctx, JSObject *obj, jsval id, JSBool strict, jsval *vp)
-+#endif
- {
- int *data;
- unsigned char *keymap_str;
- const unsigned char *keystroke_str;
-+#if JS_VERSION >= 185
-+ jsval id;
-+ if (!JS_IdToValue(ctx,iid,&id))
-+ return JS_FALSE;
-+#endif
-
- /* This can be called if @obj if not itself an instance of the
- * appropriate class but has one in its prototype chain. Fail
diff --git a/www-client/elinks/files/elinks-0.13-ruby.patch b/www-client/elinks/files/elinks-0.13-ruby.patch
deleted file mode 100644
index a716439b5124..000000000000
--- a/www-client/elinks/files/elinks-0.13-ruby.patch
+++ /dev/null
@@ -1,183 +0,0 @@
---- a/config/m4/ruby.m4
-+++ b/config/m4/ruby.m4
-@@ -32,36 +32,40 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
- if test "$CONFIG_SCRIPTING_RUBY" != "no"; then
-
- AC_MSG_CHECKING(Ruby version)
-- if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION or RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then
-+ if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION rescue RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then
- ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'`
- AC_MSG_RESULT($ruby_version)
-
- AC_MSG_CHECKING(for Ruby header files)
-- rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-+ rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print RbConfig::CONFIG[["rubyhdrdir"]] || RbConfig::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
-
- if test "X$rubyhdrdir" != "X"; then
- AC_MSG_RESULT($rubyhdrdir)
- RUBY_CFLAGS="-I$rubyhdrdir"
-- rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
-+ rubyarch=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["arch"]]'`
-+ if test -d "$rubyhdrdir/$rubyarch"; then
-+ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
-+ fi
-+ rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LIBS"]]'`
-
- if test "X$rubylibs" != "X"; then
- RUBY_LIBS="$rubylibs"
- fi
-
-- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
-+ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["LIBRUBYARG"]])'`
-
- if test -f "$rubyhdrdir/$librubyarg"; then
- librubyarg="$rubyhdrdir/$librubyarg"
-
- else
-- rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
-+ rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["libdir"]])'`
- if test -f "$rubylibdir/$librubyarg"; then
- librubyarg="$rubylibdir/$librubyarg"
- elif test "$librubyarg" = "libruby.a"; then
- dnl required on Mac OS 10.3 where libruby.a doesn't exist
- librubyarg="-lruby"
- else
-- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
-+ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{RbConfig.expand(RbConfig::CONFIG[\"libdir\"])}')"`
- fi
- fi
-
-@@ -69,7 +73,7 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
- RUBY_LIBS="$librubyarg $RUBY_LIBS"
- fi
-
-- rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
-+ rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LDFLAGS"]]'`
- if test "X$rubyldflags" != "X"; then
- LDFLAGS="$rubyldflags $LDFLAGS"
- fi
-@@ -86,6 +90,15 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
- AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
- fi
- fi
-+ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
-+ AC_MSG_CHECKING([for rb_errinfo])
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ruby.h>]], [[rb_errinfo();]])],have_rb_errinfo="yes",have_rb_errinfo="no")
-+ AC_MSG_RESULT($have_rb_errinfo)
-+ if test "$have_rb_errinfo" = "yes"; then
-+ AC_DEFINE([HAVE_RB_ERRINFO], [1],
-+ [Define to 1 if you have the `rb_errinfo' function.])
-+ fi
-+ fi
- fi
-
- EL_RESTORE_FLAGS
---- a/src/scripting/ruby/core.c
-+++ b/src/scripting/ruby/core.c
-@@ -76,10 +76,10 @@ erb_report_error(struct session *ses, int error)
- break;
- case TAG_RAISE:
- case TAG_FATAL:
-- eclass = CLASS_OF(ruby_errinfo);
-- einfo = rb_obj_as_string(ruby_errinfo);
-+ eclass = CLASS_OF(RB_ERRINFO);
-+ einfo = rb_obj_as_string(RB_ERRINFO);
-
-- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) {
-+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) {
- msg = "unhandled exception";
-
- } else {
-@@ -88,7 +88,7 @@ erb_report_error(struct session *ses, int error)
-
- epath = rb_class_path(eclass);
- snprintf(buff, MAX_STR_LEN, "%s: %s",
-- RSTRING(epath)->ptr, RSTRING(einfo)->ptr);
-+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
-
- p = strchr((const char *)buff, '\n');
- if (p) *p = '\0';
-@@ -116,7 +116,7 @@ erb_module_message(VALUE self, VALUE str)
- struct terminal *term;
-
- str = rb_obj_as_string(str);
-- message = memacpy(RSTRING(str)->ptr, RSTRING(str)->len);
-+ message = memacpy(RSTRING_PTR(str), RSTRING_PTR(str));
- if (!message) return Qnil;
-
- line_end = strchr((const char *)message, '\n');
-@@ -165,8 +165,8 @@ erb_stdout_p(int argc, VALUE *argv, VALUE self)
- * the inspect() method, which adds quotes to the strings, so
- * gently ignore them. */
-
-- ptr = RSTRING(substr)->ptr;
-- len = RSTRING(substr)->len;
-+ ptr = RSTRING_PTR(substr);
-+ len = RSTRING_LEN(substr);
-
- if (*ptr == '"')
- ptr++, len--;
---- a/src/scripting/ruby/core.h
-+++ b/src/scripting/ruby/core.h
-@@ -7,6 +7,20 @@ struct session;
-
- #include <ruby.h> /* for VALUE */
-
-+#ifndef RSTRING_LEN
-+#define RSTRING_LEN(string) (RSTRING(string)->len)
-+#endif
-+
-+#ifndef RSTRING_PTR
-+#define RSTRING_PTR(string) (RSTRING(string)->ptr)
-+#endif
-+
-+#ifdef HAVE_RB_ERRINFO
-+#define RB_ERRINFO (rb_errinfo())
-+#else
-+#define RB_ERRINFO (ruby_errinfo)
-+#endif
-+
- VALUE erb_module;
-
- void alert_ruby_error(struct session *ses, unsigned char *msg);
---- a/src/scripting/ruby/hooks.c
-+++ b/src/scripting/ruby/hooks.c
-@@ -83,7 +83,7 @@ script_hook_goto_url(va_list ap, void *data)
- {
- unsigned char *new_url;
-
-- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (new_url) {
- mem_free_set(url, new_url);
- }
-@@ -126,7 +126,7 @@ script_hook_follow_url(va_list ap, void *data)
- {
- unsigned char *new_url;
-
-- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (new_url) {
- mem_free_set(url, new_url);
- }
-@@ -170,9 +170,9 @@ script_hook_pre_format_html(va_list ap, void *data)
- switch (rb_type(result)) {
- case T_STRING:
- {
-- int len = RSTRING(result)->len;
-+ int len = RSTRING_LEN(result);
-
-- add_fragment(cached, 0, RSTRING(result)->ptr, len);
-+ add_fragment(cached, 0, RSTRING_PTR(result), len);
- normalize_cache_entry(cached, len);
-
- break;
-@@ -216,7 +216,7 @@ script_hook_get_proxy(va_list ap, void *data)
- {
- unsigned char *proxy;
-
-- proxy = memacpy(RSTRING(result)->ptr, RSTRING(result)->len);
-+ proxy = memacpy(RSTRING_PTR(result), RSTRING_LEN(result));
- if (proxy) {
- mem_free_set(new_proxy_url, proxy);
- }