Mercurial > emacs
view admin/make-changelog-diff @ 107653:bfde3c2dbef5
Make occur handle multi-line matches cleanly with context.
http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01280.html
* 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.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Tue, 30 Mar 2010 19:03:08 +0300 |
parents | 3e136d0943a4 |
children | 52a7f3f50b89 ef719132ddfa |
line wrap: on
line source
#! /bin/bash ## Author: Francesco Potorti` <pot@gnu.org> if [ $# -ne 2 ]; then echo "usage: $0 TAG1 TAG2" >&2 exit 1 fi if [ ! -f INSTALL -o ! -f configure -o ! -d lib-src ]; then echo "this script should be run in the emacs root directory" >&2 exit 2 fi cvs -q diff -b -r $1 -r $2 $(find -name ChangeLog|sort) | sed -n -e 's/^=\+/======/p' -e 's/^> //p' -e 's/^diff.*//p' \ -e 's/^RCS file: .cvsroot.emacs.emacs.\(.*\),v/\1/p' | sed -n -e "/^======$/ { N N h d } H s/.*// x s/^\n// p" # arch-tag: 7604a259-40b4-4f97-86b2-496a9c546f0a