X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f97d84a63b21fffcc830390e5bc3fe0eedb6e15b..bcd3d8d9e26e41615d26d457ba0e2b84b80a0356:/src/stc/gen_iface.py?ds=sidebyside diff --git a/src/stc/gen_iface.py b/src/stc/gen_iface.py index b7dd756715..eba0f3c586 100644 --- a/src/stc/gen_iface.py +++ b/src/stc/gen_iface.py @@ -19,14 +19,14 @@ from fileinput import FileInput IFACE = './scintilla/include/Scintilla.iface' H_TEMPLATE = './stc.h.in' CPP_TEMPLATE = './stc.cpp.in' -H_DEST = '../../include/wx/stc/stc.h' # './stc_test.h' # -CPP_DEST = './stc.cpp' #'./stc_test.cpp' +H_DEST = '../../include/wx/stc/stc.h' +CPP_DEST = './stc.cpp' # Value prefixes to convert valPrefixes = [('SCI_', ''), ('SC_', ''), - ('SCN_', None), # just toss these... + ('SCN_', None), # just toss these out... ('SCEN_', None), ('SCE_', ''), ('SCLEX_', 'LEX_'), @@ -35,7 +35,7 @@ valPrefixes = [('SCI_', ''), ('SCWS_', 'WS_'), ] -# Message funcion values that should have a CMD_ constant as well +# Message function values that should have a CMD_ constant as well cmdValues = [ (2300, 2350), 2011, 2013, (2176, 2180) ] @@ -87,8 +87,9 @@ methodOverrideMap = { '''wxString %s(int startPos, int endPos) { wxString text; int len = endPos - startPos; + if (!len) return ""; TextRange tr; - tr.lpstrText = text.GetWriteBuf(len*2+1); + tr.lpstrText = text.GetWriteBuf(len*2); tr.chrg.cpMin = startPos; tr.chrg.cpMax = endPos; SendMsg(%s, 0, (long)&tr); @@ -112,10 +113,11 @@ methodOverrideMap = { '''wxString %s(int* linePos) { wxString text; int len = LineLength(GetCurrentLine()); - char* buf = text.GetWriteBuf(len+1); + if (!len) return ""; + char* buf = text.GetWriteBuf(len); int pos = SendMsg(%s, len, (long)buf); - text.UngetWriteBuf(); + text.UngetWriteBuf(len); if (linePos) *linePos = pos; return text;''', @@ -280,10 +282,11 @@ methodOverrideMap = { '''wxString %s(int line) { wxString text; int len = LineLength(line); - char* buf = text.GetWriteBuf(len+1); + if (!len) return ""; + char* buf = text.GetWriteBuf(len); int pos = SendMsg(%s, line, (long)buf); - text.UngetWriteBuf(); + text.UngetWriteBuf(len); return text;''', @@ -300,10 +303,11 @@ methodOverrideMap = { GetSelection(&start, &end); int len = end - start; - char* buff = text.GetWriteBuf(len+1); + if (!len) return ""; + char* buff = text.GetWriteBuf(len); SendMsg(%s, 0, (long)buff); - text.UngetWriteBuf(); + text.UngetWriteBuf(len); return text;''', ('Retrieve the selected text.',)), @@ -314,14 +318,15 @@ methodOverrideMap = { '''wxString %s(int startPos, int endPos) { wxString text; int len = endPos - startPos; - char* buff = text.GetWriteBuf(len+1); + if (!len) return ""; + char* buff = text.GetWriteBuf(len); TextRange tr; tr.lpstrText = buff; tr.chrg.cpMin = startPos; tr.chrg.cpMax = endPos; SendMsg(%s, 0, (long)&tr); - text.UngetWriteBuf(); + text.UngetWriteBuf(len); return text;''', ('Retrieve a range of text.',)), @@ -338,12 +343,11 @@ methodOverrideMap = { '''wxString %s() { wxString text; - int len = GetTextLength(); - char* buff = text.GetWriteBuf(len+1); + int len = GetTextLength()+1; + char* buff = text.GetWriteBuf(len); SendMsg(%s, len, (long)buff); - buff[len] = 0; - text.UngetWriteBuf(); + text.UngetWriteBuf(len-1); return text;''', ('Retrieve all the text in the document.', )),