-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SJISエンコードのキーワードヘルプ辞書を設定するとき表示化け・Crashする #1234
Comments
不具合報告ありがとうございます。 |
Formについて、素うどん GitHub Issue 窓でした。 |
>Formについて、素うどん GitHub Issue 窓でした。 すいません、「素うどん」がよくわかりませんが、今右上のNew Issueボタン押していただけると、書き込みひな形の選択画面がでます。 場合によってはOSDN側の会議室お使いいただければ比較的メンバー見ています。 |
szAbout のサイズチェックが抜けた?>e7eaaa6#diff-c362884b87d4d3b2b2df732a6fbc55a1 |
すみません、現象まだ追えていないです。 キーワードヘルプ辞書の辞書ファイル読込は、ドキュメントの文字コード指定と独立しているんじゃなかったかな?とか、そういえば検索速度改善のために二分探索方式に変えたりしたなぁとか色々思うところはある感じです。(マテマテ issueのテンプレートを用意しているので、issuesページの これ ⇨ https://github.com/sakura-editor/sakura/issues/new/choose この中からどれかを選んでやると 手打ちとかで |
とりあえず @ds14050 さんの調査結果を見て見ました。 - _wcstotcs(szAbout,line.c_str(),_countof(szAbout));
+ line.copy( szAbout, line.length(), 0 );
一番簡単な対処策は |
line はコピーに供すべき自身の長さを知っていますから、line.length() の代わりに _countof(szAbout) に基づく値を上限として指定するのではありませんか? line.copy() メソッドについて調べずに書いていますが。 |
line.copy() メソッドを検索しました。 そして知る衝撃の事実(笑)
std::string は C のヌル終端文字列とは違いますし、c_str() がいわば互換性のための例外としてヌル終端に言及するだけなんでしょうか。 |
こちらまだ正常に動作していないので reopen します。 |
@ds14050 さん
C++03までは必ずしも内部的にNULL終端されている必要は無かったようです。C++11以降ではNULL終端前提になったんだとか。 |
C++11 以降では内部データとしてヌル終端が存在していることが保証されたんですね。 CoW はリソース環境の変化もあり手放しで採用できる技術ではなかったようですし、最低限のスペースが必要になるとしても存在を保証するメリットの方が大きいという判断なんでしょう。初期化しない std::string にメモリ確保のオーバーヘッドが生じるならヒープの二重確保が約束されるのが嫌すぎますが、賢い人がうまくやるんでしょうね……。 さぼらずに読んでみました。 basic_string のデータメンバ(抜粋)
capacity() メンバ関数
_M_is_local() 関数
ヌル文字1バイトと言わず |
これを待ちます! |
マージしたので閉じます。 |
状況
UTF-8 BOM付ファイル編集中、タイプ別設定で SJIS エンコードされたキーワードヘルプファイルを指定したとき、説明が文字化け表示し、またクラッシュした。
登録(挿入・更新)を強行すると、場合によって(多分、使用文字による?)はCrashする。
不具合の再現
必ず再現する訳ではなく、正常に処理されるものもあるようだ。違いは不明。
対象ファイルの行頭は1行目が短く、2行目が長い。
Version
サクラエディタ v2.4.0.2688 32bit dev
(GitHash 1397eca)
(GitURL https://github.com/sakura-editor/sakura.git)
Compile Info: V1916 WPR WIN601/I800/C000/N601
Last Modified: 2020/4/19 03:08:18
GitHubになって初めての不具合報告です。
デフォルトの報告Formがないけど、これでいいのかな?
The text was updated successfully, but these errors were encountered: