view lib-src/vcdiff @ 5041:efaa6cd845e5

add regexp-debugging -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-15 Ben Wing <ben@xemacs.org> * regex.c: * regex.c (DEBUG_FAIL_PRINT1): * regex.c (PUSH_FAILURE_POINT): * regex.c (POP_FAILURE_POINT): * regex.c (regex_compile): * regex.c (re_match_2_internal): * regex.h: * search.c: * search.c (search_buffer): * search.c (debug_regexps_changed): * search.c (vars_of_search): Add an internal variable debug_regexps and a corresponding Lisp variable `debug-regexps' that takes a list of areas in which to display debugging info about regex compilation and matching (currently three areas exist). Use existing debugging code already in regex.c and modify it so that it recognizes the debug_regexps variable and the flags in it. Rename variable `debug-xemacs-searches' to just `debug-searches', consistent with other debug vars. tests/ChangeLog addition: 2010-02-15 Ben Wing <ben@xemacs.org> * automated/search-tests.el (let): * automated/search-tests.el (boundp): debug-xemacs-searches renamed to debug-searches.
author Ben Wing <ben@xemacs.org>
date Mon, 15 Feb 2010 21:51:22 -0600
parents 376386a54a3c
children 061f4f90f874 06dd936cde16
line wrap: on
line source

#!/bin/sh
#
# Enhanced sccs diff utility for use with vc mode.
# This version is more compatible with rcsdiff(1).
#
#	!Id: vcdiff,v 1.4 1993/12/03 09:29:18 eggert Exp !
#
# Modified by: vladimir@Eng.Sun.COM on 95-06-07
# * Made sure that file arguments are specifed as s.<filename>.
# * Switched the assignments to $f inside the 3rd and 4th case statements of
#   the first for-loop
# * Removed the incorrect initialization of sid1 before the first for-loop.
#

DIFF="diff"
usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."

PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts

echo=
sid1= sid2=

for f
do
	case $f in
	-*)
		case $f in
		--brief)
			DIFF=cmp;;
		-q)
			echo=:;;
		-r?*)
			case $sid1 in
			-r*)
				sid2=$f
				;;
			*) 
				case $sid2 in
				  ?*) echo "$usage" >&2; exit 2 ;;
				esac
				sid1=$f
				;;
			esac
			;;
		*)
			options="$options $f"
			;;
		esac
		shift
		;;
	*)
		break
		;;
	esac
done

case $# in
0)
	echo "$usage" >&2
	exit 2
esac


rev1= rev2= status=0
trap 'status=2; exit' 1 2 13 15
trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0

for f
do
  s=2

  # For files under SCCS control, fixup the file name to be the s. filename
  if [ -d SCCS ]; then
    if [ $f = `echo $f | sed -e 's|SCCS/s.||'` ]; then
      f="SCCS/s.$f"
    fi
  fi 

	case $f in
	s.* | */s.*)
		if
			rev1=/tmp/geta$$
			get -s -p -k $sid1 "$f" > $rev1 &&
			case $sid2 in
			'')
				workfile=`expr " /$f" : '.*/s.\(.*\)'`
				;;
			*)
				rev2=/tmp/getb$$
				get -s -p -k $sid2 "$f" > $rev2
				workfile=$rev2
			esac
		then
			$echo $DIFF $options $sid1 $sid2 $workfile >&2
			$DIFF $options $rev1 $workfile
			s=$?
		fi
		;;
	*)
		echo "$0: $f is not an SCCS file" >&2
	esac

	if test $status -lt $s
	then status=$s
	fi
done