1--- misc/mythes-1.2.0.orig/th_gen_idx.pl 2+++ misc/build/mythes-1.2.0/th_gen_idx.pl 3@@ -1,11 +1,32 @@ 4-#!/usr/bin/perl 5- 6-# perl program to take a thesaurus structured text data file 7-# and create the proper sorted index file (.idx) 8+: 9+eval 'exec perl -wS $0 ${1+"$@"}' 10+ if 0; 11+#************************************************************************* 12+# 13+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 14+# 15+# Copyright 2000, 2010 Oracle and/or its affiliates. 16+# 17+# OpenOffice.org - a multi-platform office productivity suite 18+# 19+# This file is part of OpenOffice.org. 20+# 21+# OpenOffice.org is free software: you can redistribute it and/or modify 22+# it under the terms of the GNU Lesser General Public License version 3 23+# only, as published by the Free Software Foundation. 24+# 25+# OpenOffice.org is distributed in the hope that it will be useful, 26+# but WITHOUT ANY WARRANTY; without even the implied warranty of 27+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28+# GNU Lesser General Public License version 3 for more details 29+# (a copy is included in the LICENSE file that accompanied this code). 30 # 31-# typcially invoked as follows: 32-# cat th_en_US_new.dat | ./th_gen_idx.pl > th_en_US_new.idx 33+# You should have received a copy of the GNU Lesser General Public License 34+# version 3 along with OpenOffice.org. If not, see 35+# <http://www.openoffice.org/license.html> 36+# for a copy of the LGPLv3 License. 37 # 38+#************************************************************************* 39 40 sub by_entry { 41 my ($aent, $aoff) = split('\|',$a); 42@@ -13,6 +34,27 @@ sub by_entry { 43 $aent cmp $bent; 44 } 45 46+#FIXME: someone may want "infile" or even parameter parsing 47+sub get_outfile { 48+ my $next_is_file = 0; 49+ foreach ( @ARGV ) { 50+ if ( $next_is_file ) { 51+ return $_ 52+ } 53+ if ( $_ eq "-o" ) { 54+ $next_is_file = 1; 55+ } 56+ } 57+ return ""; 58+} 59+ 60+sub usage { 61+ print "usage:\n"; 62+ print "$0 -o outfile < input\n"; 63+ 64+ exit 99; 65+} 66+ 67 # main routine 68 my $ne = 0; # number of entries in index 69 my @tindex=(); # the index itself 70@@ -24,6 +66,10 @@ my $nm=0; # number of meaning fo 71 my $meaning=""; # current meaning and synonyms 72 my $p; # misc uses 73 my $encoding; # encoding used by text file 74+my $outfile = ""; 75+ 76+$outfile = get_outfile(); 77+usage() if ( $outfile eq "" ); 78 79 # top line of thesaurus provides encoding 80 $encoding=<STDIN>; 81@@ -51,9 +97,13 @@ while ($rec=<STDIN>){ 82 # now we have all of the information 83 # so sort it and then output the encoding, count and index data 84 @tindex = sort by_entry @tindex; 85-print STDOUT "$encoding\n"; 86-print STDOUT "$ne\n"; 87+ 88+print "$outfile\n"; 89+open OUTFILE, ">$outfile" or die "ERROR: Can't open $outfile for writing!"; 90+print OUTFILE "$encoding\n"; 91+print OUTFILE "$ne\n"; 92 foreach $one (@tindex) { 93- print STDOUT "$one\n"; 94+ print OUTFILE "$one\n"; 95 } 96+close OUTFILE; 97 98