Ticket #13646: GetLineText3.patch

File GetLineText3.patch, 2.3 KB (added by troelsk, 6 years ago)

Trunk

  • include/wx/stc/stc.h

     
    46284628    // implement wxTextAreaBase pure virtual methods
    46294629    // ---------------------------------------------
    46304630
    4631     virtual int GetLineLength(long n) const { return GetLine(n).length(); }
    4632     virtual wxString GetLineText(long n) const { return GetLine(n); }
     4631    virtual wxString GetLineText(long lineNo) const
     4632    {
     4633        wxString text = GetLine((int)lineNo);
     4634        size_t lastNewLine = text.find_last_not_of(wxT("\r\n"));
     4635
     4636        if (lastNewLine != wxString::npos)
     4637            text.erase(lastNewLine + 1); // remove trailing cr+lf
     4638        else
     4639            text.clear();
     4640        return text;
     4641    }
    46334642    virtual int GetNumberOfLines() const { return GetLineCount(); }
    46344643
    46354644    virtual bool IsModified() const { return GetModify(); }
  • include/wx/textctrl.h

     
    541541    // lines access
    542542    // ------------
    543543
    544     virtual int GetLineLength(long lineNo) const = 0;
     544    virtual int GetLineLength(long lineNo) const { return (int)GetLineText(lineNo).length(); }
    545545    virtual wxString GetLineText(long lineNo) const = 0;
    546546    virtual int GetNumberOfLines() const = 0;
    547547
  • src/stc/stc.h.in

     
    370370    // implement wxTextAreaBase pure virtual methods
    371371    // ---------------------------------------------
    372372
    373     virtual int GetLineLength(long n) const { return GetLine(n).length(); }
    374     virtual wxString GetLineText(long n) const { return GetLine(n); }
     373    virtual wxString GetLineText(long lineNo) const
     374    {
     375        wxString text = GetLine((int)lineNo);
     376        size_t lastNewLine = text.find_last_not_of(wxT("\r\n"));
     377
     378        if (lastNewLine != wxString::npos)
     379            text.erase(lastNewLine + 1); // remove trailing cr+lf
     380        else
     381            text.clear();
     382        return text;
     383    }
    375384    virtual int GetNumberOfLines() const { return GetLineCount(); }
    376385
    377386    virtual bool IsModified() const { return GetModify(); }