Date: Monday, December 28, 2015 @ 22:50:39 Author: foutrelis Revision: 154715
archrelease: copy trunk to community-staging-i686, community-staging-x86_64 Added: clearsilver/repos/community-staging-i686/ clearsilver/repos/community-staging-i686/PKGBUILD (from rev 154714, clearsilver/trunk/PKGBUILD) clearsilver/repos/community-staging-i686/c99.patch (from rev 154714, clearsilver/trunk/c99.patch) clearsilver/repos/community-staging-i686/clearsilver-ruby-1.9.patch (from rev 154714, clearsilver/trunk/clearsilver-ruby-1.9.patch) clearsilver/repos/community-staging-x86_64/ clearsilver/repos/community-staging-x86_64/PKGBUILD (from rev 154714, clearsilver/trunk/PKGBUILD) clearsilver/repos/community-staging-x86_64/c99.patch (from rev 154714, clearsilver/trunk/c99.patch) clearsilver/repos/community-staging-x86_64/clearsilver-ruby-1.9.patch (from rev 154714, clearsilver/trunk/clearsilver-ruby-1.9.patch) -----------------------------------------------------+ community-staging-i686/PKGBUILD | 79 +++++ community-staging-i686/c99.patch | 23 + community-staging-i686/clearsilver-ruby-1.9.patch | 244 ++++++++++++++++++ community-staging-x86_64/PKGBUILD | 79 +++++ community-staging-x86_64/c99.patch | 23 + community-staging-x86_64/clearsilver-ruby-1.9.patch | 244 ++++++++++++++++++ 6 files changed, 692 insertions(+) Copied: clearsilver/repos/community-staging-i686/PKGBUILD (from rev 154714, clearsilver/trunk/PKGBUILD) =================================================================== --- community-staging-i686/PKGBUILD (rev 0) +++ community-staging-i686/PKGBUILD 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,79 @@ +# $Id$ +# Maintainer: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Maintainer : Aaron Griffin <aa...@archlinux.org> +# Contributor: William Rea <sillywi...@gmail.com> + +pkgname=clearsilver +pkgver=0.10.5 +pkgrel=19 +pkgdesc="clearsilver is a fast, powerful, and language-neutral HTML template system" +arch=('i686' 'x86_64') +url='http://www.clearsilver.net' +license=('custom') +depends=('python2' 'perl' 'ruby' 'java-runtime') +makedepends=('java-environment') +options=('!emptydirs' 'staticlibs') +source=("http://www.clearsilver.net/downloads/$pkgname-$pkgver.tar.gz" + "clearsilver-ruby-1.9.patch" + "c99.patch") +md5sums=('b8c0c7fbe0ef5e06e0c935f134304d44' + 'd9db4e5985254e1b0d63e9ff042773f4' + '18b9bf6755786f202b25477b5e882792') + +prepare() { + cd $srcdir/$pkgname-$pkgver + sed -i "s@/usr/local/bin/python@/usr/bin/env python2@g" scripts/document.py + sed -i "s...@install.rb inst...@install.rb install --prefix=$pkgdir@g" ruby/Makefile + patch -p1 <$srcdir/clearsilver-ruby-1.9.patch + patch -p1 <$srcdir/c99.patch + patch -p0 ruby/install.rb <<EOF +71,73c71,73 +< siteruby = subprefix.call(c['sitedir']) +< versite = subprefix.call(c['sitelibdir']) +< sodir = subprefix.call(c['sitearchdir']) +--- +> siteruby = subprefix.call(c['vendordir']) +> versite = subprefix.call(c['vendorlibdir']) +> sodir = subprefix.call(c['vendorarchdir']) +EOF + sed -i 's|LIBRARIES = inserted + LIBRARIES|LIBRARIES = LIBRARIES + inserted|' python/setup.py + + # fix for ruby 2.2 + sed -i 's|::Config::|RbConfig::|g' ruby/install.rb + if [ $CARCH == "x86_64" ]; then + sed -i 's|-2128917020|2166050276|' cs/test_crc.cs.gold + fi +} + +build() { + cd $srcdir/$pkgname-$pkgver + export PERL_MM_OPT='INSTALLDIRS=vendor' + ./configure --disable-csharp --prefix=/usr --with-python=/usr/bin/python2 + make +} + +check() { + cd $srcdir/$pkgname-$pkgver + (cd ruby && make testrb) + (cd perl && make test) +} + +package() { + cd $srcdir/$pkgname-$pkgver + make PREFIX=$pkgdir DESTDIR=$pkgdir install + + install -Dm644 CS_LICENSE $pkgdir/usr/share/licenses/clearsilver/license.txt + mv $pkgdir/usr/man/man3/* $pkgdir/usr/share/man/man3/ + rm -rf $pkgdir/usr/man + + find $pkgdir -name '.packlist' -delete + find $pkgdir -name '*.pod' -delete + +# template start; name=perl-binary-module-dependency; version=1; +if [[ $(find "$pkgdir/usr/lib/perl5/" -name "*.so") ]]; then + _perlver_min=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]);') + _perlver_max=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]+1);') + depends+=("perl>=$_perlver_min" "perl<$_perlver_max") +fi +# template end; +} Copied: clearsilver/repos/community-staging-i686/c99.patch (from rev 154714, clearsilver/trunk/c99.patch) =================================================================== --- community-staging-i686/c99.patch (rev 0) +++ community-staging-i686/c99.patch 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,23 @@ +diff -wbBur clearsilver-0.10.5/util/neo_err.h clearsilver-0.10.5.my/util/neo_err.h +--- clearsilver-0.10.5/util/neo_err.h 2007-07-12 07:09:09.000000000 +0400 ++++ clearsilver-0.10.5.my/util/neo_err.h 2015-06-05 19:06:34.961297962 +0300 +@@ -84,9 +84,6 @@ + * NEOERR fails + */ + #if defined(USE_C99_VARARG_MACROS) +-#define nerr_raise(e,f,...) \ +- nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) +-#elif defined(USE_GNUC_VARARG_MACROS) + #define nerr_raise(e,f,a...) \ + nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,##a) + #endif +@@ -98,9 +95,6 @@ + + + #if defined(USE_C99_VARARG_MACROS) +-#define nerr_raise_errno(e,f,...) \ +- nerr_raise_errnof(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) +-#elif defined(USE_GNUC_VARARG_MACROS) + #define nerr_raise_errno(e,f,a...) \ + nerr_raise_errnof(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,##a) + #endif Copied: clearsilver/repos/community-staging-i686/clearsilver-ruby-1.9.patch (from rev 154714, clearsilver/trunk/clearsilver-ruby-1.9.patch) =================================================================== --- community-staging-i686/clearsilver-ruby-1.9.patch (rev 0) +++ community-staging-i686/clearsilver-ruby-1.9.patch 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,244 @@ +diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c +--- clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c 2007-02-16 01:31:39.000000000 +0100 ++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c 2010-09-18 18:20:40.088619662 +0200 +@@ -19,7 +19,7 @@ + + VALUE r_neo_error(NEOERR *err); + +-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr) ++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val))) + + static void c_free (CSPARSE *csd) { + if (csd) { +@@ -57,7 +57,7 @@ + char *path; + + Data_Get_Struct(self, CSPARSE, cs); +- path = STR2CSTR(oPath); ++ path = StringValuePtr(oPath); + + err = cs_parse_file (cs, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -73,7 +73,8 @@ + long l; + + Data_Get_Struct(self, CSPARSE, cs); +- s = rb_str2cstr(oString, &l); ++ s = StringValuePtr(oString); ++ l = RSTRING_LEN(oString); + + /* This should be changed to use memory from the gc */ + ms = strdup(s); +diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_util.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c +--- clearsilver-0.10.5/ruby/ext/hdf/neo_util.c 2007-02-16 01:32:03.000000000 +0100 ++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c 2010-09-18 18:24:05.928058973 +0200 +@@ -10,7 +10,7 @@ + */ + + #include <ruby.h> +-#include <version.h> ++//#include <version.h> + #include "ClearSilver.h" + #include "neo_ruby.h" + +@@ -19,7 +19,7 @@ + VALUE eHdfError; + static ID id_to_s; + +-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr) ++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val))) + + VALUE r_neo_error (NEOERR *err) + { +@@ -96,7 +96,7 @@ + VALUE rv; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + rv = rb_hash_new(); + +@@ -118,12 +118,12 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- name = STR2CSTR(oName); +- key = STR2CSTR(oKey); ++ name = StringValuePtr(oName); ++ key = StringValuePtr(oKey); + if ( NIL_P(oValue) ) + value = NULL; + else +- value = STR2CSTR(oValue); ++ value = StringValuePtr(oValue); + + err = hdf_set_attr(hdfh->hdf, name, key, value); + if (err) Srb_raise(r_neo_error(err)); +@@ -134,22 +134,22 @@ + static VALUE h_set_value (VALUE self, VALUE oName, VALUE oValue) + { + t_hdfh *hdfh; +- char *name, *value; ++ VALUE name, value; + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); + + if ( TYPE(oName) == T_STRING ) +- name=STR2CSTR(oName); ++ name=oName; + else +- name=STR2CSTR(rb_funcall(oName,id_to_s,0)); ++ name=rb_funcall(oName,id_to_s,0); + + if ( TYPE(oValue) == T_STRING ) +- value=STR2CSTR(oValue); ++ value=oValue; + else +- value=STR2CSTR(rb_funcall(oValue,id_to_s,0)); ++ value=rb_funcall(oValue,id_to_s,0); + +- err = hdf_set_value (hdfh->hdf, name, value); ++ err = hdf_set_value (hdfh->hdf, StringValuePtr(name), StringValuePtr(value)); + + if (err) Srb_raise(r_neo_error(err)); + +@@ -165,7 +165,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + d=NUM2INT(oDefault); + + r = hdf_get_int_value (hdfh->hdf, name, d); +@@ -181,8 +181,8 @@ + VALUE rv; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); +- d=STR2CSTR(oDefault); ++ name=StringValuePtr(oName); ++ d=StringValuePtr(oDefault); + + r = hdf_get_value (hdfh->hdf, name, d); + rv = rb_str_new2(r); +@@ -197,7 +197,7 @@ + char *name; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + r = hdf_get_child (hdfh->hdf, name); + if (r == NULL) { +@@ -219,7 +219,7 @@ + char *name; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + r = hdf_get_obj (hdfh->hdf, name); + if (r == NULL) { +@@ -243,7 +243,7 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + err = hdf_get_node (hdfh->hdf, name, &r); + if (err) +@@ -384,7 +384,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_read_file (hdfh->hdf, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -400,7 +400,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_write_file (hdfh->hdf, path); + +@@ -417,7 +417,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_write_file_atomic (hdfh->hdf, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -432,7 +432,7 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + err = hdf_remove_tree (hdfh->hdf, name); + if (err) Srb_raise(r_neo_error(err)); +@@ -489,7 +489,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- s = STR2CSTR(oString); ++ s = StringValuePtr(oString); + ignore = NUM2INT(oIgnore); + + err = hdf_read_string_ignore (hdfh->hdf, s, ignore); +@@ -508,7 +508,7 @@ + Data_Get_Struct(self, t_hdfh, hdfh); + Data_Get_Struct(oHdfSrc, t_hdfh, hdfh_src); + +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + if (hdfh_src == NULL) rb_raise(eHdfError, "second argument must be an Hdf object"); + +@@ -526,8 +526,8 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- src = STR2CSTR(oSrc); +- dest = STR2CSTR(oDest); ++ src = StringValuePtr(oSrc); ++ dest = StringValuePtr(oDest); + + err = hdf_set_symlink (hdfh->hdf, src, dest); + if (err) Srb_raise(r_neo_error(err)); +@@ -545,9 +545,10 @@ + char *ret = NULL; + NEOERR *err; + +- s = rb_str2cstr(oString,&buflen); +- esc_char = STR2CSTR(oEsc_char); +- escape = STR2CSTR(oEsc); ++ s = StringValuePtr(oString); ++ buflen = RSTRING_LEN(oString); ++ esc_char = StringValuePtr(oEsc_char); ++ escape = StringValuePtr(oEsc); + + err = neos_escape((UINT8*)s, buflen, esc_char[0], escape, &ret); + +@@ -566,8 +567,9 @@ + char *esc_char; + long buflen; + +- s = rb_str2cstr(oString,&buflen); +- esc_char = STR2CSTR(oEsc_char); ++ s = StringValuePtr(oString); ++ buflen = RSTRING_LEN(oString); ++ esc_char = StringValuePtr(oEsc_char); + + /* This should be changed to use memory from the gc */ + copy = strdup(s); Copied: clearsilver/repos/community-staging-x86_64/PKGBUILD (from rev 154714, clearsilver/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,79 @@ +# $Id$ +# Maintainer: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Maintainer : Aaron Griffin <aa...@archlinux.org> +# Contributor: William Rea <sillywi...@gmail.com> + +pkgname=clearsilver +pkgver=0.10.5 +pkgrel=19 +pkgdesc="clearsilver is a fast, powerful, and language-neutral HTML template system" +arch=('i686' 'x86_64') +url='http://www.clearsilver.net' +license=('custom') +depends=('python2' 'perl' 'ruby' 'java-runtime') +makedepends=('java-environment') +options=('!emptydirs' 'staticlibs') +source=("http://www.clearsilver.net/downloads/$pkgname-$pkgver.tar.gz" + "clearsilver-ruby-1.9.patch" + "c99.patch") +md5sums=('b8c0c7fbe0ef5e06e0c935f134304d44' + 'd9db4e5985254e1b0d63e9ff042773f4' + '18b9bf6755786f202b25477b5e882792') + +prepare() { + cd $srcdir/$pkgname-$pkgver + sed -i "s@/usr/local/bin/python@/usr/bin/env python2@g" scripts/document.py + sed -i "s...@install.rb inst...@install.rb install --prefix=$pkgdir@g" ruby/Makefile + patch -p1 <$srcdir/clearsilver-ruby-1.9.patch + patch -p1 <$srcdir/c99.patch + patch -p0 ruby/install.rb <<EOF +71,73c71,73 +< siteruby = subprefix.call(c['sitedir']) +< versite = subprefix.call(c['sitelibdir']) +< sodir = subprefix.call(c['sitearchdir']) +--- +> siteruby = subprefix.call(c['vendordir']) +> versite = subprefix.call(c['vendorlibdir']) +> sodir = subprefix.call(c['vendorarchdir']) +EOF + sed -i 's|LIBRARIES = inserted + LIBRARIES|LIBRARIES = LIBRARIES + inserted|' python/setup.py + + # fix for ruby 2.2 + sed -i 's|::Config::|RbConfig::|g' ruby/install.rb + if [ $CARCH == "x86_64" ]; then + sed -i 's|-2128917020|2166050276|' cs/test_crc.cs.gold + fi +} + +build() { + cd $srcdir/$pkgname-$pkgver + export PERL_MM_OPT='INSTALLDIRS=vendor' + ./configure --disable-csharp --prefix=/usr --with-python=/usr/bin/python2 + make +} + +check() { + cd $srcdir/$pkgname-$pkgver + (cd ruby && make testrb) + (cd perl && make test) +} + +package() { + cd $srcdir/$pkgname-$pkgver + make PREFIX=$pkgdir DESTDIR=$pkgdir install + + install -Dm644 CS_LICENSE $pkgdir/usr/share/licenses/clearsilver/license.txt + mv $pkgdir/usr/man/man3/* $pkgdir/usr/share/man/man3/ + rm -rf $pkgdir/usr/man + + find $pkgdir -name '.packlist' -delete + find $pkgdir -name '*.pod' -delete + +# template start; name=perl-binary-module-dependency; version=1; +if [[ $(find "$pkgdir/usr/lib/perl5/" -name "*.so") ]]; then + _perlver_min=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]);') + _perlver_max=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]+1);') + depends+=("perl>=$_perlver_min" "perl<$_perlver_max") +fi +# template end; +} Copied: clearsilver/repos/community-staging-x86_64/c99.patch (from rev 154714, clearsilver/trunk/c99.patch) =================================================================== --- community-staging-x86_64/c99.patch (rev 0) +++ community-staging-x86_64/c99.patch 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,23 @@ +diff -wbBur clearsilver-0.10.5/util/neo_err.h clearsilver-0.10.5.my/util/neo_err.h +--- clearsilver-0.10.5/util/neo_err.h 2007-07-12 07:09:09.000000000 +0400 ++++ clearsilver-0.10.5.my/util/neo_err.h 2015-06-05 19:06:34.961297962 +0300 +@@ -84,9 +84,6 @@ + * NEOERR fails + */ + #if defined(USE_C99_VARARG_MACROS) +-#define nerr_raise(e,f,...) \ +- nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) +-#elif defined(USE_GNUC_VARARG_MACROS) + #define nerr_raise(e,f,a...) \ + nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,##a) + #endif +@@ -98,9 +95,6 @@ + + + #if defined(USE_C99_VARARG_MACROS) +-#define nerr_raise_errno(e,f,...) \ +- nerr_raise_errnof(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) +-#elif defined(USE_GNUC_VARARG_MACROS) + #define nerr_raise_errno(e,f,a...) \ + nerr_raise_errnof(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,##a) + #endif Copied: clearsilver/repos/community-staging-x86_64/clearsilver-ruby-1.9.patch (from rev 154714, clearsilver/trunk/clearsilver-ruby-1.9.patch) =================================================================== --- community-staging-x86_64/clearsilver-ruby-1.9.patch (rev 0) +++ community-staging-x86_64/clearsilver-ruby-1.9.patch 2015-12-28 21:50:39 UTC (rev 154715) @@ -0,0 +1,244 @@ +diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c +--- clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c 2007-02-16 01:31:39.000000000 +0100 ++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c 2010-09-18 18:20:40.088619662 +0200 +@@ -19,7 +19,7 @@ + + VALUE r_neo_error(NEOERR *err); + +-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr) ++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val))) + + static void c_free (CSPARSE *csd) { + if (csd) { +@@ -57,7 +57,7 @@ + char *path; + + Data_Get_Struct(self, CSPARSE, cs); +- path = STR2CSTR(oPath); ++ path = StringValuePtr(oPath); + + err = cs_parse_file (cs, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -73,7 +73,8 @@ + long l; + + Data_Get_Struct(self, CSPARSE, cs); +- s = rb_str2cstr(oString, &l); ++ s = StringValuePtr(oString); ++ l = RSTRING_LEN(oString); + + /* This should be changed to use memory from the gc */ + ms = strdup(s); +diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_util.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c +--- clearsilver-0.10.5/ruby/ext/hdf/neo_util.c 2007-02-16 01:32:03.000000000 +0100 ++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c 2010-09-18 18:24:05.928058973 +0200 +@@ -10,7 +10,7 @@ + */ + + #include <ruby.h> +-#include <version.h> ++//#include <version.h> + #include "ClearSilver.h" + #include "neo_ruby.h" + +@@ -19,7 +19,7 @@ + VALUE eHdfError; + static ID id_to_s; + +-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr) ++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val))) + + VALUE r_neo_error (NEOERR *err) + { +@@ -96,7 +96,7 @@ + VALUE rv; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + rv = rb_hash_new(); + +@@ -118,12 +118,12 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- name = STR2CSTR(oName); +- key = STR2CSTR(oKey); ++ name = StringValuePtr(oName); ++ key = StringValuePtr(oKey); + if ( NIL_P(oValue) ) + value = NULL; + else +- value = STR2CSTR(oValue); ++ value = StringValuePtr(oValue); + + err = hdf_set_attr(hdfh->hdf, name, key, value); + if (err) Srb_raise(r_neo_error(err)); +@@ -134,22 +134,22 @@ + static VALUE h_set_value (VALUE self, VALUE oName, VALUE oValue) + { + t_hdfh *hdfh; +- char *name, *value; ++ VALUE name, value; + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); + + if ( TYPE(oName) == T_STRING ) +- name=STR2CSTR(oName); ++ name=oName; + else +- name=STR2CSTR(rb_funcall(oName,id_to_s,0)); ++ name=rb_funcall(oName,id_to_s,0); + + if ( TYPE(oValue) == T_STRING ) +- value=STR2CSTR(oValue); ++ value=oValue; + else +- value=STR2CSTR(rb_funcall(oValue,id_to_s,0)); ++ value=rb_funcall(oValue,id_to_s,0); + +- err = hdf_set_value (hdfh->hdf, name, value); ++ err = hdf_set_value (hdfh->hdf, StringValuePtr(name), StringValuePtr(value)); + + if (err) Srb_raise(r_neo_error(err)); + +@@ -165,7 +165,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + d=NUM2INT(oDefault); + + r = hdf_get_int_value (hdfh->hdf, name, d); +@@ -181,8 +181,8 @@ + VALUE rv; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); +- d=STR2CSTR(oDefault); ++ name=StringValuePtr(oName); ++ d=StringValuePtr(oDefault); + + r = hdf_get_value (hdfh->hdf, name, d); + rv = rb_str_new2(r); +@@ -197,7 +197,7 @@ + char *name; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + r = hdf_get_child (hdfh->hdf, name); + if (r == NULL) { +@@ -219,7 +219,7 @@ + char *name; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + r = hdf_get_obj (hdfh->hdf, name); + if (r == NULL) { +@@ -243,7 +243,7 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name=STR2CSTR(oName); ++ name=StringValuePtr(oName); + + err = hdf_get_node (hdfh->hdf, name, &r); + if (err) +@@ -384,7 +384,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_read_file (hdfh->hdf, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -400,7 +400,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_write_file (hdfh->hdf, path); + +@@ -417,7 +417,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- path=STR2CSTR(oPath); ++ path=StringValuePtr(oPath); + + err = hdf_write_file_atomic (hdfh->hdf, path); + if (err) Srb_raise(r_neo_error(err)); +@@ -432,7 +432,7 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + err = hdf_remove_tree (hdfh->hdf, name); + if (err) Srb_raise(r_neo_error(err)); +@@ -489,7 +489,7 @@ + + Data_Get_Struct(self, t_hdfh, hdfh); + +- s = STR2CSTR(oString); ++ s = StringValuePtr(oString); + ignore = NUM2INT(oIgnore); + + err = hdf_read_string_ignore (hdfh->hdf, s, ignore); +@@ -508,7 +508,7 @@ + Data_Get_Struct(self, t_hdfh, hdfh); + Data_Get_Struct(oHdfSrc, t_hdfh, hdfh_src); + +- name = STR2CSTR(oName); ++ name = StringValuePtr(oName); + + if (hdfh_src == NULL) rb_raise(eHdfError, "second argument must be an Hdf object"); + +@@ -526,8 +526,8 @@ + NEOERR *err; + + Data_Get_Struct(self, t_hdfh, hdfh); +- src = STR2CSTR(oSrc); +- dest = STR2CSTR(oDest); ++ src = StringValuePtr(oSrc); ++ dest = StringValuePtr(oDest); + + err = hdf_set_symlink (hdfh->hdf, src, dest); + if (err) Srb_raise(r_neo_error(err)); +@@ -545,9 +545,10 @@ + char *ret = NULL; + NEOERR *err; + +- s = rb_str2cstr(oString,&buflen); +- esc_char = STR2CSTR(oEsc_char); +- escape = STR2CSTR(oEsc); ++ s = StringValuePtr(oString); ++ buflen = RSTRING_LEN(oString); ++ esc_char = StringValuePtr(oEsc_char); ++ escape = StringValuePtr(oEsc); + + err = neos_escape((UINT8*)s, buflen, esc_char[0], escape, &ret); + +@@ -566,8 +567,9 @@ + char *esc_char; + long buflen; + +- s = rb_str2cstr(oString,&buflen); +- esc_char = STR2CSTR(oEsc_char); ++ s = StringValuePtr(oString); ++ buflen = RSTRING_LEN(oString); ++ esc_char = StringValuePtr(oEsc_char); + + /* This should be changed to use memory from the gc */ + copy = strdup(s);