Hi folks,<div><br></div><div>Found the following issue: QScintilla highlights wrong ranges with <span class="Apple-style-span" style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">SCI_INDICATORFILLRANGE if the text contains non-ascii characters.</span></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">Here is a code to reproduce:</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><div><div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#include <QApplication></span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#include <QFile></span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#include <Qsci/QsciScintilla.h></span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">int main(int argc, char* argv[]) {</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    QApplication app(argc, argv);</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    if ( argc < 2 ) {</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        return 0;</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    }</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    QsciScintilla sci;</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    sci.setUtf8(true);</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#ifdef Q_OS_WIN32</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    sci.setFont(QFont("Courier New", 10));</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#else</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    sci.setFont(QFont("Monospace", 10));</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">#endif</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    QFile file(argv[1]);</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    if ( file.open(QIODevice::ReadOnly) ) {</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        sci.read(&file);</span></font></div><div>

<font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        file.close();</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    }</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    int lineCount = sci.lines();</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    for ( int line = 0; line < lineCount; ++line ) {</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        // getting the position for the line's beginning</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        long linePos = sci.SendScintilla(QsciScintilla::SCI_POSITIONFROMLINE, line);</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        // highlighting exactly 10 characters starting from the 5th character</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">        sci.SendScintilla(QsciScintilla::SCI_INDICATORFILLRANGE, linePos + 5, 10);</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    }</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    sci.resize(500, 150);</span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    sci.show();</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    </span></font></div><div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">    return app.exec();</span></font></div>

<div><font class="Apple-style-span" face="'Lucida Grande', Verdana, Geneva, Arial, sans-serif" size="3"><span class="Apple-style-span" style="font-size: 12px;">}</span></font></div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

<br></div></div></div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; "><br></div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

The code is pretty much self-explanatory but just to be clear: trying to highlight exactly 10 characters starting from the 5th character of each line.</div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

As you can see it's not always 10 characters highlighted and it can be any number from 5 to 10 (depending on how many non-ascii symbols are there in highlighting region).</div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

Also highlighting not always starts at the 5th character (depending on how many non-ascii characters are there before the highlighting region).</div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

Looks like somewhere in highlighting code byte count is used instead of character count - that's why it works for ASCII chars but doesn't work for non-ASCII.</div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">

<br></div><div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">Here is the screenshot: <a href="http://dl.dropbox.com/u/6404414/qscintilla_hl_bug.png">http://dl.dropbox.com/u/6404414/qscintilla_hl_bug.png</a></div>

<div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; ">Here is the archive with the code above and a text file to test with: <a href="http://dl.dropbox.com/u/6404414/hlexample.zip">http://dl.dropbox.com/u/6404414/hlexample.zip</a> (launch the app with "test.txt" passed as the 1st argument).</div>

<div style="font-family: 'Lucida Grande', Verdana, Geneva, Arial, sans-serif; font-size: 12px; "><br></div><div>--<br clear="all">Best regards,<br>Mikhail.<br>
</div></div>