summaryrefslogtreecommitdiff
path: root/l10ntools/source
diff options
context:
space:
mode:
authorTomofumi Yagi <yagit@mknada.sakura.ne.jp>2013-09-07 10:04:30 +0900
committerKohei Yoshida <libreoffice@kohei.us>2013-09-14 16:37:42 +0000
commitfff70bf98c7a5a63aa0db11e93a3512c6a9a9359 (patch)
treee6087342c932fba75f92ebfba6944e435afe73b0 /l10ntools/source
parent60486dda6be30ad0173feb06595f8de42d0efa16 (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.cxx9
-rw-r--r--l10ntools/source/export.cxx8
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()