こんにちは、樋口です。
>ところでこの件は(修正方法は任せるにしても)作者にリポートした方が良いと
>思いますがどうでしょう?
同感です。とりあえずPerl/Tkの作者さん(nickさん?)に連絡すべきだろ
うと思います。Tcl/Tkでも同様の問題があったので、Tcl/Tkの作者さんにも
ccした方が良いのかなぁと思いつつ、これはどこに送って良いのかよく分かっ
ていない状態です。
# Perl/Tkの作者さんにきちんと伝われば、Tcl/Tkの作者さんにも伝えても
# らえそうな気はするのですが…。
ところで、慣れない英語メールを書き始める前に、皆様におききしたいので
すが、「作者へのリポートしてあげるよ」という方はいらっしゃいますか?
# もちろん、いらっしゃらなければ私がリポートしますが、今回の件は、
# 私の"手柄"というわけではまったくありませんし…。
樋口 (http://hey.to/KO-ichi)
p.s.
ちなみに、以下diff -cの結果です。
---------------------------------------------------------------------
*** tkUnixWm.c.org 2005-05-08 09:51:04.000000000 +0900
--- tkUnixWm.c 2005-05-10 08:00:59.000000000 +0900
***************
*** 19,24 ****
--- 19,25 ----
#include "tkInt.h"
#include "tkUnixInt.h"
#include <errno.h>
+ #include <locale.h>
/*
* A data structure of the following type holds information for
***************
*** 691,701 ****
string = (wmPtr->title != NULL) ? wmPtr->title : winPtr->nameUid;
Tcl_UtfToExternalDString(NULL, string, -1, &ds);
string = Tcl_DStringValue(&ds);
! if (XStringListToTextProperty((char **)&string, 1,
! &textProp) != 0) {
! XSetWMName(winPtr->display, wmPtr->wrapperPtr->window, &textProp);
! XFree((char *) textProp.value);
! }
Tcl_DStringFree(&ds);
TkWmSetClass(winPtr);
--- 692,707 ----
string = (wmPtr->title != NULL) ? wmPtr->title : winPtr->nameUid;
Tcl_UtfToExternalDString(NULL, string, -1, &ds);
string = Tcl_DStringValue(&ds);
! setlocale(LC_CTYPE, "");
! XmbTextListToTextProperty(
! winPtr->display,
! (char **)&string,
! 1,
! XStdICCTextStyle,
! &textProp
! );
! XSetWMName(winPtr->display, wmPtr->wrapperPtr->window, &textProp);
! XFree((char *) textProp.value);
Tcl_DStringFree(&ds);
TkWmSetClass(winPtr);
***************
*** 3102,3113 ****
Tcl_UtfToExternalDString(NULL, wmPtr->title, -1, &ds);
string = Tcl_DStringValue(&ds);
! if (XStringListToTextProperty(&string, 1,
! &textProp) != 0) {
! XSetWMName(winPtr->display, wmPtr->wrapperPtr->window,
! &textProp);
! XFree((char *) textProp.value);
! }
Tcl_DStringFree(&ds);
}
}
--- 3108,3123 ----
Tcl_UtfToExternalDString(NULL, wmPtr->title, -1, &ds);
string = Tcl_DStringValue(&ds);
! setlocale(LC_CTYPE, "");
! XmbTextListToTextProperty(
! winPtr->display,
! &string,
! 1,
! XStdICCTextStyle,
! &textProp
! );
! XSetWMName(winPtr->display, wmPtr->wrapperPtr->window, &textProp);
! XFree(textProp.value);
Tcl_DStringFree(&ds);
}
}