Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Gorshenin <y@maps.me>2016-05-13 19:55:14 +0300
committerYuri Gorshenin <y@maps.me>2016-05-13 20:20:06 +0300
commitd983a71d68104beb274fabb1fb07ba3b0e6c1764 (patch)
tree6f798858aacf87f22d0c1bc8edaf1ccb212dce19 /indexer/search_delimiters.cpp
parent07e00fcfb88fae9233bf93535c56a63afa4adac1 (diff)
[search] Added hashtags.
Diffstat (limited to 'indexer/search_delimiters.cpp')
-rw-r--r--indexer/search_delimiters.cpp38
1 files changed, 25 insertions, 13 deletions
diff --git a/indexer/search_delimiters.cpp b/indexer/search_delimiters.cpp
index 237942dc5b..5bbdb66db7 100644
--- a/indexer/search_delimiters.cpp
+++ b/indexer/search_delimiters.cpp
@@ -1,8 +1,8 @@
-#include "search_delimiters.hpp"
+#include "indexer/search_delimiters.hpp"
namespace search
{
-
+// Delimiters --------------------------------------------------------------------------------------
bool Delimiters::operator()(strings::UniChar c) const
{
// ascii ranges first
@@ -19,40 +19,40 @@ bool Delimiters::operator()(strings::UniChar c) const
switch (c)
{
case 0x2116: // NUMERO SIGN
-// case 0x00B0: // DEGREE SIGN
+ // case 0x00B0: // DEGREE SIGN
case 0x2013: // EN DASH
case 0x2019: // RIGHT SINGLE QUOTATION MARK
case 0x00AB: // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
case 0x00BB: // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
case 0x3000: // IDEOGRAPHIC SPACE
case 0x30FB: // KATAKANA MIDDLE DOT
-// case 0x00B4: // ACUTE ACCENT
+ // case 0x00B4: // ACUTE ACCENT
case 0x200E: // LEFT-TO-RIGHT MARK
case 0xFF08: // FULLWIDTH LEFT PARENTHESIS
-// case 0x00A0: // NO-BREAK SPACE
+ // case 0x00A0: // NO-BREAK SPACE
case 0xFF09: // FULLWIDTH RIGHT PARENTHESIS
case 0x2018: // LEFT SINGLE QUOTATION MARK
-// case 0x007E: // TILDE
+ // case 0x007E: // TILDE
case 0x2014: // EM DASH
-// case 0x007C: // VERTICAL LINE
+ // case 0x007C: // VERTICAL LINE
case 0x0F0B: // TIBETAN MARK INTERSYLLABIC TSHEG
case 0x201C: // LEFT DOUBLE QUOTATION MARK
case 0x201E: // DOUBLE LOW-9 QUOTATION MARK
-// case 0x00AE: // REGISTERED SIGN
+ // case 0x00AE: // REGISTERED SIGN
case 0xFFFD: // REPLACEMENT CHARACTER
case 0x200C: // ZERO WIDTH NON-JOINER
case 0x201D: // RIGHT DOUBLE QUOTATION MARK
case 0x3001: // IDEOGRAPHIC COMMA
case 0x300C: // LEFT CORNER BRACKET
case 0x300D: // RIGHT CORNER BRACKET
-// case 0x00B7: // MIDDLE DOT
+ // case 0x00B7: // MIDDLE DOT
case 0x061F: // ARABIC QUESTION MARK
case 0x2192: // RIGHTWARDS ARROW
case 0x2212: // MINUS SIGN
-// case 0x0091: // <control>
-// case 0x007D: // RIGHT CURLY BRACKET
-// case 0x007B: // LEFT CURLY BRACKET
-// case 0x00A9: // COPYRIGHT SIGN
+ // case 0x0091: // <control>
+ // case 0x007D: // RIGHT CURLY BRACKET
+ // case 0x007B: // LEFT CURLY BRACKET
+ // case 0x00A9: // COPYRIGHT SIGN
case 0x200D: // ZERO WIDTH JOINER
case 0x200B: // ZERO WIDTH SPACE
return true;
@@ -60,4 +60,16 @@ bool Delimiters::operator()(strings::UniChar c) const
return false;
}
+// DelimitersWithExceptions ------------------------------------------------------------------------
+DelimitersWithExceptions::DelimitersWithExceptions(vector<strings::UniChar> const & exceptions)
+ : m_exceptions(exceptions)
+{
+}
+
+bool DelimitersWithExceptions::operator()(strings::UniChar c) const
+{
+ if (find(m_exceptions.begin(), m_exceptions.end(), c) != m_exceptions.end())
+ return false;
+ return m_delimiters(c);
}
+} // namespace search