summaryrefslogtreecommitdiffstats
path: root/ext/tk/tkutil.c
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-25 05:09:22 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-25 05:09:22 +0000
commit3dbbe5a7857da3ebde58fa993d9e56ee04dc51a6 (patch)
tree7497f0a182dae28c37d518d56551a8231092fc5c /ext/tk/tkutil.c
parentbba87b991cdffc057f29b946958e961ec9eedf69 (diff)
downloadruby-3dbbe5a7857da3ebde58fa993d9e56ee04dc51a6.tar.gz
ruby-3dbbe5a7857da3ebde58fa993d9e56ee04dc51a6.tar.xz
ruby-3dbbe5a7857da3ebde58fa993d9e56ee04dc51a6.zip
* ext/tcltklib/tcltklib.c: fix SEGV bug; trouble on canceling remained
after scripts [ruby-dev:25479]: NULL current namespce when deleting Tk interpreter [ruby-talk:126225] * ext/tcltklib/extconf.rb: bug fix; TCL_ENABLE_THREAD flag is inverted [ruby-talk:126360] * ext/tcltklib/extconf.rb: add yet another native-thread check * ext/tk/tkutil.c: fix SEGV bug; NULL string pointer when finalize Ruby interpreter * ext/tk/lib/multi-tk.rb: avoid warning for deleted safeTk ip frame * ext/tk/lib/tk/bindtag.rb: bug fix; new method of named bindtag doesn't return the created object [ruby-dev:25479] * ext/tk/lib/tk/menu.rb: bug on treating arguments [ruby-dev:25479] * ext/tk/lib/tk.rb: bug fix; cannot accept a callback ID string for a command argument [ruby-dev:25479] * ext/tk/lib/multi-tk.rb: ditto * ext/tk/lib/tk/*.rb: ditto * ext/tk/lib/tkextlib/*.rb: ditto * ext/tk/sample/demos-jp/anilabel.rb: new demo script * ext/tk/sample/demos-en/anilabel.rb: ditto * ext/tk/sample/tkHTML/ss.rb: local variable scope bug fix [ruby-dev:25479] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/tkutil.c')
-rw-r--r--ext/tk/tkutil.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/tk/tkutil.c b/ext/tk/tkutil.c
index e36f92af0..d88f7b9a7 100644
--- a/ext/tk/tkutil.c
+++ b/ext/tk/tkutil.c
@@ -8,7 +8,7 @@
************************************************/
-#define TKUTIL_RELEASE_DATE "2004-12-23"
+#define TKUTIL_RELEASE_DATE "2005-01-25"
#include "ruby.h"
#include "rubysig.h"
@@ -824,6 +824,8 @@ tcl2rb_bool(self, value)
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
@@ -880,6 +882,8 @@ tkstr_to_number(value)
{
rb_check_type(value, T_STRING);
+ if (RSTRING(value)->ptr == (char*)NULL) return INT2FIX(0);
+
return rb_rescue2(tkstr_to_int, value,
tkstr_rescue_float, value,
rb_eArgError, 0);
@@ -916,6 +920,8 @@ tcl2rb_string(self, value)
{
rb_check_type(value, T_STRING);
+ if (RSTRING(value)->ptr == (char*)NULL) return rb_tainted_str_new2("");
+
return tkstr_to_str(value);
}
@@ -926,6 +932,8 @@ tcl2rb_num_or_str(self, value)
{
rb_check_type(value, T_STRING);
+ if (RSTRING(value)->ptr == (char*)NULL) return rb_tainted_str_new2("");
+
return rb_rescue2(tkstr_to_number, value,
tkstr_to_str, value,
rb_eArgError, 0);