void CDocLine::SetEol(const CEol& cEol, COpeBlk* pcOpeBlk)
{
	//改行コードを削除
	for(int i=0;i<(Int)m_cEol.GetLen();i++){
		m_cLine.Chop();
	}

	//改行コードを挿入
	m_cEol = cEol;
	m_cLine += cEol.GetValue2();
}
示例#2
0
CLogicInt CViewCommander::ConvertEol(const wchar_t* pszText, CLogicInt nTextLen, wchar_t* pszConvertedText)
{
	// original by 2009.02.28 salarm
	CLogicInt nConvertedTextLen;
	CEol eol = GetDocument()->m_cDocEditor.GetNewLineCode();

	nConvertedTextLen = 0;
	bool bExtEol = GetDllShareData().m_Common.m_sEdit.m_bEnableExtEol;
	if( pszConvertedText == NULL ){
		for( int i = 0; i < nTextLen; i++ ){
			if( WCODE::IsLineDelimiter(pszText[i], bExtEol) ){
				if( pszText[i] == WCODE::CR ){
					if( i + 1 < nTextLen && pszText[i + 1] == WCODE::LF ){
						i++;
					}
				}
				nConvertedTextLen += eol.GetLen();
			} else {
				nConvertedTextLen++;
			}
		}
	}else{
		for( int i = 0; i < nTextLen; i++ ){
			if( WCODE::IsLineDelimiter(pszText[i], bExtEol) ){
				if( pszText[i] == WCODE::CR ){
					if( i + 1 < nTextLen && pszText[i + 1] == WCODE::LF ){
						i++;
					}
				}
				wmemcpy( &pszConvertedText[nConvertedTextLen], eol.GetValue2(), eol.GetLen() );
				nConvertedTextLen += eol.GetLen();
			} else {
				pszConvertedText[nConvertedTextLen++] = pszText[i];
			}
		}
	}
	return nConvertedTextLen;
}