diff options
-rw-r--r-- | ext/tk/extconf.rb | 4 | ||||
-rw-r--r-- | ext/tk/tcltklib.c | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/ext/tk/extconf.rb b/ext/tk/extconf.rb index 12bccd58f7..a6e87eb5b3 100644 --- a/ext/tk/extconf.rb +++ b/ext/tk/extconf.rb @@ -1795,7 +1795,9 @@ print("check functions.") %w"ruby_native_thread_p rb_errinfo rb_safe_level rb_hash_lookup rb_proc_new rb_obj_untrust rb_obj_taint rb_set_safe_level_force - rb_sourcefile rb_thread_alive_p rb_thread_check_trap_pending".each do |func| + rb_sourcefile rb_thread_alive_p rb_thread_check_trap_pending + ruby_enc_find_basename +".each do |func| have_func(func, "ruby.h") print(".") # progress end diff --git a/ext/tk/tcltklib.c b/ext/tk/tcltklib.c index 01479301d8..2906cb7281 100644 --- a/ext/tk/tcltklib.c +++ b/ext/tk/tcltklib.c @@ -1263,11 +1263,17 @@ setup_rubytkkit(void) #ifdef __WIN32__ /* rbtk_win32_SetHINSTANCE("tcltklib.so"); */ { +# ifdef HAVE_RUBY_ENC_FIND_BASENAME + const char *base = ruby_enc_find_basename(rb_sourcefile(), NULL, NULL, + rb_filesystem_encoding()); + rbtk_win32_SetHINSTANCE(base); +# else VALUE basename; basename = rb_funcall(rb_cFile, rb_intern("basename"), 1, rb_str_new2(rb_sourcefile())); rbtk_win32_SetHINSTANCE(RSTRING_PTR(basename)); RB_GC_GUARD(basename); +# endif } #endif set_rubytk_kitpath(rb_sourcefile()); |