diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 22:01:57 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 22:01:57 +0000 |
commit | 8939e9ecf23f09460c91543c783bed0bac780014 (patch) | |
tree | bd6930f74b05846299da0283c9da3f4c39fa1b24 /webkit/port/platform/chromium/TextBoundariesChromium.cpp | |
parent | 10e42bf623bcc526e25d5b22760cce3d0766039b (diff) | |
download | chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.zip chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.tar.gz chromium_src-8939e9ecf23f09460c91543c783bed0bac780014.tar.bz2 |
Move many files that were suffixed Win.cpp to Chromium.cpp, and place them in chromium/ subdirectories. We still build these files with PLATFORM(WIN) defined.
In this change, I also killed off LogWin.{h,cpp} since we don't use it. So, you will see some changes related to that.
R=dglazkov,tony
Review URL: http://codereview.chromium.org/7419
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3427 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port/platform/chromium/TextBoundariesChromium.cpp')
-rw-r--r-- | webkit/port/platform/chromium/TextBoundariesChromium.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/webkit/port/platform/chromium/TextBoundariesChromium.cpp b/webkit/port/platform/chromium/TextBoundariesChromium.cpp new file mode 100644 index 0000000..e633f9b --- /dev/null +++ b/webkit/port/platform/chromium/TextBoundariesChromium.cpp @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "TextBoundaries.h" + +#include <unicode/ubrk.h> + +#include "StringImpl.h" +#include "TextBreakIterator.h" + +namespace WebCore { + +int findNextWordFromIndex(const UChar* chars, int len, int position, bool forward) +{ + UBreakIterator* it = wordBreakIterator(chars, len); + + int newPosition = position; + + if (forward) { + position = ubrk_following(it, position); + while (position != UBRK_DONE) { + // We stop searching when the character preceeding the break + // is alphanumeric. + if (position < len && u_isalnum(chars[position - 1])) + return position; + + position = ubrk_following(it, position); + } + + return len; + } else { + position = ubrk_preceding(it, position); + while (position != UBRK_DONE) { + // We stop searching when the character following the break + // is alphanumeric. + if (position > 0 && u_isalnum(chars[position])) + return position; + + position = ubrk_preceding(it, position); + } + + return 0; + } +} + +void findWordBoundary(const UChar* chars, int len, int position, int* start, int* end) +{ + UBreakIterator* it = wordBreakIterator(chars, len); + *end = ubrk_following(it, position); + if (*end < 0) + *end = ubrk_last(it); + *start = ubrk_previous(it); +} + +} // namespace WebCore |