>タイトル: Re4: 先読み対応置換での不具合
>発言者: げんた
>>後ろに挿入する場合、マッチ文字が行末だと次の行の行頭に挿入する「仕様」みたいですが、
>ぬ~,そんな仕様だったのですか.
経緯は分からないのですが、
コメントに書いてあるので仕様だと思われます。
//検索後の文字が改行やったら次の行の先頭へ移動
こんな風に・・・
実は、微妙に気持ち悪いなとは思っていたのですが・・・このままでいいですか?
>ですが,どうもパターンによっては最後に1文字マッチしない文字がある場合でも次の行に送られてしまうパターンがあるようです.
ほんとうだ!1文字ずれてる。どうやら昔からあるバグみたいです(笑)
先ほどのコメントのある、「改行やったら」の判定に等号が要らないようです。(下記2カ所)
---------------------------
diff --dos -ur -x CVS -x tags -x sakura_rc.aps -x *.obj -x *.RES -x *.rc sakura_core_R1_5_3_1/CEditView_Command.cpp sakura_core/CEditView_Command.cpp
--- sakura_core_R1_5_3_1/CEditView_Command.cpp Sat Apr 23 08:48:20 2005
+++ sakura_core/CEditView_Command.cpp Sat Jun 18 14:55:14 2005
@@ -7482,7 +7482,7 @@
const CLayout* pcLayout;
const char* pLine = m_pcEditDoc->m_cLayoutMgr.GetLineStr( m_nSelectLineTo, &nLineLen, &pcLayout );
if( NULL != pLine &&
- colTmp >= nLineLen - (pcLayout->m_cEol.GetLen()) ){
+ colTmp > nLineLen - (pcLayout->m_cEol.GetLen()) ){
m_nSelectColmTo=0;
m_nSelectLineTo++;
}
@@ -7934,7 +7899,7 @@
{
pLine = rLayoutMgr.GetLineStr( m_nSelectLineTo, &nLineLen, &pcLayout );
if( NULL != pLine &&
- colTmp >= nLineLen - (pcLayout->m_cEol.GetLen()) ){
+ colTmp > nLineLen - (pcLayout->m_cEol.GetLen()) ){
bLineOffset=TRUE;
}
}
---------------------------