summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 10:07:53 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 10:07:53 +0000
commit2f99f3b41a4ad5a4efafb0b71784bd05b99d9bba (patch)
treeec57ed897c38dd660b816f97d30bd762e5fedf44
parent7a249d7acca6f78607e45282e2a0d9be03b9acfb (diff)
use STR2CSTR
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@46 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog2
-rw-r--r--object.c9
-rw-r--r--ruby.h3
3 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e06efbe692..7fb0b71967 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
Thu Jan 22 00:37:47 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+ * ruby.h (STR2CSTR): new macro to retrieve char*.
+
* class.c (rb_define_method): `initialize' should always be
private, even if it defined by C extensions.
diff --git a/object.c b/object.c
index faf6983526..be551bd82a 100644
--- a/object.c
+++ b/object.c
@@ -721,6 +721,15 @@ f_string(obj, arg)
return rb_funcall(arg, rb_intern("to_s"), 0);
}
+char*
+str2cstr(str)
+ VALUE str;
+{
+ if (NIL_P(str)) return NULL;
+ Check_Type(str, T_STRING);
+ return RSTRING(str)->ptr;
+}
+
VALUE
rb_String(val)
VALUE val;
diff --git a/ruby.h b/ruby.h
index 0c1d01c702..a3e3f47dc9 100644
--- a/ruby.h
+++ b/ruby.h
@@ -165,6 +165,9 @@ int num2int _((VALUE));
double num2dbl _((VALUE));
#define NUM2DBL(x) num2dbl((VALUE)(x))
+char *str2cstr _((VALUE));
+#define STR2CSTR(x) str2cstr((VALUE)(x))
+
VALUE rb_newobj _((void));
#define NEWOBJ(obj,type) type *obj = (type*)rb_newobj()
#define OBJSETUP(obj,c,t) {\