+ enh: option to equalize inconsistent line-breaks after loading

This commit is contained in:
Rainer Kottenhoff 2018-10-23 13:59:28 +02:00
parent 3f8c199e19
commit cda4804d01
11 changed files with 22 additions and 13 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -884,7 +884,7 @@ void EditDetectEOLMode(LPCSTR lpData, DWORD cbData, EditFileIOStatus* status)
++linesCount[SC_EOL_CRLF];
}
else {
++linesCount[SC_EOL_LF];
++linesCount[SC_EOL_CR];
}
break;
default:
@ -895,16 +895,14 @@ void EditDetectEOLMode(LPCSTR lpData, DWORD cbData, EditFileIOStatus* status)
DocLn const linesMax = max_ln(max_ln(linesCount[0], linesCount[1]), linesCount[2]);
if (linesMax != linesCount[iEOLMode]) {
if (linesMax == linesCount[SC_EOL_CRLF]) {
iEOLMode = SC_EOL_CRLF;
}
else if (linesMax == linesCount[SC_EOL_LF]) {
iEOLMode = SC_EOL_LF;
}
else {
iEOLMode = SC_EOL_CR;
}
if (linesMax == linesCount[SC_EOL_CRLF]) {
iEOLMode = SC_EOL_CRLF;
}
else if (linesMax == linesCount[SC_EOL_CR]) {
iEOLMode = SC_EOL_CR;
}
else {
iEOLMode = SC_EOL_LF;
}
status->iEOLMode = iEOLMode;

View File

@ -9403,8 +9403,19 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload, bool bSkipUnicodeDetect,
MsgBoxLng(MBWARN, IDS_MUI_ERR_UNICODE);
}
// Show inconsistent line endings warning
if (fioStatus.bInconsistent && Settings.WarnInconsistEOLs) {
MsgBoxLng(MBWARN, IDS_MUI_WARN_INCONSIST_EOLS);
if (fioStatus.bInconsistent && Settings.WarnInconsistEOLs)
{
WCHAR szDefault[32];
WCHAR szStatistic[80];
int const eolm = Globals.iEOLMode; //Settings.DefaultEOLMode;
StringCchPrintf(szDefault, COUNTOF(szDefault), L"%s",
((eolm == SC_EOL_CRLF) ? L"CRLF (\\r\\n)" : ((eolm == SC_EOL_CR) ? L"CR (\\r)" : L"LF (\\n)")));
StringCchPrintf(szStatistic, COUNTOF(szStatistic), L">>> #CRLF = %i, #CR = %i, #LF = %i <<<",
fioStatus.linesCount[SC_EOL_CRLF], fioStatus.linesCount[SC_EOL_CR], fioStatus.linesCount[SC_EOL_LF]);
int const res = MsgBoxLng(MBYESNOWARN, IDS_MUI_WARN_INCONSIST_EOLS, szStatistic, szDefault);
if (res == IDYES) {
SciCall_ConvertEOLs(eolm);
}
}
}
else if (!(fioStatus.bFileTooBig || fioStatus.bUnknownExt)) {