> On 25 Apr 2017, at 10:08 pm, Phil Thompson <[email protected]> > wrote: > > > > On 25 Apr 2017, at 7:06 pm, Matic Kukovec <[email protected]> wrote: > >> > >>> On 25 Apr 2017, at 6:16 pm, Matic Kukovec <[email protected]> > >>> wrote: > >>>> > >>>> > >>>>> On 25 Apr 2017, at 5:08 pm, Matic Kukovec <[email protected]> > >>>>> wrote: > >>>>>> > >>>>>> Hi guys, > >>>>>> > >>>>>> I just noticed that when adding strings that contain null characters > >>>>>> ('\0') using the setText method, > >>>>>> QScintilla cuts off the string at the first null character it finds. > >>>>>> To be sure I opened the same text saved > >>>>>> to a file with Notepad++ and SciTE and there the null characters > >>>>>> appear. > >>>>>> > >>>>>> Is this a bug or should strings with null characters be handled > >>>>>> differently? > >>>>>> I used this example to for testing: > >>>>>> qscieditor.setText("Test\nText\nIn\n\0An\nQscintilla\nEditor") > >>>>> > >>>>> Is that C++ or Python? > >>>>> > >>>>> setText() uses the low-level Scintilla SCI_SETTEXT which accepts a '\0' > >>>>> string, ie. you will get the same result if you used Scintilla. > >>>>> > >>>>> Phil > >>>> > >>>> Hi Phil, > >>>> > >>>> I'm using Python3 and before I tried setText and now I tried as you > >>>> suggested: > >>>> qscieditor.SendScintilla(SCI_SETTEXT, > >>>> bytes("Test\nText\nIn\n\0An\nQscintilla\nEditor", encoding="ascii")) > >>>> and I get the same result. > >>>> I looked into the C++ setText method and it uses this line: > >>>> SendScintilla(SCI_SETTEXT, ScintillaBytesConstData(textAsBytes(text))); > >>>> Is there maybe an error in how the ScintillaBytesConstData or > >>>> textAsBytes convert the text? > >>>> I'm only guessing here. > >>> > >>> You misunderstand. I was saying that the behaviour you see is the way > >>> Scintilla works. > >>> > >>> Phil > >> > >> Are you sure? > >> Then how do SciTE and Notepad++ do this without cutting off at the first > >> '\0' character as they also use Scintilla? > > > > You'd have to look at the SciTE source code. Maybe... > > > > http://www.scintilla.org/ScintillaDoc.html#BackgroundLoadSave > > ...or use append() rather than setText(). > > Phil
append works! Forgot about that method. Thanks Phil! Matic
_______________________________________________ QScintilla mailing list [email protected] https://www.riverbankcomputing.com/mailman/listinfo/qscintilla
