diff options
Diffstat (limited to 'lexlib/LexAccessor.h')
-rw-r--r-- | lexlib/LexAccessor.h | 15 |
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); } |