summaryrefslogtreecommitdiff
path: root/bin/ldiff
blob: ae2b245e1d4dbe32b37c91ba24a4319573104f5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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$
#++

  # 1) Try to load Ruwiki from the gem.
  # 2) Try to load Ruwiki from $LOAD_PATH.
  # 3) Modify $LOAD_PATH and try to load it from the modified $LOAD_PATH.
  # 4) Fail hard.
load_state = 1
  begin
    if 1 == load_state
      require 'rubygems'
      require_gem 'diff-lcs', '= 1.1.1'
    else
      require 'diff/lcs'
    end
  rescue LoadError
    load_state += 1

    case load_state
    when 3
      $LOAD_PATH.unshift "#{File.dirname($0)}/../lib"
    when 4
      $LOAD_PATH.shift
      $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
    when 5
      raise
    end
    retry
  end

require 'diff/lcs/ldiff'

exit Diff::LCS::Ldiff.run(ARGV)