diff options
author | Yuri Gorshenin <y@maps.me> | 2016-05-13 19:55:14 +0300 |
---|---|---|
committer | Yuri Gorshenin <y@maps.me> | 2016-05-13 20:20:06 +0300 |
commit | d983a71d68104beb274fabb1fb07ba3b0e6c1764 (patch) | |
tree | 6f798858aacf87f22d0c1bc8edaf1ccb212dce19 /indexer/search_delimiters.cpp | |
parent | 07e00fcfb88fae9233bf93535c56a63afa4adac1 (diff) |
[search] Added hashtags.
Diffstat (limited to 'indexer/search_delimiters.cpp')
-rw-r--r-- | indexer/search_delimiters.cpp | 38 |
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 |