#!/usr/local/bin/ruby
#
# Placed into the public domain by M. Warner Losh. 1997.  Enjoy.
# Rewrote to be ruby by Brian Feldman. 2000.  Enjoy more :)
#
# >    1.94      +72 -34    src/sys/i386/scsi/aic7xxx.c
#
# Turns into a lot of diffs
#

root = ENV['CVSROOT'] || open('/usr/src/CVS/Root', 'r').gets.chomp
pager = ENV['PAGER'] || 'more'

out = String.new ''

while (gets)
	next unless $_ =~ /^ *((\d+.)+\d+) *\+\d+ -\d+ *([^[:space:]]*)/
	revn = $1
	f = $3
	case revn
	when /^(1\.1\.?)+$/
		next
	when /\.1$/
		revo = revn.split('.')
		len = revo.length
		if len / 2 * 2 == len 	# even means a branch, EVILNESS
			last = revo.pop
			if last == "1"
				revo.pop
			else
				revo.push (last.to_i - 1).to_s
			end
		else
			revo.push (revo.pop.to_i - 1).to_s
		end
		revo = revo.join('.')
	else
		revo = revn.split('.')
		last = revo.pop
		revo.push (last.to_i - 1).to_s
		revo = revo.join('.')
	end
	out += `rcsdiff #{ARGV.join(' ')} -u -r#{revo} -r#{revn} #{root}/#{f},v`
end

pg = open("| #{pager}", "w")
exit 1 if pg == nil
pg.write out
pg.close
