diff options
Diffstat (limited to 'diff-lcs/tags/release-1.0.1/htmldiff')
-rw-r--r-- | diff-lcs/tags/release-1.0.1/htmldiff | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/diff-lcs/tags/release-1.0.1/htmldiff b/diff-lcs/tags/release-1.0.1/htmldiff deleted file mode 100644 index e013600..0000000 --- a/diff-lcs/tags/release-1.0.1/htmldiff +++ /dev/null @@ -1,111 +0,0 @@ -#! /usr/bin/env ruby -#-- -# Copyright 2004 Austin Ziegler <diff-lcs@halostatue.ca> -# adapted from: -# Algorithm::Diff (Perl) by Ned Konz <perl@bike-nomad.com> -# Smalltalk by Mario I. Wolczko <mario@wolczko.com> -# implements McIlroy-Hunt diff algorithm -# -# This program is free software. It may be redistributed and/or modified under -# the terms of the GPL version 2 (or later), the Perl Artistic licence, or the -# Ruby licence. -# -# $Id$ -#++ - -begin - require 'diff/lcs/string' -rescue - require 'rubygems' - require_gem 'diff-lcs', "1.0.1" - require 'diff/lcs/string' -end - -require 'text/format' - -class HTMLDiff #:nodoc: - attr_accessor :output - - def initialize(output) - @output = output - end - - # This will be called with both lines are the same - def match(event) - @output << %Q|<pre class="match">#{event.old_el}</pre>\n| - end - - # This will be called when there is a line in A that isn't in B - def discard_a(event) - @output << %Q|<pre class="only_a">#{event.old_el}</pre>\n| - end - - # This will be called when there is a line in B that isn't in A - def discard_b(event) - @output << %Q|<pre class="only_b">#{event.new_el}</pre>\n| - end -end - -if ARGV.size != 2 - puts "usage: #{File.basename($0)} old new > output.html" - exit 255 -end - -hd = HTMLDiff.new($stdout) -tf = Text::Format.new -tf.tabstop = 4 - -preprocess = lambda { |line| tf.expand(line.chomp) } - -a = IO.readlines(ARGV[0]).map(&preprocess) -b = IO.readlines(ARGV[1]).map(&preprocess) - -$stdout.write <<-START -<html> - <head> - <title>diff #{ARGV[0]} #{ARGV[1]}</title> - <style> - body { margin: 0; } - .diff - { - border: 1px solid black; - margin: 1em 2em; - } - pre - { - padding-left: 1em; - margin: 0; - font-family: Lucida, Courier, monospaced; - white-space: pre; - } - .match { } - .only_a - { - background-color: #fdd; - color: red; - text-decoration: line-through; - } - .only_b - { - background-color: #ddf; - color: blue; - border-left: 3px solid blue - } - h1 { margin-left: 2em; } - </style> - </head> - <body> - <h1>diff - <span class="only_a">#{ARGV[0]}</span> - <span class="only_b">#{ARGV[1]}</span> - </h1> - <div class="diff"> -START - -Diff::LCS.traverse_sequences(a, b, hd) - -$stdout.write <<-END - </div> - </body> -</html> -END |