diff options
author | Tomofumi Yagi <yagit@mknada.sakura.ne.jp> | 2013-09-07 10:04:30 +0900 |
---|---|---|
committer | Kohei Yoshida <libreoffice@kohei.us> | 2013-09-14 16:37:42 +0000 |
commit | fff70bf98c7a5a63aa0db11e93a3512c6a9a9359 (patch) | |
tree | e6087342c932fba75f92ebfba6944e435afe73b0 /l10ntools/source | |
parent | 60486dda6be30ad0173feb06595f8de42d0efa16 (diff) |
fdo#68790: fix build error on Win when system locale=="Japanese(Japan)"
This patch modifies transex3.
Modified transex3 outputs a file with BOM(if MergeMode is true).
*.[hs]rc files with BOM avoid this problem.
This problem is that MSVC interprets UTF-8 source code without BOM as
local codepage when system locale is "Japanese(Japan)".
Change-Id: I3e12499a91a954236f48e6d7e360d26c93d19ed6
Reviewed-on: https://gerrit.libreoffice.org/5851
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Diffstat (limited to 'l10ntools/source')
-rw-r--r-- | l10ntools/source/common.cxx | 9 | ||||
-rw-r--r-- | l10ntools/source/export.cxx | 8 |
2 files changed, 12 insertions, 5 deletions
diff --git a/l10ntools/source/common.cxx b/l10ntools/source/common.cxx index db86845ac787..78274b810bb5 100644 --- a/l10ntools/source/common.cxx +++ b/l10ntools/source/common.cxx @@ -43,6 +43,10 @@ bool handleArguments( { nState = STATE_LANGUAGES; } + else if ( OString( argv[ i ] ).toAsciiUpperCase() == "-B" ) + { + o_aHandledArgs.m_bUTF8BOM = true; + } else { switch ( nState ) @@ -90,12 +94,13 @@ void writeUsage(const OString& rName, const OString& rFileType) { std::cout << " Syntax: " << rName.getStr() - << " -i FileIn -o FileOut [-m DataBase] [-l Lang]\n" + << " -i FileIn -o FileOut [-m DataBase] [-l Lang] [-b]\n" << " FileIn: Source files (" << rFileType.getStr() << ")\n" << " FileOut: Destination file (*.*)\n" << " DataBase: Mergedata (*.po)\n" << " Lang: Restrict the handled language; one element of\n" - << " (de, en-US, ...) or all\n"; + << " (de, en-US, ...) or all\n" + << " -b: Add UTF-8 Byte Order Mark to FileOut(use with -m option)\n"; } void writePoEntry( diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx index b43938966045..864e7b2290eb 100644 --- a/l10ntools/source/export.cxx +++ b/l10ntools/source/export.cxx @@ -69,8 +69,8 @@ FILE * init(int argc, char ** argv) { } if (aArgs.m_bMergeMode) { - global::exporter.reset( - new Export(aArgs.m_sMergeSrc, aArgs.m_sOutputFile, aArgs.m_sLanguage)); + global::exporter.reset(new Export(aArgs.m_sMergeSrc, aArgs.m_sOutputFile, + aArgs.m_sLanguage, aArgs.m_bUTF8BOM)); } else { global::exporter.reset(new Export(aArgs.m_sOutputFile)); } @@ -198,7 +198,7 @@ Export::Export(const OString &rOutput) Export::Export( const OString &rMergeSource, const OString &rOutput, - const OString &rLanguage ) + const OString &rLanguage, bool bUTF8BOM) : bDefine( sal_False ), bNextMustBeDefineEOL( sal_False ), @@ -218,6 +218,8 @@ Export::Export( { aOutput.mSimple = new std::ofstream(); aOutput.mSimple->open(rOutput.getStr(), std::ios_base::out | std::ios_base::trunc); + + if ( bUTF8BOM ) WriteUTF8ByteOrderMarkToOutput(); } void Export::Init() |