aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/RunStyles.cxx15
-rw-r--r--src/RunStyles.h1
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