• Juri Linkov's avatar
    Make occur handle multi-line matches cleanly with context. · dc2d2590
    Juri Linkov authored
    * replace.el (occur-accumulate-lines): Add optional arg `pt'.
    (occur-engine): Add local variables `ret', `prev-after-lines',
    `prev-lines'.  Use more arguments for `occur-context-lines'.
    Set first elem of its returned list to `data', and the second elem
    to `prev-after-lines'.  Don't print the separator line.
    In the end, print remaining context after-lines.
    (occur-context-lines): Add new arguments `begpt', `endpt',
    `lines', `prev-lines', `prev-after-lines'.  Rewrite to combine
    after-lines of the previous match with before-lines of the
    current match and not overlap them.  Return a list with two
    values: the output line and the list of context after-lines.
    * search.texi (Other Repeating Search): Remove line that `occur'
    can not handle multiline matches.
    * occur-testsuite.el (occur-tests): Add tests for context lines.
occur-testsuite.el 5.14 KB