]> git.saurik.com Git - wxWidgets.git/commitdiff
Strip EOL characters from wxStyledTextCtrl::GetLineText() return value.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 8 Dec 2012 00:37:13 +0000 (00:37 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 8 Dec 2012 00:37:13 +0000 (00:37 +0000)
For consistency with all the other wxTextCtrl-like classes, the value returned
by this method must not include line terminator characters (like '\n'). Notice
that Scintilla-specific GetLine() does still include them, for consistency
with the Scintilla API itself.

Closes #13646.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/stc/stc.h
src/stc/stc.h.in

index ca27bc89f7b7da122b46c9b71c63f937bc6eb6b8..f71fe5f77282604ff97863738aae0b7cb34a221d 100644 (file)
@@ -4629,7 +4629,17 @@ public:
     // ---------------------------------------------
 
     virtual int GetLineLength(long n) const { return GetLine(n).length(); }
-    virtual wxString GetLineText(long n) const { return GetLine(n); }
+    virtual wxString GetLineText(long lineNo) const
+    {
+        wxString text = GetLine(static_cast<int>(lineNo));
+        size_t lastNewLine = text.find_last_not_of(wxS("\r\n"));
+
+        if ( lastNewLine != wxString::npos )
+            text.erase(lastNewLine + 1); // remove trailing cr+lf
+        else
+            text.clear();
+        return text;
+    }
     virtual int GetNumberOfLines() const { return GetLineCount(); }
 
     virtual bool IsModified() const { return GetModify(); }
index abbfe19b2a21444bf768c499fc3b5eb69fa73e68..e4b3a05406dbdfecbcd798d5245325ef3fa17be4 100644 (file)
@@ -371,7 +371,17 @@ public:
     // ---------------------------------------------
 
     virtual int GetLineLength(long n) const { return GetLine(n).length(); }
-    virtual wxString GetLineText(long n) const { return GetLine(n); }
+    virtual wxString GetLineText(long lineNo) const
+    {
+        wxString text = GetLine(static_cast<int>(lineNo));
+        size_t lastNewLine = text.find_last_not_of(wxS("\r\n"));
+
+        if ( lastNewLine != wxString::npos )
+            text.erase(lastNewLine + 1); // remove trailing cr+lf
+        else
+            text.clear();
+        return text;
+    }
     virtual int GetNumberOfLines() const { return GetLineCount(); }
 
     virtual bool IsModified() const { return GetModify(); }