| Module | TkUtil |
| In: |
tk/tkutil.c
|
/
/*************************************/
static VALUE
tcl2rb_bool(self, value)
VALUE self;
VALUE value;
{
if (TYPE(value) == T_FIXNUM) {
if (NUM2INT(value) == 0) {
return Qfalse;
} else {
return Qtrue;
}
}
if (TYPE(value) == T_TRUE || TYPE(value) == T_FALSE) {
return value;
}
rb_check_type(value, T_STRING);
value = rb_funcall(value, ID_downcase, 0);
if (RSTRING(value)->ptr == (char*)NULL) return Qnil;
if (RSTRING(value)->ptr[0] == '\0'
|| strcmp(RSTRING(value)->ptr, "0") == 0
|| strcmp(RSTRING(value)->ptr, "no") == 0
|| strcmp(RSTRING(value)->ptr, "off") == 0
|| strcmp(RSTRING(value)->ptr, "false") == 0) {
return Qfalse;
} else {
return Qtrue;
}
}
/
/*************************************/
static VALUE
tk_eval_cmd(argc, argv, self)
int argc;
VALUE argv[];
VALUE self;
{
volatile VALUE cmd, rest, arg;
volatile VALUE ret;
int status;
rb_scan_args(argc, argv, "1*", &cmd, &rest);
return rb_eval_cmd(cmd, rest, 0);
}
/
/*************************************/
static VALUE
tcl2rb_bool(self, value)
VALUE self;
VALUE value;
{
if (TYPE(value) == T_FIXNUM) {
if (NUM2INT(value) == 0) {
return Qfalse;
} else {
return Qtrue;
}
}
if (TYPE(value) == T_TRUE || TYPE(value) == T_FALSE) {
return value;
}
rb_check_type(value, T_STRING);
value = rb_funcall(value, ID_downcase, 0);
if (RSTRING(value)->ptr == (char*)NULL) return Qnil;
if (RSTRING(value)->ptr[0] == '\0'
|| strcmp(RSTRING(value)->ptr, "0") == 0
|| strcmp(RSTRING(value)->ptr, "no") == 0
|| strcmp(RSTRING(value)->ptr, "off") == 0
|| strcmp(RSTRING(value)->ptr, "false") == 0) {
return Qfalse;
} else {
return Qtrue;
}
}