diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2017-06-25 18:02:01 +0200 |
---|---|---|
committer | Lionel Elie Mamane <lionel@mamane.lu> | 2017-06-25 18:02:01 +0200 |
commit | 63146e2a26274d33c12420937d13b88c527e5054 (patch) | |
tree | 8d6ce23da7c4e8d131df4b751fc33d86f4f1d7e6 | |
parent | a3735079d820c4d98d878061a02ac48bb59d1c52 (diff) |
ne plus faire la détection automatioque une 2e foisprivate/lmamane/for-julien2412
et lui faire confiance, i.e. ne plus écraser IBM_850
TODO: vérifier le cas base, où ce ne serait pas une 2e fois et il faudrait encore la faire
Change-Id: I401a93dce8ddf100031f1f04872df47ef453eb63
-rw-r--r-- | connectivity/source/drivers/dbase/DTable.cxx | 44 | ||||
-rw-r--r-- | sc/source/ui/docshell/docsh8.cxx | 4 |
2 files changed, 3 insertions, 45 deletions
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 11d35d1359a1..604cde350986 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -240,47 +240,9 @@ void ODbaseTable::readHeader() case dBaseIVMemoSQL: case dBaseIIIMemo: case FoxProMemo: - m_pFileStream->SetEndian(SvStreamEndian::LITTLE); - if ( m_aHeader.db_frei[17] != 0x00 - && !m_aHeader.db_frei[18] && !m_aHeader.db_frei[19] && getConnection()->isTextEncodingDefaulted() ) - { - switch(m_aHeader.db_frei[17]) - { - case 0x01: m_eEncoding = RTL_TEXTENCODING_IBM_437; break; // DOS USA code page 437 - case 0x02: m_eEncoding = RTL_TEXTENCODING_IBM_850; break; // DOS Multilingual code page 850 - case 0x03: m_eEncoding = RTL_TEXTENCODING_MS_1252; break; // Windows ANSI code page 1252 - case 0x04: m_eEncoding = RTL_TEXTENCODING_APPLE_ROMAN; break; // Standard Macintosh - case 0x64: m_eEncoding = RTL_TEXTENCODING_IBM_852; break; // EE MS-DOS code page 852 - case 0x65: m_eEncoding = RTL_TEXTENCODING_IBM_865; break; // Nordic MS-DOS code page 865 - case 0x66: m_eEncoding = RTL_TEXTENCODING_IBM_866; break; // Russian MS-DOS code page 866 - case 0x67: m_eEncoding = RTL_TEXTENCODING_IBM_861; break; // Icelandic MS-DOS - //case 0x68: m_eEncoding = ; break; // Kamenicky (Czech) MS-DOS - //case 0x69: m_eEncoding = ; break; // Mazovia (Polish) MS-DOS - case 0x6A: m_eEncoding = RTL_TEXTENCODING_IBM_737; break; // Greek MS-DOS (437G) - case 0x6B: m_eEncoding = RTL_TEXTENCODING_IBM_857; break; // Turkish MS-DOS - case 0x6C: m_eEncoding = RTL_TEXTENCODING_IBM_863; break; // MS-DOS, Canada - case 0x78: m_eEncoding = RTL_TEXTENCODING_MS_950; break; // Windows, Traditional Chinese - case 0x79: m_eEncoding = RTL_TEXTENCODING_MS_949; break; // Windows, Korean (Hangul) - case 0x7A: m_eEncoding = RTL_TEXTENCODING_MS_936; break; // Windows, Simplified Chinese - case 0x7B: m_eEncoding = RTL_TEXTENCODING_MS_932; break; // Windows, Japanese (Shift-jis) - case 0x7C: m_eEncoding = RTL_TEXTENCODING_MS_874; break; // Windows, Thai - case 0x7D: m_eEncoding = RTL_TEXTENCODING_MS_1255; break; // Windows, Hebrew - case 0x7E: m_eEncoding = RTL_TEXTENCODING_MS_1256; break; // Windows, Arabic - case 0x96: m_eEncoding = RTL_TEXTENCODING_APPLE_CYRILLIC; break; // Russian Macintosh - case 0x97: m_eEncoding = RTL_TEXTENCODING_APPLE_CENTEURO; break; // Eastern European Macintosh - case 0x98: m_eEncoding = RTL_TEXTENCODING_APPLE_GREEK; break; // Greek Macintosh - case 0xC8: m_eEncoding = RTL_TEXTENCODING_MS_1250; break; // Windows EE code page 1250 - case 0xC9: m_eEncoding = RTL_TEXTENCODING_MS_1251; break; // Russian Windows - case 0xCA: m_eEncoding = RTL_TEXTENCODING_MS_1254; break; // Turkish Windows - case 0xCB: m_eEncoding = RTL_TEXTENCODING_MS_1253; break; // Greek Windows - case 0xCC: m_eEncoding = RTL_TEXTENCODING_MS_1257; break; // Windows, Baltic - default: - // Default Encoding - m_eEncoding = RTL_TEXTENCODING_IBM_850; - break; - } - } - break; + // TODO: check that the code removed here is not needed when opening a DBF file + // from something else than Calc. E.g. Base. If it is, then factorise it into + // a function accessible from connectivity and from sc case dBaseIVMemo: m_pFileStream->SetEndian(SvStreamEndian::LITTLE); break; diff --git a/sc/source/ui/docshell/docsh8.cxx b/sc/source/ui/docshell/docsh8.cxx index 646656e56358..f30c95f6f654 100644 --- a/sc/source/ui/docshell/docsh8.cxx +++ b/sc/source/ui/docshell/docsh8.cxx @@ -299,10 +299,6 @@ sal_uLong ScDocShell::DBaseImport( const OUString& rFullFileName, rtl_TextEncodi sal_uLong nErr = eERR_OK; - // Try to get the Text Encoding from the driver - if( eCharSet == RTL_TEXTENCODING_IBM_850 ) - eCharSet = RTL_TEXTENCODING_DONTKNOW; - try { long i; |