Skip to content
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

置換時の検索文字列が正しく設定できない #1525

Closed
yoshinrt opened this issue Feb 2, 2021 · 4 comments
Closed

置換時の検索文字列が正しく設定できない #1525

yoshinrt opened this issue Feb 2, 2021 · 4 comments

Comments

@yoshinrt
Copy link
Contributor

yoshinrt commented Feb 2, 2021

問題内容

Ctrl-R で設定した検索文字列が正しく置換されない

再現手順

どこに条件があるのかわからないので細かいですが手順を記載します.

  1. https://ci.appveyor.com/api/buildjobs/fnyjq4db1k7woy4q/artifacts/sakura-build3414-06a3ac1-Win32-Release-Exe.zip をダウンロードして解凍
  2. sakura.ini が存在する場合は削除
  3. sakura.exe を W クリックで起動
  4. 添付 z.txt を D&D で開く
  5. 1行12桁にカーソル移動
  6. Ctrl-R をおす
  7. 置換後 に aaaa 入力 (置換前 は入力済みから触らない),オプションは図の通り設定後,すべて置換を押す
    screenshot png
  8. 「0個置換しました」になる
  9. 再び Ctrl-R で「置換前」のドロップダウンリストを見てみると,「displa」になっているのがわかる

再現頻度

100%

問題のカテゴリ

  • プログラムの動作上の問題
    • Appveyor ビルド版

環境情報

  • OS バージョン
    Win10 Pro 64bit 1909

  • サクラエディタバージョン

サクラエディタ   v2.4.2.3414 32bit dev
(GitHash 06a3ac1fb027ce00b90df5fa5148f039f29f143c)
(GitURL https://github.com/sakura-editor/sakura.git)

      Compile Info: V1916 WPR WIN601/I800/C000/N601
      Last Modified: 2021/2/1 00:10:40
@yoshinrt
Copy link
Contributor Author

yoshinrt commented Feb 2, 2021

本 issue とは関係ない & 環境依存かもしれないのですが,sakura.ini を削除して sakura.exe を起動すると,何もメッセージ等を表示せず終了してしまうようです.

@kengoide
Copy link
Member

kengoide commented Feb 3, 2021

bisect してみました。 c5b4a0f で挙動が変わっています。

@kengoide
Copy link
Member

kengoide commented Feb 3, 2021

/* 検索文字列 */
ApiWrap::DlgItem_GetText( GetHwnd(), IDC_COMBO_TEXT, m_strText );

この行の実行後、m_strText が displa になることが確認できました。

// ウィンドウテキストを取得するのに必要なバッファを確保する
strText.resize( cchRequired );
// GetWindowText() はコピーした文字数を返す。
// https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindowtextw
const int actualCopied = ::GetWindowText( hWnd, strText.data(), (int)strText.capacity() );

ここで GetWindowTextW に渡している文字数が足りません。

@kengoide
Copy link
Member

kengoide commented Feb 4, 2021

検索文字列の問題については #1528 で修正できたと思います。もしできていなければ reopen していただければ…。

@kengoide kengoide closed this as completed Feb 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants