From e9280bf01239e81b01899992647766d0c073253b Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 19 Oct 2022 13:36:08 +1100 Subject: Feature [feature-requests:#1455] Implement GetStyledTextFull as a 64-bit safe version of GetStyledText. --- test/ScintillaCallable.py | 10 ++++++++++ test/simpleTests.py | 9 +++++++++ 2 files changed, 19 insertions(+) (limited to 'test') diff --git a/test/ScintillaCallable.py b/test/ScintillaCallable.py index d8d16c7e3..126281aac 100644 --- a/test/ScintillaCallable.py +++ b/test/ScintillaCallable.py @@ -172,6 +172,16 @@ class ScintillaCallable: styledText = tr.lpstrText[:length] styledText += b"\0" * (length - len(styledText)) return styledText + def StyledTextRangeFull(self, start, end): + tr = TEXTRANGEFULL() + tr.cpMin = start + tr.cpMax = end + length = 2 * (end - start) + tr.lpstrText = ctypes.create_string_buffer(length + 2) + self.GetStyledTextFull(0, ctypes.byref(tr)) + styledText = tr.lpstrText[:length] + styledText += b"\0" * (length - len(styledText)) + return styledText def FindBytes(self, start, end, s, flags): ft = FINDTEXT() ft.cpMin = start diff --git a/test/simpleTests.py b/test/simpleTests.py index 92d6a92a7..2b5d3bc0e 100644 --- a/test/simpleTests.py +++ b/test/simpleTests.py @@ -62,6 +62,15 @@ class TestSimple(unittest.TestCase): self.assertEquals(self.ed.GetStyleAt(0), 0) self.assertEquals(self.ed.StyledTextRange(0, 1), b"x\0") + def testStyledTextRangeFull(self): + self.assertEquals(self.ed.EndStyled, 0) + self.ed.AddStyledText(4, b"x\002y\377") + self.assertEquals(self.ed.StyledTextRangeFull(0, 1), b"x\002") + self.assertEquals(self.ed.StyledTextRangeFull(1, 2), b"y\377") + self.ed.ClearDocumentStyle() + self.assertEquals(self.ed.Length, 2) + self.assertEquals(self.ed.StyledTextRangeFull(0, 1), b"x\0") + def testStyling(self): self.assertEquals(self.ed.EndStyled, 0) self.ed.AddStyledText(4, b"x\002y\003") -- cgit v1.2.3