2015/4/10 (金) 23:17:24 teru 返信 削除
Mozilla/5.0 (Windows NT 5.1; Wine 1.7.31; rv:25.1) Gecko/20100101 Firefox/25.1
[2263] wineで使うと落ちる場合があります。
/* 間違って一般の方に投稿していたので、投稿しなおしました。すみません。 */

OS: Debian + wine 1.7.40
ver: 2.2.0.1
現象:タブを表示する設定にした状態でファイルを開き、
内容を編集するとサクラエディタが落ちます。
原因:sakura_core/window/CTabWnd.cpp で、 TabCtrl_GetItem に渡す
 TCITEM 構造体のメンバを適切に指定していないためと思われます。

自分でMingGWでビルドしたら(適用前でも)再現しなかったので確認できてませんが、
コードが足りてないのは確かなので、パッチを置いておきます。
Index: sakura_core/window/CTabWnd.cpp
===================================================================
--- sakura_core/window/CTabWnd.cpp      (revision 4017)
+++ sakura_core/window/CTabWnd.cpp      (working copy)
@@ -1831,6 +1831,7 @@
                        tcitem.mask    = TCIF_TEXT | TCIF_IMAGE;
                        TCHAR   szNameOld[1024];
                        tcitem.pszText = szNameOld;
+                       tcitem.cchTextMax = _countof(szNameOld);
                        TabCtrl_GetItem( m_hwndTab, nIndex, &tcitem );
                        if( 0 != auto_strcmp( szNameOld, szName )
                                || tcitem.iImage != GetImageIndex( p ) ){

2015/4/13 (月) 01:25:03 ds14050 返信 削除
Mozilla/5.0 (Windows NT 6.0; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
[2264] Re:wineで使うと落ちる場合があります。
▼ teruさん
パッチ提供ありがとうございます。<(_ _)>

F1ヘルプによりますと
> cchTextMax
>   Size in TCHARs of the buffer pointed to by the pszText member. If the structure is not receiving information, this member is ignored.

1.バイト数ではなくTCHARで数えた文字数をセットすること
2.情報を受け取るので *なければ* 無視される
と書いてありました。否定文で注意書きを書くなって言いたくなりますね。

TCITEMで GREPしたところ、TCIF_TEXTをセットして Getしているのは
指摘された1か所だけでした。コミットはこちらです。

 http://sourceforge.net/p/sakura-editor/code/4018/

WINEでテストはできていませんが、ブレークポイントをセットして
問題なく処理が通過していくのを確認しています。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]