File 0001-Ruby-replace-obsolete-STR2CSTR-macro-with-StringValu.patch of Package swig

From 9ef1a68a4428fbbba900a1c8ab162fe6fd6ce299 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@suse.de>
Date: Sat, 26 May 2012 18:21:22 +0200
Subject: [PATCH 01/10] Ruby: replace obsolete STR2CSTR macro with
 StringValuePtr

---
 Doc/Manual/Ruby.html                    |    8 ++++----
 Doc/Manual/SWIGDocumentation.html       |    8 ++++----
 Examples/ruby/hashargs/example.i        |    2 +-
 Examples/ruby/multimap/example.i        |    6 +++---
 Examples/test-suite/memberin1.i         |    2 +-
 Examples/test-suite/namespace_typemap.i |    2 +-
 Lib/ruby/argcargv.i                     |    2 +-
 Lib/ruby/rubystrings.swg                |    6 +++---
 8 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/Doc/Manual/Ruby.html b/Doc/Manual/Ruby.html
index 69005c7..775caaa 100644
--- a/Doc/Manual/Ruby.html
+++ b/Doc/Manual/Ruby.html
@@ -4925,7 +4925,7 @@ arguments. For example: </p>
 
 
 <div class="code">
-<pre>%typemap(in) (char *str, int len) {<br> $1 = STR2CSTR($input);<br> $2 = (int) RSTRING($input)-&gt;len;<br>};<br><br>int count(char c, char *str, int len);<br></pre>
+<pre>%typemap(in) (char *str, int len) {<br> $1 = StringValuePtr($input);<br> $2 = (int) RSTRING($input)-&gt;len;<br>};<br><br>int count(char c, char *str, int len);<br></pre>
 
 
 
