[sword-svn] r297 - trunk/modules/crossreferences
refdoc at crosswire.org
refdoc at crosswire.org
Tue Aug 17 14:22:53 MST 2010
Author: refdoc
Date: 2010-08-17 14:22:53 -0700 (Tue, 17 Aug 2010)
New Revision: 297
Modified:
trunk/modules/crossreferences/xrefmake.pl
Log:
USFM bug fixed
Modified: trunk/modules/crossreferences/xrefmake.pl
===================================================================
--- trunk/modules/crossreferences/xrefmake.pl 2010-08-14 23:14:49 UTC (rev 296)
+++ trunk/modules/crossreferences/xrefmake.pl 2010-08-17 21:22:53 UTC (rev 297)
@@ -1,4 +1,43 @@
#!/usr/bin/perl
+## creates crossreferences lists in USFm or OSIS.
+# The underlying list of crossreferences come from a 16th century Dutch Bible.
+
+## Licensed under the standard BSD license:
+
+# Copyright (c) 2010 CrossWire Bible Society <http://www.crosswire.org/>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * 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.
+# * Neither the name of the CrossWire Bible Society nor the names of
+# its contributors may be used to endorse or promote products
+# derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT
+# OWNER OR CONTRIBUTORS 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.
+
+## For general inquiries, comments, suggestions, bug reports, etc. email:
+## sword-support at crosswire.org
+
+#########################################################################
use strict;
use warnings;
@@ -51,12 +90,30 @@
"BLT" => "Bel", "ADE" => "AddEsth"
);
+my $version = "1.0";
+my $osisVersion = "2.1.1";
+
+my $date = '$Date: 2010-08-17 05:46:26 +0000 (Tue, 04 Aug 2009) $';
+my $rev = '$Rev: 231 $';
+
+my %xrefList;
+
+
+
+if (scalar(@ARGV) < 3) {
+ print "xrefmake.pl -- creates a file with localised crossreferences, either in USFM or in OSIS.
+ \t It expects as input a csvfile formatted as follows:
+ \t A space-separated list of 6 numbers, the frist three representing the originating reference, the second three the cross reference, each as <book> <chapter> <verse>.
+ \n \t Usage: xrefmake.pl <input CSV filename> <xreflocale> <USFM|OSIS>.\n";
+ exit (-1);
+}
my $file = "$ARGV[0]";
my $locale = "$ARGV[1]";
my $type = "$ARGV[2]";
+
my $csv = Text::CSV->new();
my ($ref, $o_ref, $xref, $xrefList);
@@ -88,18 +145,16 @@
}
elsif ($type eq "USFM") {
my $o_ref = "GEN.0.0";
+ $xrefList = "";
while (<CSV>) {
- $xrefList = "";
if ($csv->parse($_)) {
my @columns = $csv->fields();
$ref = "$bookname[ $columns[0] -1 ].$columns[1].$columns[2]";
$xref = &parsekey( "$OSISbook{ $bookname[ $columns[3] -1 ] }.$columns[4].$columns[5]", $locale );
-
if ($ref eq $o_ref) {
- $xrefList = "$xrefList $xref";
-
+ $xrefList = $xrefList.$xref;
}
- else {
+ else {
print "$o_ref \\x + \\xo $o_ref \\xr $xrefList \\x*\n";
$xrefList = $xref;
$o_ref = $ref;
@@ -111,5 +166,8 @@
}
}
}
+ else {
+ print "type $type not recognised";
+ }
print "\n";
close CSV;
More information about the sword-cvs
mailing list