From 015250ae971308109b4dc40e7bcb9c96e91a0352 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Thu, 26 May 2011 23:14:38 +0200 Subject: [PATCH] Added unicode Compatible Composition for all features "name" to improve search --- generator/generator_tool/generator_tool.pro | 2 +- generator/osm2type.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/generator/generator_tool/generator_tool.pro b/generator/generator_tool/generator_tool.pro index 61b08064cb..b2d5c6c1bd 100644 --- a/generator/generator_tool/generator_tool.pro +++ b/generator/generator_tool/generator_tool.pro @@ -9,7 +9,7 @@ CONFIG += console CONFIG -= app_bundle TEMPLATE = app -# needed for Platform::WorkingDir() +# needed for Platform::WorkingDir() and unicode combining QT += core win32:LIBS += -lShell32 diff --git a/generator/osm2type.cpp b/generator/osm2type.cpp index 4ab8fa8aff..0dd87f42ca 100644 --- a/generator/osm2type.cpp +++ b/generator/osm2type.cpp @@ -18,7 +18,7 @@ #include "../std/set.hpp" #include "../std/algorithm.hpp" -#include "../base/start_mem_debug.hpp" +#include namespace ftype { @@ -548,7 +548,14 @@ namespace ftype { string lang; strings::Tokenize(k, "\t :", get_lang(lang)); if (!lang.empty()) - m_params.name.AddString(lang, v); + { + // Unicode Compatibility Decomposition, + // followed by Canonical Composition (NFKC). + // Needed for better search matching + QByteArray const normBytes = QString::fromUtf8( + v.c_str()).normalized(QString::NormalizationForm_KC).toUtf8(); + m_params.name.AddString(lang, normBytes.constData()); + } // get layer if (k == "layer" && m_params.layer == 0)