]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed the last of the off-by-one errors (some are refixed, again...)
authorRobin Dunn <robin@alldunn.com>
Tue, 14 Aug 2001 03:09:59 +0000 (03:09 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 14 Aug 2001 03:09:59 +0000 (03:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/stc/gen_iface.py
contrib/src/stc/stc.cpp
src/stc/gen_iface.py
src/stc/stc.cpp

index be86c9ce0e873a5a4d3b15a045c5b3331e5c43a9..eba0f3c586333492ff94dbbb753f602f8d47db2f 100644 (file)
@@ -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());
+                       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);
+                       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.',)),
@@ -339,11 +344,10 @@ methodOverrideMap = {
                  '''wxString %s() {
                         wxString text;
                         int   len  = GetTextLength()+1;
-                        char* buff = text.GetWriteBuf(len+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.', )),
index bed2b4ed4699d3dad9979b2fd27f127a20dfbc3e..6adfd80a8452e4c8a1f78bad4ffa4b0f9ca40ab7 100644 (file)
@@ -253,8 +253,9 @@ void wxStyledTextCtrl::SetSavePoint() {
 wxString wxStyledTextCtrl::GetStyledText(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(2015, 0, (long)&tr);
@@ -319,10 +320,11 @@ void wxStyledTextCtrl::SetAnchor(int posAnchor) {
 wxString wxStyledTextCtrl::GetCurLine(int* linePos) {
                        wxString text;
                        int len = LineLength(GetCurrentLine());
+                       if (!len) return "";
                        char* buf = text.GetWriteBuf(len);
 
                        int pos = SendMsg(2027, len, (long)buf);
-                       text.UngetWriteBuf();
+                       text.UngetWriteBuf(len);
                        if (linePos)  *linePos = pos;
 
                        return text;
@@ -921,10 +923,11 @@ int wxStyledTextCtrl::GetFirstVisibleLine() {
 wxString wxStyledTextCtrl::GetLine(int line) {
                        wxString text;
                        int len = LineLength(line);
+                       if (!len) return "";
                        char* buf = text.GetWriteBuf(len);
 
                        int pos = SendMsg(2153, line, (long)buf);
-                       text.UngetWriteBuf();
+                       text.UngetWriteBuf(len);
 
                        return text;
 }
@@ -972,10 +975,11 @@ wxString wxStyledTextCtrl::GetSelectedText() {
 
                             GetSelection(&start, &end);
                             int   len  = end - start;
-                            char* buff = text.GetWriteBuf(len+1);
+                            if (!len) return "";
+                            char* buff = text.GetWriteBuf(len);
 
                             SendMsg(2161, 0, (long)buff);
-                            text.UngetWriteBuf();
+                            text.UngetWriteBuf(len);
                             return text;
 }
 
@@ -983,14 +987,15 @@ wxString wxStyledTextCtrl::GetSelectedText() {
 wxString wxStyledTextCtrl::GetTextRange(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(2162, 0, (long)&tr);
-                            text.UngetWriteBuf();
+                            text.UngetWriteBuf(len);
                             return text;
 }
 
@@ -1078,11 +1083,10 @@ void wxStyledTextCtrl::SetText(const wxString& text) {
 wxString wxStyledTextCtrl::GetText() {
                         wxString text;
                         int   len  = GetTextLength()+1;
-                        char* buff = text.GetWriteBuf(len+1);
+                        char* buff = text.GetWriteBuf(len);
 
                         SendMsg(2182, len, (long)buff);
-                        buff[len] = 0;
-                        text.UngetWriteBuf();
+                        text.UngetWriteBuf(len-1);
                         return text;
 }
 
index be86c9ce0e873a5a4d3b15a045c5b3331e5c43a9..eba0f3c586333492ff94dbbb753f602f8d47db2f 100644 (file)
@@ -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());
+                       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);
+                       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.',)),
@@ -339,11 +344,10 @@ methodOverrideMap = {
                  '''wxString %s() {
                         wxString text;
                         int   len  = GetTextLength()+1;
-                        char* buff = text.GetWriteBuf(len+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.', )),
index bed2b4ed4699d3dad9979b2fd27f127a20dfbc3e..6adfd80a8452e4c8a1f78bad4ffa4b0f9ca40ab7 100644 (file)
@@ -253,8 +253,9 @@ void wxStyledTextCtrl::SetSavePoint() {
 wxString wxStyledTextCtrl::GetStyledText(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(2015, 0, (long)&tr);
@@ -319,10 +320,11 @@ void wxStyledTextCtrl::SetAnchor(int posAnchor) {
 wxString wxStyledTextCtrl::GetCurLine(int* linePos) {
                        wxString text;
                        int len = LineLength(GetCurrentLine());
+                       if (!len) return "";
                        char* buf = text.GetWriteBuf(len);
 
                        int pos = SendMsg(2027, len, (long)buf);
-                       text.UngetWriteBuf();
+                       text.UngetWriteBuf(len);
                        if (linePos)  *linePos = pos;
 
                        return text;
@@ -921,10 +923,11 @@ int wxStyledTextCtrl::GetFirstVisibleLine() {
 wxString wxStyledTextCtrl::GetLine(int line) {
                        wxString text;
                        int len = LineLength(line);
+                       if (!len) return "";
                        char* buf = text.GetWriteBuf(len);
 
                        int pos = SendMsg(2153, line, (long)buf);
-                       text.UngetWriteBuf();
+                       text.UngetWriteBuf(len);
 
                        return text;
 }
@@ -972,10 +975,11 @@ wxString wxStyledTextCtrl::GetSelectedText() {
 
                             GetSelection(&start, &end);
                             int   len  = end - start;
-                            char* buff = text.GetWriteBuf(len+1);
+                            if (!len) return "";
+                            char* buff = text.GetWriteBuf(len);
 
                             SendMsg(2161, 0, (long)buff);
-                            text.UngetWriteBuf();
+                            text.UngetWriteBuf(len);
                             return text;
 }
 
@@ -983,14 +987,15 @@ wxString wxStyledTextCtrl::GetSelectedText() {
 wxString wxStyledTextCtrl::GetTextRange(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(2162, 0, (long)&tr);
-                            text.UngetWriteBuf();
+                            text.UngetWriteBuf(len);
                             return text;
 }
 
@@ -1078,11 +1083,10 @@ void wxStyledTextCtrl::SetText(const wxString& text) {
 wxString wxStyledTextCtrl::GetText() {
                         wxString text;
                         int   len  = GetTextLength()+1;
-                        char* buff = text.GetWriteBuf(len+1);
+                        char* buff = text.GetWriteBuf(len);
 
                         SendMsg(2182, len, (long)buff);
-                        buff[len] = 0;
-                        text.UngetWriteBuf();
+                        text.UngetWriteBuf(len-1);
                         return text;
 }