[Okular-devel] [okular] [Bug 323262] New: "Find previous" fails at end of line

Jaan Vajakas jaanvajakas at hot.ee
Wed Aug 7 17:57:09 UTC 2013


https://bugs.kde.org/show_bug.cgi?id=323262

            Bug ID: 323262
           Summary: "Find previous" fails at end of line
    Classification: Unclassified
           Product: okular
           Version: 0.17.60
          Platform: unspecified
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: okular-devel at kde.org
          Reporter: jaanvajakas at hot.ee

When clicking the "Previous" button and the search string is at the end of the
line, the search fails. Debugging shows that this is because in the function
TextPagePrivate::findTextInternalBackward in textpage.cpp the line

  if ( !comparer( str.midRef(offset, min ), query.midRef( j - min + 1, min ),
                            &resStrLen, &resQueryLen ) )

is buggy: e. g. if line in a  PDF file consists of letters "abc" and the search
string is also "abc", then str (the text for the last entity of the line) is
"c\n", offset=0, min=2, j=2, so the code cited above compares "c\n" to "bc" and
finds no match.

The similar line in findTextInternalForward is also buggy if it is possible for
entities to have multi-character texts of other forms than <single character> +
<newline>, but I don't know if that can happen.


Reproducible: Always

Steps to Reproduce:
1. Open the attached file lineEnd.pdf.
2. Press F3 and type "abc". Okular highlights the first "abc".
3. Click Next. Okular highlights the next "abc".
4. Click Previous.
Actual Results:  
Okular finds no match (the search box takes a reddish color).

Expected Results:  
Okular should highlight the first "abc".

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Okular-devel mailing list