>タイトル: Re11: インデント表示機能追加のご相談
>発言者: げんた
>>なんか,折り返し2行目以降は半角は1文字,全角は3文字でカウントされているみたい.
>1.3.1.3→1.3.1.4の間で入ったみたいです.
こんな感じで直ります。
diff -rc E:\サクラエディタ\ssrc_2002-10-03_org\sakura_core/CEditView.cpp E:\サクラエディタ\ssrc_2002-10-03\sakura_core/CEditView.cpp
*** E:\サクラエディタ\ssrc_2002-10-03_org\sakura_core/CEditView.cpp	Tue Oct 01 17:33:40 2002
--- E:\サクラエディタ\ssrc_2002-10-03\sakura_core/CEditView.cpp	Fri Oct 04 02:08:00 2002
***************
*** 5722,5742 ****
  	int nPosX, nPosY;
  	if( m_pcEditDoc->GetDocumentAttribute().m_bL
ineNumIsCRLF ){	/* 行番号の表示 FALSE=折り返し単位/TRUE=改行単位 */
  		if (pcLayout && pcLayout->m_nOffset){
! 			char* pLine = pcLayout->m_pCDocLine->GetPtr();
! 			int nLineLen = m_nCaretPosX_PHY;	//	 - pcLayout->m_nOffset;
! 			nPosX = 0;
! 			int i;
! 			for( i = 0; i < nLineLen; ++i ){
! 				int nCharChars = CMemory::MemCharNext( (const char *)pLine, nLineLen, (const char *)&pLine[i] ) - (const char *)&pLine[i];
! 				if ( nCharChars == 1 && pLine[i] == TAB ){
! 					//	Sep. 23, 2002 genta LayoutMgrの値を使う
! 					nPosX += m_pcEditDoc->m_cLayoutMgr.GetActualTabSpace( nPosX );
! 				}
! 				else {
! 					nPosX += nCharChars;
  				}
  			}
! 			nPosX ++;	//	補正
  		}
  		else {
  			nPosX = m_nCaretPosX + 1;
--- 5722,5736 ----
  	int nPosX, nPosY;
  	if( m_pcEditDoc->GetDocumentAttribute().m_bL
ineNumIsCRLF ){	/* 行番号の表示 FALSE=折り返し単位/TRUE=改行単位 */
  		if (pcLayout && pcLayout->m_nOffset){
! 			CMemoryIterator<CDocLine> it( pcLayout->m_pCDocLine, m_pcEditDoc->m_cLayoutMgr.GetTabSpace() );
! 			for( it.first(); !it.end(); ){
! 				it.scanNext();
! 				if ( it.getIndex() + it.getIndexDelta() > m_nCaretPosX_PHY ){
! 					break;
  				}
+ 				it.addDelta();
  			}
! 			nPosX = it.getColumn() + 1;
  		}
  		else {
  			nPosX = m_nCaretPosX + 1;