Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2932)

Unified Diff: chrome/browser/ui/app_list/search/term_break_iterator.cc

Issue 522683003: Move basic string operations to ui/app_list/search (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: gn Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/search/term_break_iterator.cc
diff --git a/chrome/browser/ui/app_list/search/term_break_iterator.cc b/chrome/browser/ui/app_list/search/term_break_iterator.cc
deleted file mode 100644
index 5ace7dcc7733cdad549e3aa1899ed34ad9111293..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/app_list/search/term_break_iterator.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/app_list/search/term_break_iterator.h"
-
-#include "base/i18n/char_iterator.h"
-#include "base/logging.h"
-#include "base/strings/string_util.h"
-#include "third_party/icu/source/common/unicode/uchar.h"
-
-namespace app_list {
-
-TermBreakIterator::TermBreakIterator(const base::string16& word)
- : word_(word),
- prev_(npos),
- pos_(0),
- iter_(new base::i18n::UTF16CharIterator(&word)),
- state_(STATE_START) {
-}
-
-TermBreakIterator::~TermBreakIterator() {}
-
-bool TermBreakIterator::Advance() {
- // 2D matrix that defines term boundaries. Each row represents current state.
- // Each col represents new state from input char. Cells with true value
- // represents a term boundary.
- const bool kBoundary[][STATE_LAST] = {
- // START NUMBER UPPER LOWER CHAR
- { false, false, false, false, false }, // START
- { false, false, true, true, true }, // NUMBER
- { false, true, false, false, true }, // UPPER
- { false, true, true, false, true }, // LOWER
- { false, true, true, true, false }, // CHAR
- };
-
- while (iter_->Advance()) {
- const State new_state = GetNewState(word_[iter_->array_pos()]);
- const bool is_boundary = kBoundary[state_][new_state];
- state_ = new_state;
- if (is_boundary)
- break;
- }
-
- prev_ = pos_;
- pos_ = iter_->array_pos();
-
- return prev_ != pos_ || !iter_->end();
-}
-
-const base::string16 TermBreakIterator::GetCurrentTerm() const {
- DCHECK(prev_ != npos && pos_ != npos);
- return word_.substr(prev_, pos_ - prev_);
-}
-
-TermBreakIterator::State TermBreakIterator::GetNewState(base::char16 ch) {
- if (IsAsciiDigit(ch) || ch == '.' || ch == ',')
- return STATE_NUMBER;
-
- const bool is_upper = !!u_isUUppercase(ch);
- const bool is_lower = !!u_isULowercase(ch);
-
- if (is_upper && is_lower) {
- NOTREACHED() << "Invalid state for ch=" << ch;
- return STATE_CHAR;
- }
-
- if (is_upper)
- return STATE_UPPER;
- if (is_lower)
- return STATE_LOWER;
-
- return STATE_CHAR;
-}
-
-} // namespace app_list

Powered by Google App Engine
This is Rietveld 408576698