diff options
author | Eivind Eklund <eivind@FreeBSD.org> | 2000-09-20 11:37:28 +0000 |
---|---|---|
committer | Eivind Eklund <eivind@FreeBSD.org> | 2000-09-20 11:37:28 +0000 |
commit | 7a234679bfe94891d10ebdccae9c90959a71244f (patch) | |
tree | 38cc27f0aa9481d63517088134704a2357e6a523 /textproc | |
parent | 9997b702fe09fdca009887ebb3813a966d2c6b9c (diff) | |
download | ports-7a234679bfe94891d10ebdccae9c90959a71244f.tar.gz ports-7a234679bfe94891d10ebdccae9c90959a71244f.zip |
Colorizing diff viewing tool
Notes
Notes:
svn path=/head/; revision=32893
Diffstat (limited to 'textproc')
-rw-r--r-- | textproc/Makefile | 1 | ||||
-rw-r--r-- | textproc/cdiff/Makefile | 33 | ||||
-rw-r--r-- | textproc/cdiff/pkg-comment | 1 | ||||
-rw-r--r-- | textproc/cdiff/pkg-descr | 4 | ||||
-rw-r--r-- | textproc/cdiff/pkg-plist | 1 | ||||
-rw-r--r-- | textproc/cdiff/src/cdiff.1 | 67 | ||||
-rw-r--r-- | textproc/cdiff/src/cdiff.sh | 11 |
7 files changed, 118 insertions, 0 deletions
diff --git a/textproc/Makefile b/textproc/Makefile index f19477c1c5f6..44f53afd8bc9 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -9,6 +9,7 @@ SUBDIR += c2html SUBDIR += catdoc SUBDIR += cdif + SUBDIR += cdiff SUBDIR += chpp SUBDIR += cocoon SUBDIR += code2html diff --git a/textproc/cdiff/Makefile b/textproc/cdiff/Makefile new file mode 100644 index 000000000000..b2a251d72717 --- /dev/null +++ b/textproc/cdiff/Makefile @@ -0,0 +1,33 @@ +# New ports collection makefile for: cdiff +# Date created: September 20th 2000 +# Whom: des +# +# $FreeBSD$ +# +# This port is self contained in the src directory. +# + +PORTNAME= cdiff +PORTVERSION= 1.0 +CATEGORIES= textproc +MASTER_SITES= # none +DISTFILES= # none + +MAINTAINER= eivind@FreeBSD.org + +NO_BUILD= yes +NO_WRKSUBDIR= yes +USE_PERL5= yes + +SRC= ${.CURDIR}/src + +MAN1= cdiff.1 + +do-fetch: + @${DO_NADA} + +do-install: + @${INSTALL_SCRIPT} ${SRC}/cdiff.sh ${PREFIX}/bin/cdiff + @${INSTALL_MAN} ${SRC}/cdiff.1 ${PREFIX}/man/man1 + +.include <bsd.port.mk> diff --git a/textproc/cdiff/pkg-comment b/textproc/cdiff/pkg-comment new file mode 100644 index 000000000000..8865bd2b0878 --- /dev/null +++ b/textproc/cdiff/pkg-comment @@ -0,0 +1 @@ +Diff readability enhancher for color terminals diff --git a/textproc/cdiff/pkg-descr b/textproc/cdiff/pkg-descr new file mode 100644 index 000000000000..534557c26454 --- /dev/null +++ b/textproc/cdiff/pkg-descr @@ -0,0 +1,4 @@ +cdiff is a readability enhancer for context diffs +and unified diffs on color terminals. + +It uses less(1) as a backend. diff --git a/textproc/cdiff/pkg-plist b/textproc/cdiff/pkg-plist new file mode 100644 index 000000000000..507ab3e21420 --- /dev/null +++ b/textproc/cdiff/pkg-plist @@ -0,0 +1 @@ +bin/cdiff diff --git a/textproc/cdiff/src/cdiff.1 b/textproc/cdiff/src/cdiff.1 new file mode 100644 index 000000000000..8f4309741f5c --- /dev/null +++ b/textproc/cdiff/src/cdiff.1 @@ -0,0 +1,67 @@ +.\"- +.\" Copyright (c) 2000 Eivind Eklund +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer +.\" in this position and unchanged. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd September 20, 2000 +.Dt CDIFF 1 +.Sh NAME +.Nm cdiff +.Nd show diffs with colors +.Sh SYNOPSIS +.Nm cdiff +.Op Ar diff ... +.Sh DESCRIPTION +.Nm +reads a unidiff or context diff from stdin or from a set of files, adds color +codes, expands tabs to 8 spaces, and passes the results to +.Xr less 1 . +If used on a color terminal, it makes diffs much easier to read. +.Sh AUTHORS +.Nm +was written by +.An Eivind Eklund Aq eivind@FreeBSD.org . +based on a sed line somebody passed around. The code is (much) smaller than +this man page. +.Sh SEE ALSO +.Xr diff 1 , +.Xr less 1 . +.Sh BUGS +.Nm +assumes standard ANSI color escape sequences (as used by xterm and most other +commonly used terminals), rather than using +.Xr curses 3 . + +.Nm +should really be a large and complex C program based on +.Xr less 1 +and a diff library. This would allow a more informative display, including +collapsing pure deletions/insertions inside a single line to one line with +colors for deleted/added material, avoiding the line-wrap problems in less +due to less not knowing the effects or lengths of the color escape codes, +and correct handling of shifted tabs (instead of just expanding them to +spaces.) diff --git a/textproc/cdiff/src/cdiff.sh b/textproc/cdiff/src/cdiff.sh new file mode 100644 index 000000000000..690f28866cd0 --- /dev/null +++ b/textproc/cdiff/src/cdiff.sh @@ -0,0 +1,11 @@ +#!/bin/sh +exec perl -pe ' +while (s/\t/" " x (8 - ((length($`)-1) % 8))/e) {} +s/^(\+.*)$/\033[31m$1\033[m/o; +s/^(-.*)$/\033[34m$1\033[m/o + if !s/^(--- \d+,\d+ ----.*)$/\033[1m$1\033[m/o; +s/^(\*\*\* \d+,\d+ *\*\*\*.*)$/\033[1m$1\033[m/o; +s/^(\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*)$/\033[1m$1\033[m/o; +s/^(!.*)$/\033[35m$1\033[m/o; +s/^(@@.*$)/\033[1m$1\033[m/o; +' $@ | less -r |