@@ -7134,7 +7134,7 @@ Ruby_Format_TypeError( "$1_name", "$1_type","$symname", $argnum, $input
     </tr>
 
     <tr>
-      <td style="font-family: monospace;">char * STR2CSTR(String)</td>
+      <td style="font-family: monospace;">char * StringValuePtr(String)</td>
       <td style="font-family: monospace;">SWIG_AsCharPtrAndSize(VALUE, char*, size_t, int* alloc)</td>
     </tr>
 
@@ -7517,7 +7517,7 @@ Array instance to be used as a <tt>char **</tt> object. </p>
 
 
 <div class="code">
-<pre>%module argv<br><br>// This tells SWIG to treat char ** as a special case<br>%typemap(in) char ** {<br> /* Get the length of the array */<br> int size = RARRAY($input)-&gt;len; <br> int i;<br> $1 = (char **) malloc((size+1)*sizeof(char *));<br> /* Get the first element in memory */<br> VALUE *ptr = RARRAY($input)-&gt;ptr; <br> for (i=0; i &lt; size; i++, ptr++)<br> /* Convert Ruby Object String to char* */<br> $1[i]= STR2CSTR(*ptr); <br> $1[i]=NULL; /* End of list */<br>}<br><br>// This cleans up the char ** array created before <br>// the function call<br><br>%typemap(freearg) char ** {<br> free((char *) $1);<br>}<br><br>// Now a test function<br>%inline %{<br>int print_args(char **argv) {<br> int i = 0;<br> while (argv[i]) {<br> printf("argv[%d] = %s\n", i,argv[i]);<br> i++;<br> }<br> return i;<br>}<br>%}<br><br></pre>
+<pre>%module argv<br><br>// This tells SWIG to treat char ** as a special case<br>%typemap(in) char ** {<br> /* Get the length of the array */<br> int size = RARRAY($input)-&gt;len; <br> int i;<br> $1 = (char **) malloc((size+1)*sizeof(char *));<br> /* Get the first element in memory */<br> VALUE *ptr = RARRAY($input)-&gt;ptr; <br> for (i=0; i &lt; size; i++, ptr++)<br> /* Convert Ruby Object String to char* */<br> $1[i]= StringValuePtr(*ptr); <br> $1[i]=NULL; /* End of list */<br>}<br><br>// This cleans up the char ** array created before <br>// the function call<br><br>%typemap(freearg) char ** {<br> free((char *) $1);<br>}<br><br>// Now a test function<br>%inline %{<br>int print_args(char **argv) {<br> int i = 0;<br> while (argv[i]) {<br> printf("argv[%d] = %s\n", i,argv[i]);<br> i++;<br> }<br> return i;<br>}<br>%}<br><br></pre>
 
 
 
@@ -7795,7 +7795,7 @@ equivalents and store them in our local C arrays: </p>
 
 
 <div class="code">
-<pre>%typemap(in) (int nattributes, const char **names, const int *values)<br> (VALUE keys_arr, int i, VALUE key, VALUE val) {<br> Check_Type($input, T_HASH);<br> $1 = NUM2INT(rb_funcall($input, rb_intern("size"), 0, NULL));<br> $2 = NULL;<br> $3 = NULL;<br> if ($1 &gt; 0) {<br> $2 = (char **) malloc($1*sizeof(char *));<br> $3 = (int *) malloc($1*sizeof(int));<br> keys_arr = rb_funcall($input, rb_intern("keys"), 0, NULL);<br> for (i = 0; i &lt; $1; i++) {<br> key = rb_ary_entry(keys_arr, i);<br> val = rb_hash_aref($input, key);<br> Check_Type(key, T_STRING);<br> Check_Type(val, T_FIXNUM);<br> <b>$2[i] = STR2CSTR(key);<br> $3[i] = NUM2INT(val);</b><br>}<br>}<br>}<br></pre>
+<pre>%typemap(in) (int nattributes, const char **names, const int *values)<br> (VALUE keys_arr, int i, VALUE key, VALUE val) {<br> Check_Type($input, T_HASH);<br> $1 = NUM2INT(rb_funcall($input, rb_intern("size"), 0, NULL));<br> $2 = NULL;<br> $3 = NULL;<br> if ($1 &gt; 0) {<br> $2 = (char **) malloc($1*sizeof(char *));<br> $3 = (int *) malloc($1*sizeof(int));<br> keys_arr = rb_funcall($input, rb_intern("keys"), 0, NULL);<br> for (i = 0; i &lt; $1; i++) {<br> key = rb_ary_entry(keys_arr, i);<br> val = rb_hash_aref($input, key);<br> Check_Type(key, T_STRING);<br> Check_Type(val, T_FIXNUM);<br> <b>$2[i] = StringValuePtr(key);<br> $3[i] = NUM2INT(val);</b><br>}<br>}<br>}<br></pre>
 
 
 
diff --git a/Doc/Manual/SWIGDocumentation.html b/Doc/Manual/SWIGDocumentation.html
index 85100fa..42f84c5 100644
--- a/Doc/Manual/SWIGDocumentation.html
+++ b/Doc/Manual/SWIGDocumentation.html
@@ -46771,7 +46771,7 @@ const int</TT>. In addition, the typemap system follows <TT>typedef</TT>
  example:</P>
 <DIV class="code">
 <PRE>%typemap(in) (char *str, int len) {
-<BR> $1 = STR2CSTR($input);
+<BR> $1 = StringValuePtr($input);
 <BR> $2 = (int) RSTRING($input)-&gt;len;
 <BR>};
 <BR>
@@ -47405,7 +47405,7 @@ style="font-family: monospace;">SWIG_AsVal_unsigned_SS_long(VALUE,
  unsigned long*)</TD></TR>
 <TR><TD style="font-family: monospace;">char NUM2CHR(Numeric or String)</TD><TD
 style="font-family: monospace;">SWIG_AsVal_char(VALUE, int*)</TD></TR>
-<TR><TD style="font-family: monospace;">char * STR2CSTR(String)</TD><TD style="font-family: monospace;">
+<TR><TD style="font-family: monospace;">char * StringValuePtr(String)</TD><TD style="font-family: monospace;">
 SWIG_AsCharPtrAndSize(VALUE, char*, size_t, int* alloc)</TD></TR>
 <TR><TD style="font-family: monospace;">char * rb_str2cstr(String,
  int*length)</TD><TD style="font-family: monospace;"></TD></TR>
@@ -47518,7 +47518,7 @@ printf()</TT>.</DIV>
 <BR> VALUE *ptr = RARRAY($input)-&gt;ptr; 
 <BR> for (i=0; i &lt; size; i++, ptr++)
 <BR> /* Convert Ruby Object String to char* */
-<BR> $1[i]= STR2CSTR(*ptr); 
+<BR> $1[i]= StringValuePtr(*ptr); 
 <BR> $1[i]=NULL; /* End of list */
 <BR>}
 <BR>
@@ -47732,7 +47732,7 @@ NULL</TT> and set the stage for extracting the keys and values from the
 <BR> val = rb_hash_aref($input, key);
 <BR> Check_Type(key, T_STRING);
 <BR> Check_Type(val, T_FIXNUM);
-<BR> <B>$2[i] = STR2CSTR(key);
+<BR> <B>$2[i] = StringValuePtr(key);
 <BR> $3[i] = NUM2INT(val);</B>
 <BR>}
 <BR>}
