Date: Mon, 11 Apr 2011 01:44:09 GMT From: Steve Wills <swills@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/156325: [PATCH] fix textproc/ruby-sary with Ruby 1.9 Message-ID: <201104110144.p3B1i9m4089005@red.freebsd.org> Resent-Message-ID: <201104110150.p3B1o91F080090@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 156325 >Category: ports >Synopsis: [PATCH] fix textproc/ruby-sary with Ruby 1.9 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Apr 11 01:50:09 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Steve Wills >Release: >Organization: >Environment: >Description: Try to build textproc/ruby-sary with Ruby 1.9. >How-To-Repeat: >Fix: See attached. This adds a patch obtained from: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-ruby/sary-ruby/files/sary-ruby-1.2.0-ruby19.patch?revision=1.1 This should be noted in the commit message. Patch attached with submission follows: Index: Makefile =================================================================== RCS file: /home/ncvs/ports/textproc/ruby-sary/Makefile,v retrieving revision 1.16 diff -u -r1.16 Makefile --- Makefile 6 Jun 2008 14:04:58 -0000 1.16 +++ Makefile 11 Apr 2011 01:31:32 -0000 @@ -7,7 +7,7 @@ PORTNAME= sary PORTVERSION= 1.2.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc ruby MASTER_SITES= http://sary.sourceforge.net/ PKGNAMEPREFIX= ${RUBY_PKGNAMEPREFIX} Index: files/patch-ruby19 =================================================================== RCS file: files/patch-ruby19 diff -N files/patch-ruby19 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-ruby19 11 Apr 2011 01:30:15 -0000 @@ -0,0 +1,152 @@ +diff -Naur builder.c builder.c +--- builder.c 2005-03-30 07:48:09.000000000 +0900 ++++ builder.c 2010-05-27 20:08:33.000000000 +0900 +@@ -26,7 +26,6 @@ + #include <errno.h> + #include "sary.h" + #include "ruby.h" +-#include "version.h" + + #define GET_Builder(obj, dat) Data_Get_Struct(obj, SaryBuilder, dat) + +@@ -63,21 +62,13 @@ + rb_scan_args(argc, argv, "11", &file_name, &array_name); + + Check_SafeStr(file_name); +-#if RUBY_VERSION_CODE >= 180 + file_name_ptr = StringValuePtr(file_name); +-#else +- file_name_ptr = STR2CSTR(file_name); +-#endif + + if (array_name == Qnil) + builder = sary_builder_new(file_name_ptr); + else { + Check_SafeStr(array_name); +-#if RUBY_VERSION_CODE >= 180 + array_name_ptr = StringValuePtr(array_name); +-#else +- array_name_ptr = STR2CSTR(array_name); +-#endif + builder = sary_builder_new2(file_name_ptr, array_name_ptr); + } + if (builder == NULL) +diff -Naur searcher.c searcher.c +--- searcher.c 2005-03-30 07:48:09.000000000 +0900 ++++ searcher.c 2010-05-27 20:13:17.000000000 +0900 +@@ -27,7 +27,13 @@ + #include <errno.h> + #include "sary.h" + #include "ruby.h" +-#include "version.h" ++ ++#ifndef RARRAY_LEN ++#define RARRAY_LEN(a) RARRAY(a)->len ++#endif ++#ifndef RSTRING_LEN ++#define RSTRING_LEN(str) RSTRING(str)->len ++#endif + + #define GET_Searcher(obj, dat) Data_Get_Struct(obj, SarySearcher, dat) + +@@ -82,21 +88,13 @@ + rb_scan_args(argc, argv, "11", &file_name, &array_name); + + Check_SafeStr(file_name); +-#if RUBY_VERSION_CODE >= 180 + file_name_ptr = StringValuePtr(file_name); +-#else +- file_name_ptr = STR2CSTR(file_name); +-#endif + + if (array_name == Qnil) + searcher = sary_searcher_new(file_name_ptr); + else { + Check_SafeStr(array_name); +-#if RUBY_VERSION_CODE >= 180 + array_name_ptr = StringValuePtr(array_name); +-#else +- array_name_ptr = STR2CSTR(array_name); +-#endif + searcher = sary_searcher_new2(file_name_ptr, array_name_ptr); + } + if (searcher == NULL) +@@ -133,12 +131,8 @@ + GET_Searcher(klass, searcher); + + Check_SafeStr(pattern); +-#if RUBY_VERSION_CODE >= 180 + pat = StringValuePtr(pattern); +- len = RSTRING(pattern)->len; +-#else +- pat = str2cstr(pattern, &len); +-#endif ++ len = RSTRING_LEN(pattern); + + if (sary_searcher_search2(searcher, pat, len)) + return Qtrue; +@@ -157,7 +151,7 @@ + + GET_Searcher(klass, searcher); + +- len = RARRAY(pattern_array)->len; ++ len = RARRAY_LEN(pattern_array); + if (len == 0) { + return Qfalse; + } +@@ -166,11 +160,7 @@ + for (i = 0; i < len; i++) { + pattern = rb_ary_entry(pattern_array, (long)i); + Check_SafeStr(pattern); +-#if RUBY_VERSION_CODE >= 180 + pat[i] = StringValuePtr(pattern); +-#else +- pat[i] = STR2CSTR(pattern); +-#endif + } + + if (sary_searcher_multi_search(searcher, pat, len)) +@@ -189,11 +179,7 @@ + GET_Searcher(klass, searcher); + + Check_SafeStr(pattern); +-#if RUBY_VERSION_CODE >= 180 + pat = StringValuePtr(pattern); +-#else +- pat = STR2CSTR(pattern); +-#endif + + if (sary_searcher_isearch(searcher, pat, NUM2INT(len))) + return Qtrue; +@@ -224,12 +210,8 @@ + GET_Searcher(klass, searcher); + + Check_SafeStr(pattern); +-#if RUBY_VERSION_CODE >= 180 + pat = StringValuePtr(pattern); +- len = RSTRING(pattern)->len; +-#else +- pat = str2cstr(pattern, &len); +-#endif ++ len = RSTRING_LEN(pattern); + + if (sary_searcher_icase_search2(searcher, pat, len)) + return Qtrue; +@@ -275,15 +257,10 @@ + + Check_SafeStr(start_tag); + Check_SafeStr(end_tag); +-#if RUBY_VERSION_CODE >= 180 + stag = StringValuePtr(start_tag); + etag = StringValuePtr(end_tag); +- slen = RSTRING(stag)->len; +- elen = RSTRING(etag)->len; +-#else +- stag = rb_str2cstr(start_tag, &slen); +- etag = rb_str2cstr(end_tag, &elen); +-#endif ++ slen = RSTRING_LEN(stag); ++ elen = RSTRING_LEN(etag); + + region = sary_searcher_get_next_tagged_region2(searcher, stag, slen, + etag, elen, &rlen); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104110144.p3B1i9m4089005>