Ticket #13646: GetLineText.patch

File GetLineText.patch, 2.4 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 int GetLineLength(long n) const { return (int)GetLineText(n).length(); }
     4632    virtual wxString GetLineText(long n) const
     4633    {
     4634        wxString text = GetLine((int)n);
     4635       
     4636        for (wxString::reverse_iterator it = text.rbegin(); it != text.rend(); it++)
     4637        {
     4638            if ( (*it != '\n') && (*it != '\r') )
     4639            {
     4640                // found last non-newline char, remove anything after it if
     4641                // necessary and stop in any case
     4642                if ( it != text.rbegin() )
     4643                    text.erase(it.base(), text.end());
     4644                break;
     4645            }
     4646        }
     4647        return text;
     4648    }
    46334649    virtual int GetNumberOfLines() const { return GetLineCount(); }
    46344650
    46354651    virtual bool IsModified() const { return GetModify(); }
  • 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 int GetLineLength(long n) const { return (int)GetLineText(n).length(); }
     374    virtual wxString GetLineText(long n) const
     375    {
     376        wxString text = GetLine((int)n);
     377       
     378        for (wxString::reverse_iterator it = text.rbegin(); it != text.rend(); it++)
     379        {
     380            if ( (*it != '\n') && (*it != '\r') )
     381            {
     382                // found last non-newline char, remove anything after it if
     383                // necessary and stop in any case
     384                if ( it != text.rbegin() )
     385                    text.erase(it.base(), text.end());
     386                break;
     387            }
     388        }
     389        return text;
     390    }
    375391    virtual int GetNumberOfLines() const { return GetLineCount(); }
    376392
    377393    virtual bool IsModified() const { return GetModify(); }