aboutsummaryrefslogtreecommitdiff
path: root/textproc
diff options
context:
space:
mode:
authorEivind Eklund <eivind@FreeBSD.org>2000-09-20 11:37:28 +0000
committerEivind Eklund <eivind@FreeBSD.org>2000-09-20 11:37:28 +0000
commit7a234679bfe94891d10ebdccae9c90959a71244f (patch)
tree38cc27f0aa9481d63517088134704a2357e6a523 /textproc
parent9997b702fe09fdca009887ebb3813a966d2c6b9c (diff)
downloadports-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/Makefile1
-rw-r--r--textproc/cdiff/Makefile33
-rw-r--r--textproc/cdiff/pkg-comment1
-rw-r--r--textproc/cdiff/pkg-descr4
-rw-r--r--textproc/cdiff/pkg-plist1
-rw-r--r--textproc/cdiff/src/cdiff.167
-rw-r--r--textproc/cdiff/src/cdiff.sh11
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