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