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

Unified Diff: base/i18n/word_iterator.h

Issue 5718003: Remove ICU header dependencies outside of /i18n directory.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 years 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
« no previous file with comments | « no previous file | base/i18n/word_iterator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/i18n/word_iterator.h
===================================================================
--- base/i18n/word_iterator.h (revision 68796)
+++ base/i18n/word_iterator.h (working copy)
@@ -8,18 +8,27 @@
#include <vector>
-#include "unicode/ubrk.h"
-#include "unicode/uchar.h"
-
#include "base/basictypes.h"
#include "base/string16.h"
// The WordIterator class iterates through the words and word breaks
-// in a string. (In the string " foo bar! ", the word breaks are at the
-// periods in ". .foo. .bar.!. .".)
+// in a UTF-16 string.
//
-// To extract the words from a string, move a WordIterator through the
-// string and test whether IsWord() is true. E.g.,
+// It provides two modes, BREAK_WORD and BREAK_LINE, which modify how
+// trailing non-word characters are aggregated into the returned word.
+//
+// Under BREAK_WORD mode (more common), the non-word characters are
+// not included with a returned word (e.g. in the UTF-16 equivalent of
+// the string " foo bar! ", the word breaks are at the periods in
+// ". .foo. .bar.!. .").
+//
+// Under BREAK_LINE mode (less common), the non-word characters are
+// included in the word, breaking only when a space-equivalent character
+// is encountered (e.g. in the UTF16-equivalent of the string " foo bar! ",
+// the word breaks are at the periods in ". .foo .bar! .").
+//
+// To extract the words from a string, move a BREAK_WORD WordIterator
+// through the string and test whether IsWord() is true. E.g.,
// WordIterator iter(&str, WordIterator::BREAK_WORD);
// if (!iter.Init()) return false;
// while (iter.Advance()) {
@@ -68,11 +77,11 @@
string16 GetWord() const;
private:
- // ICU iterator.
- UBreakIterator* iter_;
-#if !defined(WCHAR_T_IS_UTF16)
- std::vector<UChar> chars_;
-#endif
+ // ICU iterator, avoiding ICU ubrk.h dependence.
+ // This is actually an ICU UBreakiterator* type, which turns out to be
+ // a typedef for a void* in the ICU headers. Using void* directly prevents
+ // callers from needing access to the ICU public headers directory.
+ void* iter_;
// The string we're iterating over.
const string16* string_;
« no previous file with comments | « no previous file | base/i18n/word_iterator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698