fixed the last of the off-by-one errors (some are refixed, again...)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2001-08-14 03:09:59 +00:00
parent 0e32fdb872
commit abb69c6c82
4 changed files with 56 additions and 40 deletions

View File

@@ -87,8 +87,9 @@ methodOverrideMap = {
'''wxString %s(int startPos, int endPos) { '''wxString %s(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
if (!len) return "";
TextRange tr; TextRange tr;
tr.lpstrText = text.GetWriteBuf(len*2+1); tr.lpstrText = text.GetWriteBuf(len*2);
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(%s, 0, (long)&tr); SendMsg(%s, 0, (long)&tr);
@@ -112,10 +113,11 @@ methodOverrideMap = {
'''wxString %s(int* linePos) { '''wxString %s(int* linePos) {
wxString text; wxString text;
int len = LineLength(GetCurrentLine()); int len = LineLength(GetCurrentLine());
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(%s, len, (long)buf); int pos = SendMsg(%s, len, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
if (linePos) *linePos = pos; if (linePos) *linePos = pos;
return text;''', return text;''',
@@ -280,10 +282,11 @@ methodOverrideMap = {
'''wxString %s(int line) { '''wxString %s(int line) {
wxString text; wxString text;
int len = LineLength(line); int len = LineLength(line);
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(%s, line, (long)buf); int pos = SendMsg(%s, line, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
@@ -300,10 +303,11 @@ methodOverrideMap = {
GetSelection(&start, &end); GetSelection(&start, &end);
int len = end - start; int len = end - start;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
SendMsg(%s, 0, (long)buff); SendMsg(%s, 0, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
('Retrieve the selected text.',)), ('Retrieve the selected text.',)),
@@ -314,14 +318,15 @@ methodOverrideMap = {
'''wxString %s(int startPos, int endPos) { '''wxString %s(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
TextRange tr; TextRange tr;
tr.lpstrText = buff; tr.lpstrText = buff;
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(%s, 0, (long)&tr); SendMsg(%s, 0, (long)&tr);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
('Retrieve a range of text.',)), ('Retrieve a range of text.',)),
@@ -339,11 +344,10 @@ methodOverrideMap = {
'''wxString %s() { '''wxString %s() {
wxString text; wxString text;
int len = GetTextLength()+1; int len = GetTextLength()+1;
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len);
SendMsg(%s, len, (long)buff); SendMsg(%s, len, (long)buff);
buff[len] = 0; text.UngetWriteBuf(len-1);
text.UngetWriteBuf();
return text;''', return text;''',
('Retrieve all the text in the document.', )), ('Retrieve all the text in the document.', )),

View File

@@ -253,8 +253,9 @@ void wxStyledTextCtrl::SetSavePoint() {
wxString wxStyledTextCtrl::GetStyledText(int startPos, int endPos) { wxString wxStyledTextCtrl::GetStyledText(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
if (!len) return "";
TextRange tr; TextRange tr;
tr.lpstrText = text.GetWriteBuf(len*2+1); tr.lpstrText = text.GetWriteBuf(len*2);
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(2015, 0, (long)&tr); SendMsg(2015, 0, (long)&tr);
@@ -319,10 +320,11 @@ void wxStyledTextCtrl::SetAnchor(int posAnchor) {
wxString wxStyledTextCtrl::GetCurLine(int* linePos) { wxString wxStyledTextCtrl::GetCurLine(int* linePos) {
wxString text; wxString text;
int len = LineLength(GetCurrentLine()); int len = LineLength(GetCurrentLine());
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2027, len, (long)buf); int pos = SendMsg(2027, len, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
if (linePos) *linePos = pos; if (linePos) *linePos = pos;
return text; return text;
@@ -921,10 +923,11 @@ int wxStyledTextCtrl::GetFirstVisibleLine() {
wxString wxStyledTextCtrl::GetLine(int line) { wxString wxStyledTextCtrl::GetLine(int line) {
wxString text; wxString text;
int len = LineLength(line); int len = LineLength(line);
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2153, line, (long)buf); int pos = SendMsg(2153, line, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -972,10 +975,11 @@ wxString wxStyledTextCtrl::GetSelectedText() {
GetSelection(&start, &end); GetSelection(&start, &end);
int len = end - start; int len = end - start;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
SendMsg(2161, 0, (long)buff); SendMsg(2161, 0, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -983,14 +987,15 @@ wxString wxStyledTextCtrl::GetSelectedText() {
wxString wxStyledTextCtrl::GetTextRange(int startPos, int endPos) { wxString wxStyledTextCtrl::GetTextRange(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
TextRange tr; TextRange tr;
tr.lpstrText = buff; tr.lpstrText = buff;
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(2162, 0, (long)&tr); SendMsg(2162, 0, (long)&tr);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -1078,11 +1083,10 @@ void wxStyledTextCtrl::SetText(const wxString& text) {
wxString wxStyledTextCtrl::GetText() { wxString wxStyledTextCtrl::GetText() {
wxString text; wxString text;
int len = GetTextLength()+1; int len = GetTextLength()+1;
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len);
SendMsg(2182, len, (long)buff); SendMsg(2182, len, (long)buff);
buff[len] = 0; text.UngetWriteBuf(len-1);
text.UngetWriteBuf();
return text; return text;
} }

View File

@@ -87,8 +87,9 @@ methodOverrideMap = {
'''wxString %s(int startPos, int endPos) { '''wxString %s(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
if (!len) return "";
TextRange tr; TextRange tr;
tr.lpstrText = text.GetWriteBuf(len*2+1); tr.lpstrText = text.GetWriteBuf(len*2);
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(%s, 0, (long)&tr); SendMsg(%s, 0, (long)&tr);
@@ -112,10 +113,11 @@ methodOverrideMap = {
'''wxString %s(int* linePos) { '''wxString %s(int* linePos) {
wxString text; wxString text;
int len = LineLength(GetCurrentLine()); int len = LineLength(GetCurrentLine());
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(%s, len, (long)buf); int pos = SendMsg(%s, len, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
if (linePos) *linePos = pos; if (linePos) *linePos = pos;
return text;''', return text;''',
@@ -280,10 +282,11 @@ methodOverrideMap = {
'''wxString %s(int line) { '''wxString %s(int line) {
wxString text; wxString text;
int len = LineLength(line); int len = LineLength(line);
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(%s, line, (long)buf); int pos = SendMsg(%s, line, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
@@ -300,10 +303,11 @@ methodOverrideMap = {
GetSelection(&start, &end); GetSelection(&start, &end);
int len = end - start; int len = end - start;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
SendMsg(%s, 0, (long)buff); SendMsg(%s, 0, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
('Retrieve the selected text.',)), ('Retrieve the selected text.',)),
@@ -314,14 +318,15 @@ methodOverrideMap = {
'''wxString %s(int startPos, int endPos) { '''wxString %s(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
TextRange tr; TextRange tr;
tr.lpstrText = buff; tr.lpstrText = buff;
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(%s, 0, (long)&tr); SendMsg(%s, 0, (long)&tr);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text;''', return text;''',
('Retrieve a range of text.',)), ('Retrieve a range of text.',)),
@@ -339,11 +344,10 @@ methodOverrideMap = {
'''wxString %s() { '''wxString %s() {
wxString text; wxString text;
int len = GetTextLength()+1; int len = GetTextLength()+1;
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len);
SendMsg(%s, len, (long)buff); SendMsg(%s, len, (long)buff);
buff[len] = 0; text.UngetWriteBuf(len-1);
text.UngetWriteBuf();
return text;''', return text;''',
('Retrieve all the text in the document.', )), ('Retrieve all the text in the document.', )),

View File

@@ -253,8 +253,9 @@ void wxStyledTextCtrl::SetSavePoint() {
wxString wxStyledTextCtrl::GetStyledText(int startPos, int endPos) { wxString wxStyledTextCtrl::GetStyledText(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
if (!len) return "";
TextRange tr; TextRange tr;
tr.lpstrText = text.GetWriteBuf(len*2+1); tr.lpstrText = text.GetWriteBuf(len*2);
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(2015, 0, (long)&tr); SendMsg(2015, 0, (long)&tr);
@@ -319,10 +320,11 @@ void wxStyledTextCtrl::SetAnchor(int posAnchor) {
wxString wxStyledTextCtrl::GetCurLine(int* linePos) { wxString wxStyledTextCtrl::GetCurLine(int* linePos) {
wxString text; wxString text;
int len = LineLength(GetCurrentLine()); int len = LineLength(GetCurrentLine());
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2027, len, (long)buf); int pos = SendMsg(2027, len, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
if (linePos) *linePos = pos; if (linePos) *linePos = pos;
return text; return text;
@@ -921,10 +923,11 @@ int wxStyledTextCtrl::GetFirstVisibleLine() {
wxString wxStyledTextCtrl::GetLine(int line) { wxString wxStyledTextCtrl::GetLine(int line) {
wxString text; wxString text;
int len = LineLength(line); int len = LineLength(line);
if (!len) return "";
char* buf = text.GetWriteBuf(len); char* buf = text.GetWriteBuf(len);
int pos = SendMsg(2153, line, (long)buf); int pos = SendMsg(2153, line, (long)buf);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -972,10 +975,11 @@ wxString wxStyledTextCtrl::GetSelectedText() {
GetSelection(&start, &end); GetSelection(&start, &end);
int len = end - start; int len = end - start;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
SendMsg(2161, 0, (long)buff); SendMsg(2161, 0, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -983,14 +987,15 @@ wxString wxStyledTextCtrl::GetSelectedText() {
wxString wxStyledTextCtrl::GetTextRange(int startPos, int endPos) { wxString wxStyledTextCtrl::GetTextRange(int startPos, int endPos) {
wxString text; wxString text;
int len = endPos - startPos; int len = endPos - startPos;
char* buff = text.GetWriteBuf(len+1); if (!len) return "";
char* buff = text.GetWriteBuf(len);
TextRange tr; TextRange tr;
tr.lpstrText = buff; tr.lpstrText = buff;
tr.chrg.cpMin = startPos; tr.chrg.cpMin = startPos;
tr.chrg.cpMax = endPos; tr.chrg.cpMax = endPos;
SendMsg(2162, 0, (long)&tr); SendMsg(2162, 0, (long)&tr);
text.UngetWriteBuf(); text.UngetWriteBuf(len);
return text; return text;
} }
@@ -1078,11 +1083,10 @@ void wxStyledTextCtrl::SetText(const wxString& text) {
wxString wxStyledTextCtrl::GetText() { wxString wxStyledTextCtrl::GetText() {
wxString text; wxString text;
int len = GetTextLength()+1; int len = GetTextLength()+1;
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len);
SendMsg(2182, len, (long)buff); SendMsg(2182, len, (long)buff);
buff[len] = 0; text.UngetWriteBuf(len-1);
text.UngetWriteBuf();
return text; return text;
} }