[Libreoffice-commits] .: 5 commits - i18npool/CppunitTest_i18npool_test_languagetag.mk i18npool/Library_i18nisolang1.mk i18npool/Module_i18npool.mk i18npool/qa i18npool/source liblangtag/liblangtag-0.2-reg2xml-encoding-problem.patch liblangtag/makefile.mk
Eike Rathke
erack at kemper.freedesktop.org
Sat Aug 11 04:50:03 PDT 2012
i18npool/CppunitTest_i18npool_test_languagetag.mk | 14 +++--------
i18npool/Library_i18nisolang1.mk | 3 --
i18npool/Module_i18npool.mk | 1
i18npool/qa/cppunit/test_languagetag.cxx | 12 +++++++---
i18npool/source/languagetag/languagetag.cxx | 16 ++++++++-----
liblangtag/liblangtag-0.2-reg2xml-encoding-problem.patch | 18 +++++++++++++++
liblangtag/makefile.mk | 1
7 files changed, 44 insertions(+), 21 deletions(-)
New commits:
commit 57c3b583f1f69edd32b2a54253850e1b3b202255
Author: Eike Rathke <erack at redhat.com>
Date: Sat Aug 11 13:49:25 2012 +0200
langtag: libxml2 only used for liblangtag
Change-Id: I4bf7bc4f58bac7675cf694dc206e6ba119a6354e
diff --git a/i18npool/Library_i18nisolang1.mk b/i18npool/Library_i18nisolang1.mk
index d082503..72134c2 100644
--- a/i18npool/Library_i18nisolang1.mk
+++ b/i18npool/Library_i18nisolang1.mk
@@ -58,8 +58,7 @@ ifeq ($(ENABLE_LIBLANGTAG),YES)
$(eval $(call gb_Library_add_defs,i18nisolang1,-DENABLE_LIBLANGTAG))
$(eval $(call gb_Library_use_external,i18nisolang1,glib))
$(eval $(call gb_Library_use_external,i18nisolang1,liblangtag))
-endif
-
$(eval $(call gb_Library_use_external,i18nisolang1,libxml2))
+endif
# vim: set noet sw=4 ts=4:
commit 79ebfc9053c92c041e165aa0c8901b0e882c4f9e
Author: Eike Rathke <erack at redhat.com>
Date: Sat Aug 11 13:45:43 2012 +0200
langtag: enable languagetag unit test again
Change-Id: Ia2ed3dc0d0e135913c25e1c389326ee3fbc39719
diff --git a/i18npool/Module_i18npool.mk b/i18npool/Module_i18npool.mk
index bed175a..9214d00 100644
--- a/i18npool/Module_i18npool.mk
+++ b/i18npool/Module_i18npool.mk
@@ -63,6 +63,7 @@ endif
$(eval $(call gb_Module_add_check_targets,i18npool,\
CppunitTest_i18npool_test_breakiterator \
CppunitTest_i18npool_test_characterclassification \
+ CppunitTest_i18npool_test_languagetag \
))
# vim: set noet sw=4 ts=4:
commit 4ff9a9958653666fb0b0ff333cac7f8d1b293117
Author: Eike Rathke <erack at redhat.com>
Date: Sat Aug 11 13:29:50 2012 +0200
langtag: use ENABLE_LIBLANGTAG in unit test
diff --git a/i18npool/CppunitTest_i18npool_test_languagetag.mk b/i18npool/CppunitTest_i18npool_test_languagetag.mk
index 467a36b..fd7c604 100644
--- a/i18npool/CppunitTest_i18npool_test_languagetag.mk
+++ b/i18npool/CppunitTest_i18npool_test_languagetag.mk
@@ -23,23 +23,17 @@ $(eval $(call gb_CppunitTest_use_libraries,i18npool_test_languagetag,\
$(gb_STDLIBS) \
))
-ifneq ($(OS),ANDROID)
-ifneq ($(OS),IOS)
+ifeq ($(ENABLE_LIBLANGTAG),YES)
$(eval $(call gb_CppunitTest_use_externals,i18npool_test_languagetag,\
liblangtag \
glib \
-))
-endif
-endif
-
-$(eval $(call gb_CppunitTest_use_externals,i18npool_test_languagetag,\
libxml2 \
))
+$(eval $(call gb_CppunitTest_add_defs,i18npool_test_languagetag,-DENABLE_LIBLANGTAG))
ifeq ($(SYSTEM_LIBLANGTAG),YES)
-$(eval $(call gb_CppunitTest_add_cxxflags,i18npool_test_languagetag,\
- -DSYSTEM_LIBLANGTAG \
-))
+$(eval $(call gb_CppunitTest_add_defs,i18npool_test_languagetag,-DSYSTEM_LIBLANGTAG))
+endif
endif
$(eval $(call gb_CppunitTest_set_include,i18npool_test_languagetag,\
diff --git a/i18npool/qa/cppunit/test_languagetag.cxx b/i18npool/qa/cppunit/test_languagetag.cxx
index c8a5f7c..4569e81 100644
--- a/i18npool/qa/cppunit/test_languagetag.cxx
+++ b/i18npool/qa/cppunit/test_languagetag.cxx
@@ -26,7 +26,11 @@ using namespace com::sun::star;
// To test the replacement code add '&& 0' and also in
// source/languagetag/languagetag.cxx
-#define USE_LIBLANGTAG (!defined(ANDROID) && !defined(IOS))
+#if defined(ENABLE_LIBLANGTAG)
+#define USE_LIBLANGTAG 1
+#else
+#define USE_LIBLANGTAG 0
+#endif
namespace {
diff --git a/i18npool/source/languagetag/languagetag.cxx b/i18npool/source/languagetag/languagetag.cxx
index 68474d8..9eae6ea 100644
--- a/i18npool/source/languagetag/languagetag.cxx
+++ b/i18npool/source/languagetag/languagetag.cxx
@@ -15,7 +15,7 @@
//#define erDEBUG
-#ifdef ENABLE_LIBLANGTAG
+#if defined(ENABLE_LIBLANGTAG)
#include <liblangtag/langtag.h>
#else
/* Replacement code for LGPL phobic and Android systems.
commit d724f64703eaa0b0595fc4983e42875f2b439e88
Author: Eike Rathke <erack at redhat.com>
Date: Sat Aug 11 12:50:11 2012 +0200
langtag: pass system path as data path instead of file URL
diff --git a/i18npool/qa/cppunit/test_languagetag.cxx b/i18npool/qa/cppunit/test_languagetag.cxx
index fee5769..c8a5f7c 100644
--- a/i18npool/qa/cppunit/test_languagetag.cxx
+++ b/i18npool/qa/cppunit/test_languagetag.cxx
@@ -54,12 +54,14 @@ void TestLanguageTag::testInit()
const char* pEnv = getenv("OUTDIR");
CPPUNIT_ASSERT_MESSAGE("No $OUTDIR", pEnv);
aBuf.append( "file:///").append( OStringToOUString( pEnv, RTL_TEXTENCODING_UTF8)).append( "/share/liblangtag");
- OUString aPath( aBuf.makeStringAndClear());
- OUString aData( aPath);
+ OUString aURL( aBuf.makeStringAndClear());
+ OUString aData( aURL);
aData += "/language-subtag-registry.xml";
osl::DirectoryItem aDirItem;
CPPUNIT_ASSERT_MESSAGE("liblangtag data not found",
osl::DirectoryItem::get( aData, aDirItem) == osl::DirectoryItem::E_None);
+ OUString aPath;
+ CPPUNIT_ASSERT( osl::FileBase::getSystemPathFromFileURL( aURL, aPath) == osl::FileBase::E_None);
LanguageTag::overrideDataPath( aPath);
#endif
}
diff --git a/i18npool/source/languagetag/languagetag.cxx b/i18npool/source/languagetag/languagetag.cxx
index 4192374..68474d8 100644
--- a/i18npool/source/languagetag/languagetag.cxx
+++ b/i18npool/source/languagetag/languagetag.cxx
@@ -113,19 +113,23 @@ void LiblantagDataRef::presetDataPath( const rtl::OUString& rPath )
void LiblantagDataRef::setupDataPath()
{
// maDataPath is assumed to be empty here.
- OUString aPath;
- if (!rtl::Bootstrap::get( "BRAND_BASE_DIR", aPath))
+ OUString aURL;
+ if (!rtl::Bootstrap::get( "BRAND_BASE_DIR", aURL))
OSL_FAIL( "LiblantagDataRef: can't get BRAND_BASE_DIR");
else
{
// Check if data is in our own installation, else assume system
// installation.
- aPath += "/share/liblangtag";
- OUString aData( aPath);
+ aURL += "/share/liblangtag";
+ OUString aData( aURL);
aData += "/language-subtag-registry.xml";
osl::DirectoryItem aDirItem;
if (osl::DirectoryItem::get( aData, aDirItem) == osl::DirectoryItem::E_None)
- maDataPath = OUStringToOString( aPath, RTL_TEXTENCODING_UTF8);
+ {
+ OUString aPath;
+ if (osl::FileBase::getSystemPathFromFileURL( aURL, aPath) == osl::FileBase::E_None)
+ maDataPath = OUStringToOString( aPath, RTL_TEXTENCODING_UTF8);
+ }
}
if (maDataPath.isEmpty())
maDataPath = "|"; // assume system
commit 15e7f34a2134b1a4d892f4e4d945b9cb547202ac
Author: Eike Rathke <erack at redhat.com>
Date: Sat Aug 11 12:50:11 2012 +0200
langtag: worked around reg2xml libxml2 encoding problem
libxml2 has a problem when a document encoding is specified, even though
documentation says that all internal representation would be in UTF-8 and
language-subtag-registry data already is passed in UTF-8, when specifying the
document encoding to be UTF-8 the output to language-subtag-registry.xml is
conversion garbage, '?' on Linux UTF-8 locale, ISO-8859-1 on Windows. If no
document encoding is specified at all no conversion happens and non-ASCII
values are correctly written as entities.
diff --git a/liblangtag/liblangtag-0.2-reg2xml-encoding-problem.patch b/liblangtag/liblangtag-0.2-reg2xml-encoding-problem.patch
new file mode 100644
index 0000000..cae5df5
--- /dev/null
+++ b/liblangtag/liblangtag-0.2-reg2xml-encoding-problem.patch
@@ -0,0 +1,18 @@
+# libxml2 has a problem when a document encoding is specified, even though
+# documentation says that all internal representation would be in UTF-8 and
+# language-subtag-registry data already is passed in UTF-8, when specifying the
+# document encoding to be UTF-8 the output to language-subtag-registry.xml is
+# conversion garbage, '?' on Linux UTF-8 locale, ISO-8859-1 on Windows. If no
+# document encoding is specified at all no conversion happens and non-ASCII
+# values are correctly written as entities.
+
+--- misc/liblangtag-0.2/data/reg2xml.c 2012-01-30 13:20:57.000000000 +0100
++++ misc/build/liblangtag-0.2/data/reg2xml.c 2012-08-11 02:30:39.147779753 +0200
+@@ -144,7 +144,6 @@
+ gboolean retval;
+
+ doc = xmlNewDoc((const xmlChar *)"1.0");
+- doc->encoding = xmlStrdup((const xmlChar *)"UTF-8");
+ root = xmlNewDocNode(doc, NULL,
+ (const xmlChar *)"registry",
+ NULL);
diff --git a/liblangtag/makefile.mk b/liblangtag/makefile.mk
index 6acd160..f318f8e 100644
--- a/liblangtag/makefile.mk
+++ b/liblangtag/makefile.mk
@@ -41,6 +41,7 @@ PATCH_FILES+=liblangtag-0.2-0002-Fix-invalid-memory-access.patch
PATCH_FILES+=liblangtag-0.2-configure.patch
PATCH_FILES+=liblangtag-0.2-datadir.patch
PATCH_FILES+=liblangtag-0.2-msvc-warning.patch
+PATCH_FILES+=liblangtag-0.2-reg2xml-encoding-problem.patch
CONFIGURE_DIR=.
BUILD_DIR=$(CONFIGURE_DIR)
More information about the Libreoffice-commits
mailing list