diff options
author | nyamatongwe <devnull@localhost> | 2011-06-07 11:47:11 +1000 |
---|---|---|
committer | nyamatongwe <devnull@localhost> | 2011-06-07 11:47:11 +1000 |
commit | 991dbfef722926eb5c919d90ab4e1e6a93b5ed51 (patch) | |
tree | 3f137c47d78f5fb49f50684cb5e6ad5a8cc1f72f /src | |
parent | d220ba3aa321d58d1ab1bb7b07305c825ba53e16 (diff) | |
download | scintilla-mirror-991dbfef722926eb5c919d90ab4e1e6a93b5ed51.tar.gz |
Add Find method on RunStyles.
Diffstat (limited to 'src')
-rw-r--r-- | src/RunStyles.cxx | 15 | ||||
-rw-r--r-- | src/RunStyles.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/RunStyles.cxx b/src/RunStyles.cxx index 93688b3f9..643d2fb2d 100644 --- a/src/RunStyles.cxx +++ b/src/RunStyles.cxx @@ -233,3 +233,18 @@ bool RunStyles::AllSame() const { bool RunStyles::AllSameAs(int value) const { return AllSame() && (styles->ValueAt(0) == value); } + +int RunStyles::Find(int value, int start) const { + if (start < Length()) { + int run = start ? RunFromPosition(start) : 0; + if (styles->ValueAt(run) == value) + return start; + run++; + while (run < starts->Partitions()) { + if (styles->ValueAt(run) == value) + return starts->PositionFromPartition(run); + run++; + } + } + return -1; +} diff --git a/src/RunStyles.h b/src/RunStyles.h index d79e28618..a3efd93c9 100644 --- a/src/RunStyles.h +++ b/src/RunStyles.h @@ -40,6 +40,7 @@ public: int Runs() const; bool AllSame() const; bool AllSameAs(int value) const; + int Find(int value, int start) const; }; #ifdef SCI_NAMESPACE |