[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