From 5305afbbecd55fd4078c03ca54264136209c66a6 Mon Sep 17 00:00:00 2001 From: Jochen Tucht Date: Wed, 19 May 2010 12:57:18 +0000 Subject: [PATCH] Restart discussion about binary file detection (TODO #1946860) --- Src/FileTextEncoding.cpp | 1 + Src/FileTextEncoding.h | 1 + Src/codepage_detect.cpp | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) 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) { -- 2.11.0