Ruby  1.9.3p551(2014-11-13revision48407)
cstr.c
Go to the documentation of this file.
1 #include "ruby.h"
2 
3 static VALUE
5 {
6  long len;
7  char *s;
8  rb_str_modify(str);
9  len = RSTRING_LEN(str);
10  RSTRING_PTR(str)[len] = 'x';
11  s = StringValueCStr(str);
12  rb_gc();
13  return INT2NUM(s[len]);
14 }
15 
16 void
18 {
19  rb_define_method(klass, "cstr_term", bug_str_cstr_term, 0);
20 }
#define RSTRING_LEN(string)
Definition: generator.h:45
void rb_gc(void)
Definition: gc.c:3160
unsigned long VALUE
Definition: ruby.h:88
static VALUE INT2NUM(int v)
Definition: ruby.h:981
#define RSTRING_PTR(string)
Definition: generator.h:42
return str
Definition: ruby.c:1183
static VALUE bug_str_cstr_term(VALUE str)
Definition: cstr.c:4
register char * s
Definition: os2.c:56
register unsigned int len
Definition: name2ctype.h:22210
#define StringValueCStr(v)
Definition: ruby.h:468
void rb_str_modify(VALUE)
Definition: string.c:1319
klass
Definition: tcltklib.c:3493
void Init_cstr(VALUE klass)
Definition: cstr.c:17
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
Definition: class.c:1210