From: Jochen Tucht Date: Wed, 19 May 2010 12:57:18 +0000 (+0000) Subject: Restart discussion about binary file detection (TODO #1946860) X-Git-Tag: 2.16.4+-jp-10~1406^2~34 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5305afbbecd55fd4078c03ca54264136209c66a6;p=winmerge-jp%2Fwinmerge-jp.git Restart discussion about binary file detection (TODO #1946860) --- diff --git a/Src/FileTextEncoding.cpp b/Src/FileTextEncoding.cpp index 2b7235a34..474260684 100644 --- a/Src/FileTextEncoding.cpp +++ b/Src/FileTextEncoding.cpp @@ -30,6 +30,7 @@ void FileTextEncoding::Clear() m_unicoding = ucr::NONE; m_bom = false; m_guessed = false; + m_binary = false; } /** diff --git a/Src/FileTextEncoding.h b/Src/FileTextEncoding.h index 15afaad18..29c88b5b8 100644 --- a/Src/FileTextEncoding.h +++ b/Src/FileTextEncoding.h @@ -20,6 +20,7 @@ struct FileTextEncoding ucr::UNICODESET m_unicoding; /**< Unicode encoding. */ bool m_bom; /**< Unicode byte marker */ bool m_guessed; /**< Whether encoding was guessed from content */ + bool m_binary; FileTextEncoding(); void Clear(); diff --git a/Src/codepage_detect.cpp b/Src/codepage_detect.cpp index 4d3757c22..56bcdf08d 100644 --- a/Src/codepage_detect.cpp +++ b/Src/codepage_detect.cpp @@ -208,6 +208,7 @@ void GuessCodepageEncoding(LPCTSTR filepath, FileTextEncoding * encoding, BOOL b encoding->SetCodepage(getDefaultCodepage()); encoding->m_bom = false; encoding->m_guessed = false; + encoding->m_binary = false; switch (fi.nByteOrder) { case 8 + 2 + 0: @@ -226,8 +227,9 @@ void GuessCodepageEncoding(LPCTSTR filepath, FileTextEncoding * encoding, BOOL b if (fi.pImage && !CheckForInvalidUtf8((LPBYTE)fi.pImage, fi.cbImage)) encoding->SetUnicoding(ucr::UTF8); encoding->m_bom = false; + if (memchr(fi.pImage, 0, fi.cbImage)) + encoding->m_binary = true; break; - } if (fi.nByteOrder == 1 && bGuessEncoding) {