作者: Koichi
日時: 2005/5/10(08:49)
こんにちは、樋口です。

>ところでこの件は(修正方法は任せるにしても)作者にリポートした方が良いと
>思いますがどうでしょう?

同感です。とりあえず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);
  	}
      }