Index: base/i18n/word_iterator.cc |
=================================================================== |
--- base/i18n/word_iterator.cc (revision 69162) |
+++ base/i18n/word_iterator.cc (working copy) |
@@ -1,71 +0,0 @@ |
-// Copyright (c) 2009 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 "base/i18n/word_iterator.h" |
- |
-#include "base/logging.h" |
-#include "unicode/ubrk.h" |
-#include "unicode/uchar.h" |
-#include "unicode/ustring.h" |
- |
-const size_t npos = -1; |
- |
-WordIterator::WordIterator(const string16* str, BreakType break_type) |
- : iter_(NULL), |
- string_(str), |
- break_type_(break_type), |
- prev_(npos), |
- pos_(0) { |
-} |
- |
-WordIterator::~WordIterator() { |
- if (iter_) |
- ubrk_close(iter_); |
-} |
- |
-bool WordIterator::Init() { |
- UErrorCode status = U_ZERO_ERROR; |
- UBreakIteratorType break_type; |
- switch (break_type_) { |
- case BREAK_WORD: |
- break_type = UBRK_WORD; |
- break; |
- case BREAK_LINE: |
- break_type = UBRK_LINE; |
- break; |
- default: |
- NOTREACHED(); |
- break_type = UBRK_LINE; |
- } |
- iter_ = ubrk_open(break_type, NULL, |
- string_->data(), static_cast<int32_t>(string_->size()), |
- &status); |
- if (U_FAILURE(status)) { |
- NOTREACHED() << "ubrk_open failed"; |
- return false; |
- } |
- ubrk_first(iter_); // Move the iterator to the beginning of the string. |
- return true; |
-} |
- |
-bool WordIterator::Advance() { |
- prev_ = pos_; |
- const int32_t pos = ubrk_next(iter_); |
- if (pos == UBRK_DONE) { |
- pos_ = npos; |
- return false; |
- } else { |
- pos_ = static_cast<size_t>(pos); |
- return true; |
- } |
-} |
- |
-bool WordIterator::IsWord() const { |
- return (ubrk_getRuleStatus(iter_) != UBRK_WORD_NONE); |
-} |
- |
-string16 WordIterator::GetWord() const { |
- DCHECK(prev_ != npos && pos_ != npos); |
- return string_->substr(prev_, pos_ - prev_); |
-} |