summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-01-17 21:50:59 +0100
committerCarl Hetherington <cth@carlh.net>2023-01-17 22:41:46 +0100
commitaf25866f2b77d856121ce67ba11ba7e9f997bfe1 (patch)
tree62430c7f769af110829e9e3ac503d2a44cfe74ff
parent7e6fa2a2d848f81d82d6ae5151b5ef851b4b720a (diff)
Allow Collators to have their language specified, and specify it for tests.
-rw-r--r--src/lib/collator.cc4
-rw-r--r--src/lib/collator.h2
-rw-r--r--test/collator_test.cc4
3 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/collator.cc b/src/lib/collator.cc
index ba504fb6e..8de1857ab 100644
--- a/src/lib/collator.cc
+++ b/src/lib/collator.cc
@@ -36,10 +36,10 @@ using std::string;
using std::vector;
-Collator::Collator()
+Collator::Collator(char const* locale)
{
UErrorCode status = U_ZERO_ERROR;
- _collator = ucol_open(nullptr, &status);
+ _collator = ucol_open(locale, &status);
if (_collator) {
ucol_setAttribute(_collator, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
/* Ignore case and character encoding (and probably some other things) */
diff --git a/src/lib/collator.h b/src/lib/collator.h
index 1768c43c0..3cbb40748 100644
--- a/src/lib/collator.h
+++ b/src/lib/collator.h
@@ -32,7 +32,7 @@ struct UCollator;
class Collator
{
public:
- Collator();
+ Collator(char const* locale = nullptr);
~Collator();
Collator(Collator const &) = delete;
diff --git a/test/collator_test.cc b/test/collator_test.cc
index e88d71b06..477b3747f 100644
--- a/test/collator_test.cc
+++ b/test/collator_test.cc
@@ -25,7 +25,7 @@
BOOST_AUTO_TEST_CASE(collator_compare_works_and_ignores_case)
{
- Collator collator;
+ Collator collator("en");
BOOST_CHECK_EQUAL(collator.compare("So often YOU won't even notice", "SO OFTEN you won't even NOTiCE"), 0);
BOOST_CHECK_EQUAL(collator.compare("So often YOU won't even notice", "SO OFTEN you won't even see"), -1);
@@ -35,7 +35,7 @@ BOOST_AUTO_TEST_CASE(collator_compare_works_and_ignores_case)
BOOST_AUTO_TEST_CASE(collator_search_works_and_ignores_case)
{
- Collator collator;
+ Collator collator("en");
BOOST_CHECK(collator.find("outh", "With filthy mouths, and bad attitudes"));
BOOST_CHECK(collator.find("with", "With filthy mouths, and bad attitudes"));