#!/usr/bin/perl $USAGE = q( SYNOPSIS: xdiff -- windiff for color xterm USAGE: diff x y | cmd [OPTIONS] .. usual diff in color. diff -wbc | cmd .. color context diff. AUTHOR: GPL(C) Mohsin Ahmed, http://www.cs.albany.edu/~mosh OPTIONS: -/pat Show only lines matching =~ /pat/i. -v verbose. ); while( $_ = $ARGV[0], m/^-/ ){ shift; last if /^--$/; $verbose++, next if m/^-v/; ($pat = $1), next if m,^-/(.+),; die $USAGE if m/^-[h?]/; } if( ($ENV{ "TERM" } =~ m/xterm/i ) ){ $NoCol = "\033[0m \033[39m \033[49m"; $fGreen = "\033[32m"; $fRed = "\033[31m"; $fBlue = "\033[34m"; $fWhite = "\033[97m"; $bWhite = "\033[107m"; $bRed = "\033[41m"; $fCyan = "\033[36m"; }else{ die "Only for xterms, maybe ANSI someday.\n" } while( <> ){ chomp; next if defined($pat) && ! s/$pat/${fRed}$&${NoCol}/ig; print $fBlue if m/^[+]/; print $_; print $NoCol,"\n"; }