aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib/LexAccessor.h
diff options
context:
space:
mode:
Diffstat (limited to 'lexlib/LexAccessor.h')
-rw-r--r--lexlib/LexAccessor.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/lexlib/LexAccessor.h b/lexlib/LexAccessor.h
index 4223f302d..92e719360 100644
--- a/lexlib/LexAccessor.h
+++ b/lexlib/LexAccessor.h
@@ -126,6 +126,21 @@ public:
return startNext - 1;
}
}
+ int GetRelativePosition(int start, int characterOffset, int *character, int *width) {
+ if (documentVersion >= dvLineEnd) {
+ return (static_cast<IDocumentWithLineEnd *>(pAccess))->GetRelativePosition(
+ start, characterOffset, character, width);
+ } else {
+ // Old version -> byte-oriented only
+ // Handle doc range overflow
+ int posNew = start + characterOffset;
+ if ((posNew < 0) || (posNew > Length()))
+ return -1;
+ *character = SafeGetCharAt(posNew, 0);
+ *width = 1;
+ return start + characterOffset;
+ }
+ }
int LevelAt(int line) const {
return pAccess->GetLevel(line);
}