diff --git a/Examples/ruby/hashargs/example.i b/Examples/ruby/hashargs/example.i
index 159bbd3..10e209e 100644
--- a/Examples/ruby/hashargs/example.i
+++ b/Examples/ruby/hashargs/example.i
@@ -14,7 +14,7 @@
       val = rb_hash_aref($input, key);
       Check_Type(key, T_STRING);
       Check_Type(val, T_FIXNUM);
-      $2[i] = STR2CSTR(key);
+      $2[i] = StringValuePtr(key);
       $3[i] = NUM2INT(val);
     }
   }
diff --git a/Examples/ruby/multimap/example.i b/Examples/ruby/multimap/example.i
index f68422a..34f0b89 100644
--- a/Examples/ruby/multimap/example.i
+++ b/Examples/ruby/multimap/example.i
@@ -31,7 +31,7 @@ extern int    gcd(int x, int y);
       free($2);
       SWIG_exception(SWIG_ValueError, "List items must be strings");
     }
-    $2[i] = STR2CSTR(s);
+    $2[i] = StringValuePtr(s);
   }
   $2[i] = 0;
 }
@@ -46,7 +46,7 @@ extern int gcdmain(int argc, char *argv[]);
   if (TYPE($input) != T_STRING) {
     SWIG_exception(SWIG_ValueError, "Expected a string");
   }
-  $1 = STR2CSTR($input);
+  $1 = StringValuePtr($input);
   $2 = RSTRING_LEN($input);
 }
 
@@ -60,7 +60,7 @@ extern int count(char *bytes, int len, char c);
   if (TYPE($input) != T_STRING) {
     SWIG_exception(SWIG_ValueError,"Expected a string");
   }
-  temp = STR2CSTR($input);
+  temp = StringValuePtr($input);
   $2 = RSTRING_LEN($input);
   $1 = (char *) malloc($2+1);
   memmove($1,temp,$2);
diff --git a/Examples/test-suite/memberin1.i b/Examples/test-suite/memberin1.i
index 9203230..ece489e 100644
--- a/Examples/test-suite/memberin1.i
+++ b/Examples/test-suite/memberin1.i
@@ -47,7 +47,7 @@ public:
 #ifdef SWIGRUBY
 %typemap(in) String {
   Check_Type($input, T_STRING);
-  $1 = String(STR2CSTR($input));
+  $1 = String(StringValuePtr($input));
 }
 #endif
 
diff --git a/Examples/test-suite/namespace_typemap.i b/Examples/test-suite/namespace_typemap.i
index f25f885..8ead78c 100644
--- a/Examples/test-suite/namespace_typemap.i
+++ b/Examples/test-suite/namespace_typemap.i
@@ -100,7 +100,7 @@ namespace test {
 #endif
 #ifdef SWIGRUBY
 	%typemap(in) string_class * {
-	    $1 = new string_class(STR2CSTR($input));
+	    $1 = new string_class(StringValuePtr($input));
 	}
 	%typemap(freearg) string_class * {
 	    delete $1;
diff --git a/Lib/ruby/argcargv.i b/Lib/ruby/argcargv.i
index ae1f6bb..fc0bc40 100644
--- a/Lib/ruby/argcargv.i
+++ b/Lib/ruby/argcargv.i
@@ -30,7 +30,7 @@
     $2 = (char **) malloc((size+1)*sizeof(char *));
     VALUE *ptr = RARRAY_PTR($input);
     for (i=0; i < size; i++, ptr++) {
-      $2[i]= STR2CSTR(*ptr);
+      $2[i]= StringValuePtr(*ptr);
     }    
     $2[i]=NULL;
   } else {
diff --git a/Lib/ruby/rubystrings.swg b/Lib/ruby/rubystrings.swg
index e6b92ef..8600949 100644
--- a/Lib/ruby/rubystrings.swg
+++ b/Lib/ruby/rubystrings.swg
@@ -7,10 +7,10 @@ SWIGINTERN int
 SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
 {
   if (TYPE(obj) == T_STRING) {
-    %#if defined(StringValuePtr)
-    char *cstr = StringValuePtr(obj); 
-    %#else
+    %#if defined(STR2CSTR)
     char *cstr = STR2CSTR(obj);
+    %#else
+    char *cstr = StringValuePtr(obj); 
     %#endif
     size_t size = RSTRING_LEN(obj) + 1;
     if (cptr)  {
-- 
1.7.9.2

openSUSE Build Service is sponsored by