empty files line endings

when a user creates a new file, uses user preferences
however when opening an empty file where notepad++ can't detect the line endings, it uses windows line endings

I've proposed a coupe of changes. First noticing that on construction Buffer::_format is set to the users eol preference, theres no need for a default fallback to be set. 

1) FileManager::loadFileData sets *pFormat to -1 when it can't detect a line ending (empty file)
2) FileManager::loadFile and FileManager::ReloadBuffer only set the line ending of the buffer when format!=-1, thus uses the users preference
pull/462/head^2^2
g3candy 2015-07-10 17:26:55 +01:00
parent 759fc1b0f3
commit 07fc127eab
1 changed files with 12 additions and 14 deletions

View File

@ -510,13 +510,11 @@ BufferID FileManager::loadFile(const TCHAR * filename, Document doc, int encodin
if (nullptr != UnicodeConvertor.getNewBuf())
{
int format = getEOLFormatForm(UnicodeConvertor.getNewBuf(), UnicodeConvertor.getNewSize());
buf->setFormat(format == -1?WIN_FORMAT:(formatType)format);
}
else
{
buf->setFormat(WIN_FORMAT);
if( format != -1 )
buf->setFormat((formatType)format);
}
UniMode um = UnicodeConvertor.getEncoding();
if (um == uni7Bit)
{
@ -536,6 +534,7 @@ BufferID FileManager::loadFile(const TCHAR * filename, Document doc, int encodin
// Test if encoding is set to UTF8 w/o BOM (usually for utf8 indicator of xml or html)
buf->setEncoding((encoding == SC_CP_UTF8)?-1:encoding);
buf->setUnicodeMode(uniCookie);
if ( format != -1 )
buf->setFormat(format);
}
@ -569,17 +568,16 @@ bool FileManager::reloadBuffer(BufferID id)
if (nullptr != UnicodeConvertor.getNewBuf())
{
int format = getEOLFormatForm(UnicodeConvertor.getNewBuf(), UnicodeConvertor.getNewSize());
buf->setFormat(format == -1?WIN_FORMAT:(formatType)format);
}
else
{
buf->setFormat(WIN_FORMAT);
if( format != -1 )
buf->setFormat((formatType)format);
}
buf->setUnicodeMode(UnicodeConvertor.getEncoding());
}
else
{
buf->setEncoding(encoding);
if ( format != - 1)
buf->setFormat(format);
buf->setUnicodeMode(uniCookie);
}
@ -1264,7 +1262,7 @@ inline bool FileManager::loadFileData(Document doc, const TCHAR * filename, char
if (pFormat != NULL)
{
*pFormat = (format == -1)?WIN_FORMAT:(formatType)format;
*pFormat = (formatType)format;
}
_pscratchTilla->execute(SCI_EMPTYUNDOBUFFER);
_pscratchTilla->execute(SCI_SETSAVEPOINT);