From 6f67e6d2e46f53606af07f8a861901ce44fd18b1 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 7 Feb 2012 23:55:07 +0000 Subject: [PATCH] Add length parameter to AddTextRaw and AppendTextRaw. Closes #1358 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/stc/stc.h | 4 ++-- interface/wx/stc/stc.h | 11 +++-------- src/stc/stc.cpp | 22 +++++++++++++--------- src/stc/stc.cpp.in | 12 ++++++++---- src/stc/stc.h.in | 4 ++-- 5 files changed, 28 insertions(+), 25 deletions(-) diff --git a/include/wx/stc/stc.h b/include/wx/stc/stc.h index 26ee4d5eba..0ac137cae1 100644 --- a/include/wx/stc/stc.h +++ b/include/wx/stc/stc.h @@ -4049,7 +4049,7 @@ public: // what is used internally by Scintilla in unicode builds. // Add text to the document at current position. - void AddTextRaw(const char* text); + void AddTextRaw(const char* text, int length=-1); // Insert string at a position. void InsertTextRaw(int pos, const char* text); @@ -4078,7 +4078,7 @@ public: wxCharBuffer GetTextRaw(); // Append a string to the end of the document without changing the selection. - void AppendTextRaw(const char* text); + void AppendTextRaw(const char* text, int length=-1); #ifdef SWIG %pythoncode "_stc_utf8_methods.py" diff --git a/interface/wx/stc/stc.h b/interface/wx/stc/stc.h index a9d2023bfe..8d034bed53 100644 --- a/interface/wx/stc/stc.h +++ b/interface/wx/stc/stc.h @@ -360,14 +360,9 @@ public: void AddText(const wxString& text); /** - The following methods are nearly equivalent to their similarly named - cousins above. The difference is that these methods bypass wxString - and always use a char* even if used in a unicode build of wxWidgets. - In that case the character data will be utf-8 encoded since that is - what is used internally by Scintilla in unicode builds. - Add text to the document at current position. + Add raw text to the document at current position. */ - void AddTextRaw(const char* text); + void AddTextRaw(const char* text, int length=-1); /** Enlarge the document to a particular size of text bytes. @@ -382,7 +377,7 @@ public: /** Append a string to the end of the document without changing the selection. */ - void AppendTextRaw(const char* text); + void AppendTextRaw(const char* text, int length=-1); /** Is there an auto-completion list visible? diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index 65713e1b49..4eaa62aa14 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -259,7 +259,7 @@ void wxStyledTextCtrl::SetHScrollBar(wxScrollBar* bar) { // Add text to the document at current position. void wxStyledTextCtrl::AddText(const wxString& text) { wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - SendMsg(2001, strlen(buf), (sptr_t)(const char*)buf); + SendMsg(2001, buf.length(), (sptr_t)(const char*)buf); } // Add array of cells to document. @@ -1709,7 +1709,7 @@ int wxStyledTextCtrl::GetTargetEnd() const int wxStyledTextCtrl::ReplaceTarget(const wxString& text) { wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - return SendMsg(2194, strlen(buf), (sptr_t)(const char*)buf); + return SendMsg(2194, buf.length(), (sptr_t)(const char*)buf); } // Replace the target text with the argument text after \d processing. @@ -1721,7 +1721,7 @@ int wxStyledTextCtrl::GetTargetEnd() const int wxStyledTextCtrl::ReplaceTargetRE(const wxString& text) { wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - return SendMsg(2195, strlen(buf), (sptr_t)(const char*)buf); + return SendMsg(2195, buf.length(), (sptr_t)(const char*)buf); } // Search for a counted string in the target and set the target to the found @@ -1730,7 +1730,7 @@ int wxStyledTextCtrl::GetTargetEnd() const int wxStyledTextCtrl::SearchInTarget(const wxString& text) { wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - return SendMsg(2197, strlen(buf), (sptr_t)(const char*)buf); + return SendMsg(2197, buf.length(), (sptr_t)(const char*)buf); } // Set the search flags used by SearchInTarget. @@ -2086,7 +2086,7 @@ bool wxStyledTextCtrl::GetUseVerticalScrollBar() const // Append a string to the end of the document without changing the selection. void wxStyledTextCtrl::AppendText(const wxString& text) { wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - SendMsg(2282, strlen(buf), (sptr_t)(const char*)buf); + SendMsg(2282, buf.length(), (sptr_t)(const char*)buf); } // Is drawing done in two phases with backgrounds drawn before foregrounds? @@ -4086,9 +4086,11 @@ bool wxStyledTextCtrl::GetUseAntiAliasing() { -void wxStyledTextCtrl::AddTextRaw(const char* text) +void wxStyledTextCtrl::AddTextRaw(const char* text, int length) { - SendMsg(SCI_ADDTEXT, strlen(text), (sptr_t)text); + if (length == -1) + length = strlen(text); + SendMsg(SCI_ADDTEXT, length, (sptr_t)text); } void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text) @@ -4176,9 +4178,11 @@ wxCharBuffer wxStyledTextCtrl::GetTextRaw() return buf; } -void wxStyledTextCtrl::AppendTextRaw(const char* text) +void wxStyledTextCtrl::AppendTextRaw(const char* text, int length) { - SendMsg(SCI_APPENDTEXT, strlen(text), (sptr_t)text); + if (length == -1) + length = strlen(text); + SendMsg(SCI_APPENDTEXT, length, (sptr_t)text); } diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index ec2e890e47..ab713613a2 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -586,9 +586,11 @@ bool wxStyledTextCtrl::GetUseAntiAliasing() { -void wxStyledTextCtrl::AddTextRaw(const char* text) +void wxStyledTextCtrl::AddTextRaw(const char* text, int length) { - SendMsg(SCI_ADDTEXT, strlen(text), (sptr_t)text); + if (length == -1) + length = strlen(text); + SendMsg(SCI_ADDTEXT, length, (sptr_t)text); } void wxStyledTextCtrl::InsertTextRaw(int pos, const char* text) @@ -676,9 +678,11 @@ wxCharBuffer wxStyledTextCtrl::GetTextRaw() return buf; } -void wxStyledTextCtrl::AppendTextRaw(const char* text) +void wxStyledTextCtrl::AppendTextRaw(const char* text, int length) { - SendMsg(SCI_APPENDTEXT, strlen(text), (sptr_t)text); + if (length == -1) + length = strlen(text); + SendMsg(SCI_APPENDTEXT, length, (sptr_t)text); } diff --git a/src/stc/stc.h.in b/src/stc/stc.h.in index 55e0501f78..ff6a136ab9 100644 --- a/src/stc/stc.h.in +++ b/src/stc/stc.h.in @@ -247,7 +247,7 @@ public: // what is used internally by Scintilla in unicode builds. // Add text to the document at current position. - void AddTextRaw(const char* text); + void AddTextRaw(const char* text, int length=-1); // Insert string at a position. void InsertTextRaw(int pos, const char* text); @@ -276,7 +276,7 @@ public: wxCharBuffer GetTextRaw(); // Append a string to the end of the document without changing the selection. - void AppendTextRaw(const char* text); + void AppendTextRaw(const char* text, int length=-1); #ifdef SWIG %%pythoncode "_stc_utf8_methods.py" -- 2.45.2