summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy-new/xindy/user-commands/xindy.in
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/xindy-new/xindy/user-commands/xindy.in')
-rw-r--r--Build/source/utils/xindy-new/xindy/user-commands/xindy.in835
1 files changed, 0 insertions, 835 deletions
diff --git a/Build/source/utils/xindy-new/xindy/user-commands/xindy.in b/Build/source/utils/xindy-new/xindy/user-commands/xindy.in
deleted file mode 100644
index 9e8c207b2c0..00000000000
--- a/Build/source/utils/xindy-new/xindy/user-commands/xindy.in
+++ /dev/null
@@ -1,835 +0,0 @@
-#! /usr/bin/env perl
-# $Id: xindy.pl,v 1.13 2009/03/29 11:14:04 jschrod Exp $
-#------------------------------------------------------------
-# (history at end)
-
-=head1 NAME
-
-xindy - create sorted and tagged index from raw index
-
-=head1 SYNOPSIS
-
- xindy [-V?h] [-qv] [-d magic] [-o outfile.ind] [-t log] \
- [-L lang] [-C codepage] [-M module] [-I input] \
- [--interactive] [--mem-file=xindy.mem] \
- [idx0 idx1 ...]
-
-=head2 GNU-Style Long Options for Short Options:
-
- -V / --version
- -? / -h / --help
- -q / --quiet
- -v / --verbose
- -d / --debug (multiple times)
- -o / --out-file
- -t / --log-file
- -L / --language
- -C / --codepage
- -M / --module (multiple times)
- -I / --input-markup (supported: latex, omega, xindy)
-
-
-=head1 DESCRIPTION
-
-B<xindy> is the formatter-indepedent command of xindy, the flexible
-indexing system. It takes a raw index as input, and produces a merged,
-sorted and tagged index. Merging, sorting, and tagging is controlled
-by xindy style files.
-
-Files with the raw index are passed as arguments. If no arguments are
-passed, the raw index will be read from standard input.
-
-B<xindy> is completely described in its manual that you will find on
-its Web Site, http://www.xindy.org/. A good introductionary
-description appears in the indexing chapter of the LaTeX Companion (2nd ed.)
-
-If you want to produce an index for LaTeX documents, the command
-texindy(1) is probably more of interest for you. It is a wrapper for
-B<xindy> that turns on many LaTeX conventions by default.
-
-
-=head1 OPTIONS
-
-=over
-
-=item C<--version> / B<-V>
-
-output version numbers of all relevant components and exit.
-
-=item C<--help> / B<-h> / B<-?>
-
-output usage message with options explanation.
-
-=item C<--quiet> / B<-q>
-
-Don't output progress messages. Output only error messages.
-
-=item C<--verbose> / B<-v>
-
-Output verbose progress messages.
-
-=item C<--debug> I<magic> / B<-d> I<magic>
-
-Output debug messages, this option may be specified multiple times.
-I<magic> determines what is output:
-
- magic remark
- ------------------------------------------------------------
- script internal progress messages of driver scripts
- keep_tmpfiles don't discard temporary files
- markup output markup trace, as explained in xindy manual
- level=n log level, n is 0 (default), 1, 2, or 3
-
-=item C<--out-file> F<outfile.ind> / B<-o> F<outfile.ind>
-
-Output index to file F<outfile.ind>. If this option is not passed, the
-name of the output file is the base name of the first argument and the
-file extension F<ind>. If the raw index is read from standard input,
-this option is mandatory.
-
-=item C<--log-file> F<log.ilg> / B<-t> F<log.ilg>
-
-Output log messages to file F<log.ilg>. These log messages are
-independent from the progress messages that you can influence with
-C<--debug> or C<--verbose>.
-
-=item C<--language> I<lang> / B<-L> I<lang>
-
-The index is sorted according to the rules of language I<lang>. These
-rules are encoded in a xindy module created by I<make-rules>.
-
-If no input encoding is specified via C<--codepage>, a xindy module
-for that language is searched with a latin, a cp, an iso, or ascii
-encoding, in that order.
-
-=item C<--codepage> I<enc> / B<-C> I<enc>
-
-The raw input is in input encoding I<enc>. This information is used to
-select the correct xindy sort module and also the I<inputenc> target
-encoding for C<latex> input markup.
-
-When C<omega> input markup is used, C<utf8> is always used as
-codepage, this option is then ignored.
-
-=item C<--module> I<module> / B<-M> I<module>
-
-Load the xindy module F<module.xdy>. This option may be specified
-multiple times. The modules are searched in the xindy search path that
-can be changed with the environment variable C<XINDY_SEARCHPATH>.
-
-=item C<--input-markup> I<input> / B<-I> I<input>
-
-Specifies the input markup of the raw index. Supported values for
-I<input> are C<latex>, C<omega>, and C<xindy>.
-
-C<latex> input markup is the one that is emitted by default from the
-LaTeX kernel, or by the C<index> macro package of David Jones.
-^^-notation of single byte characters is supported. Usage of LaTeX's
-I<inputenc> package is assumed as well.
-
-C<omega> input markup is like C<latex> input markup, but with Omega's
-^^-notation as encoding for non-ASCII characters. LaTeX I<inputenc>
-encoding is not used then, and C<utf8> is enforced to be the codepage.
-
-C<xindy> input markup is specified in the xindy manual.
-
-=item C<--interactive>
-
-Start xindy in interactive mode. You will be in a xindy read-eval-loop
-where xindy language expressions are read and evaluated interactively.
-
-=item C<--mem-file> I<xindy.mem>
-
-This option is only usable for developers or in very rare situations.
-The compiled xindy kernel is stored in a so-called I<memory file>,
-canonically named F<xindy.mem>, and located in the xindy library
-directory. This option allows to use another xindy kernel.
-
-=back
-
-
-=head1 SUPPORTED LANGUAGES / CODEPAGES
-
-The following languages are supported:
-
-=head2 Latin scripts
-
- albanian gypsy portuguese
- croatian hausa romanian
- czech hungarian russian-iso
- danish icelandic slovak-small
- english italian slovak-large
- esperanto kurdish-bedirxan slovenian
- estonian kurdish-turkish spanish-modern
- finnish latin spanish-traditional
- french latvian swedish
- general lithuanian turkish
- german-din lower-sorbian upper-sorbian
- german-duden norwegian vietnamese
- greek-iso polish
-
-German recognizes two different sorting schemes to handle umlauts:
-normally, C<ä> is sorted like C<ae>, but in phone books or
-dictionaries, it is sorted like C<a>. The first scheme is known as
-I<DIN order>, the second as I<Duden order>.
-
-C<*-iso> language names assume that the raw index entries are in ISO
-8859-9 encoding.
-
-C<gypsy> is a northern Russian dialect.
-
-=head2 Cyrillic scripts
-
- belarusian mongolian serbian
- bulgarian russian ukrainian
- macedonian
-
-=head2 Other scripts
-
- greek klingon
-
-=head2 Available Codepages
-
-This is not yet written. You can look them up in your xindy
-distribution, in the F<modules/lang/language/> directory (where
-I<language> is your language). They are named
-F<variant-codepage-lang.xdy>, where F<variant-> is most often empty
-(for german, it's C<din5007> and C<duden>; for spanish, it's C<modern>
-and C<traditional>, etc.)
-
- < Describe available codepages for each language >
-
- < Describe relevance of codepages (as internal representation) for
- LaTeX inputenc >
-
-
-
-=head1 ENVIRONMENT
-
-=over
-
-=item C<XINDY_SEARCHPATH>
-
-A list of directories where the xindy modules are searched in. No
-subtree searching is done (as in TDS-conformant TeX).
-
-If this environment variable is not set, the default is used:
-C<.:>I<modules_dir>C<:>I<modules_dir>C</base>. I<modules_dir> is
-determined at run time, relative to the B<xindy> command location:
-Either it's F<../modules>, that's the case for F<opt>-installations.
-Or it's F<../lib/xindy/modules>, that's the case for
-F<usr>-installations.
-
-=item C<XINDY_LIBDIR>
-
-Library directory where F<xindy.mem> is located.
-
-The modules directory may be a subdirectory, too.
-
-=back
-
-
-=head1 KNOWN BUGS
-
-Option B<-q> also prevents output of error messages. Error messages
-should be output on stderr, progress messages on stdout.
-
-There should be a way to output the final index to stdout. This would
-imply B<-q>, of course.
-
-Codepage C<utf8> should be supported for all languages, and should be
-used as internal codepage for LaTeX inputenc re-encoding.
-
-
-=head1 SEE ALSO
-
-texindy(1),
-tex2xindy(1)
-
-
-=head1 AUTHOR
-
-Joachim Schrod
-
-
-=head1 LEGALESE
-
-Copyright (c) 2004-2006 by Joachim Schrod.
-
-B<xindy> is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2 of the License, or (at your
-option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-=for Emacs
-#'
-
-=cut
-
-
-use strict;
-
-BEGIN {
- use vars qw($Revision $VERSION);
- q$Revision: 1.13 $ =~ /: (\d+)\.(\d+)/ ; # q wg. Emacs indent!
- my ($major, $minor) = ($1, $2);
- $VERSION = "$major." . ($minor<10 ? '0' : '') . $minor;
-}
-
-
-# Some common variables.
-# Determine environment. Where is our library directory, and our modules?
-
-use File::Basename;
-use Cwd;
-our ($isW32, $clisp);
-our ($cmd_dir, $cmd, $lib_dir, $modules_dir);
-BEGIN {
- $isW32 = ($^O =~ /^MSWin/i) ? 1 : 0;
- $clisp = ($isW32 || $^O eq "cygwin") ? 'clisp.exe' : 'clisp';
-
- my $r0 = Cwd::realpath($0);
- $cmd_dir = dirname($r0);
- $cmd = basename($0);
-
- if (basename($r0) =~ /\.pl$/) { # TL2010
-
- # modules directory
- $modules_dir = Cwd::realpath("$cmd_dir/../../xindy/modules");
- die "$cmd: Cannot locate xindy modules directory" unless -d $modules_dir;
-
- if ($isW32) {
- $cmd_dir = "$cmd_dir/../../../bin/win32";
- } else {
- die "$cmd: not a symlink as required for TeX Live" unless -l $0;
- # Follow symlinks and determine $cmd_dir such that
- # $cmd_dir/xindy -> $r0 = XINDY_SCRIPTDIR/xindy.pl
- $r0 = $0;
- while (-l $r0) {
- $cmd_dir = dirname($r0);
- $r0 = readlink($r0);
- $r0 = "$cmd_dir/$r0" unless $r0 =~ m,^[\\/],; # relative link
- }
- }
-
- # library directory
- $lib_dir = $cmd_dir;
-
- # clisp runtime
- my $xindy_run = ($isW32 || $^O eq "cygwin")
- ? "$lib_dir/xindy-lisp.exe" : "$lib_dir/xindy.run";
- $clisp = $xindy_run if -e $xindy_run;
-
- } else { # !TL2010
-
- # library directory
- if ( $ENV{XINDY_LIBDIR} ) {
- $lib_dir = $ENV{XINDY_LIBDIR};
- } elsif ( '@libdir@' ne '@libdir' . '@' ) { # GNU configure at work?
- if ( -d '@libdir@/xindy' ) { # /usr style
- $lib_dir = '@libdir@/xindy';
- } else {
- $lib_dir = '@libdir@'; # /opt style
- }
- } elsif ( -f "$cmd_dir/../lib/xindy.mem" ) { # /opt style
- $lib_dir = "$cmd_dir/../lib";
- } elsif ( -d "$cmd_dir/../lib/xindy" ) { # /usr style
- $lib_dir = "$cmd_dir/../lib/xindy";
- } else {
- die "$cmd: Cannot locate xindy library directory";
- }
-
- # modules directory
- if ( -d "$cmd_dir/../modules" ) { # /opt style
- $modules_dir = "$cmd_dir/../modules";
- } elsif ( -d "$lib_dir/modules" ) { # /usr style
- $modules_dir = "$lib_dir/modules";
- } else {
- die "$cmd: Cannot locate xindy modules directory";
- }
-
- } # !TL2010
-}
-
-
-# Used modules.
-
-use Getopt::Long qw(:config bundling);
-use File::Temp qw(tempfile tmpnam);
-use File::Spec;
-use POSIX qw(uname);
-
-
-# Check arguments, store them in proper variables.
-
-sub usage ( ;$ )
-{
- my $exit_code = shift;
- $exit_code += 0; # turn undef into 0
- print STDERR <<_EOT_
-
-usage: $cmd [-V?h] [-qv] [-d magic] [-o outfile.ind] [-t log] \\
- [-L lang] [-C codepage] [-M module] [-I input] \\
- [--interactive] [--mem-file xindy.mem] \\
- [idx0 idx1 ...]
-
-GNU-STYLE LONG OPTIONS FOR SHORT OPTIONS:
-
- -V / --version
- -? / -h / --help
- -q / --quiet
- -v / --verbose
- -d / --debug (multiple times)
- (supported: script, keep_tmpfiles, markup, level=n)
- -o / --out-file
- -t / --log-file
- -L / --language
- -C / --codepage
- -M / --module (multiple times)
- -I / --input-markup (supported: latex, omega, xindy)
-
-_EOT_
- ;
- exit ($exit_code);
-}
-
-our ($quiet, $verbose, %debug,
- $outfile, $logfile, $language, @codepages, @modules, $input_markup,
- $interactive, $mem_file);
-$input_markup = 'latex';
-
-$mem_file = "$lib_dir/xindy.mem";
-if ($^O eq 'darwin' && ! -e $mem_file) { # support universal binary on mac
- my @uname = POSIX::uname();
- if ($uname[4] eq 'Power Macintosh') {
- $mem_file = "$lib_dir/xindy-ppc.mem";
- } else {
- $mem_file = "$lib_dir/xindy-i386.mem";
- }
-}
-die "$cmd: Cannot locate $mem_file" unless -e $mem_file;
-
-my @orig_argv = @ARGV;
-parse_options();
-
-
-# This script creates temporary files. Whenever a file is created, its
-# name is added to @temp_files. In an END handler, the temporary files
-# are deleted. Signal handlers are set up to get proper program
-# termination on user-induced signals. During program calls with
-# system, SIGINT and
-
-our @temp_files = ();
-handle_signals();
-END {
- unlink (@temp_files) if ( @temp_files && ! $debug{keep_tmpfiles} );
-}
-
-
-# Raw index handling: xindy is not able (yet?) to handle arguments
-# Perl-style, so we do it instead. We gather the raw index in a
-# temporary file. We also process it by the filter program it if
-# wanted. Signal handlers will discard temporary files if necessary.
-
-our $raw_index = File::Spec->devnull;
-unless ( $interactive ) {
- for my $f (@ARGV) { die "$cmd: input file $f does not exist" unless -f $f }
- $raw_index = create_raw_index(); # processes @ARGV
- my $filter_cmd = '';
- if ( $input_markup eq 'latex' ) {
- $filter_cmd = "$cmd_dir/tex2xindy";
- } elsif ( $input_markup eq 'omega' ) {
- $filter_cmd = "$cmd_dir/tex2xindy -o";
- }
- $raw_index = filter_index ($filter_cmd, $raw_index)
- if $filter_cmd;
-}
-
-
-# Execution: Obey environment variables, create xindy start
-# expression, and eventually call it.
-
-my $xindy_expression = xindy_expression(); # accesses global option vars
-my $exit_code = call_xindy ($mem_file, $xindy_expression);
-
-
-# Finished: exit, clean up in END handler.
-
-exit ($exit_code);
-
-
-# ------------------------------------------------------------
-
-
-sub parse_options() {
-
- my (@debug);
- GetOptions(
- 'version|V' => sub { output_version(0); },
- 'internal-version' => sub { output_version(1); },
- 'help|h|?' => \&usage,
- 'quiet|q' => \$quiet,
- 'verbose|v' => \$verbose,
- 'debug|d=s' => \@debug,
- 'out-file|o=s' => \$outfile,
- 'log-file|t=s' => \$logfile,
- 'language|L=s' => \$language,
- 'codepage|C=s' => \@codepages,
- 'module|M=s' => \@modules,
- 'input-markup|I=s' => \$input_markup,
- 'interactive' => \$interactive,
- 'mem-file=s' => \$mem_file,
- )
- or usage(1);
-
- # Debug option values are easier to test in a hash. Clean up trace
- # level options, too.
- %debug = map { $_ => 1 } @debug;
- my @trace_level = grep /^level=/, @debug;
- if ( @trace_level > 1 ) {
- print STDERR "You can only specify one trace level.\n\n";
- exit (1);
- }
- delete $debug{$trace_level[0]};
- $trace_level[0] =~ s/^level=// ;
- $debug{trace_level} = $trace_level[0];
-
- # Check for unsupported debug option values.
- my %debug_check = %debug;
- foreach my $magic ( qw(script keep_tmpfiles markup trace_level) ) {
- delete $debug_check{$magic};
- }
- if ( %debug_check ) {
- my @magic = keys(%debug_check);
- print STDERR "Unsupported argument for --debug: @magic\n";
- usage(1);
- }
-
- # Script debugging implies running it verbose and not quiet.
- if ( $debug{script} ) {
- $verbose = 1;
- $quiet = 0;
- }
-
- # Default for the output file: first argument, with extension replaced
- # by ".ind".
- unless ( $outfile || $interactive ) {
- if ( @ARGV == 0 ) {
- print STDERR
-"You need to specify --out-file if the raw index is read from standard input.\n";
- usage(1);
- }
- my ($name, $path, $suffix) = fileparse ($ARGV[0], '\.[^\.]+');
- $outfile = "$path$name.ind";
- }
-
- # FIXME: xindy wants a log file. Really?
- $logfile = File::Spec->devnull unless $logfile;
-
- # Modules fixup: If they have no .xdy suffix, they get one.
- @modules = map { /\.xdy$/ ? $_ : "$_.xdy" } @modules;
-
- # Check that the input markup is known.
- # omega markup implies codepage utf8.
- if ( $input_markup &&
- $input_markup ne 'latex' && $input_markup ne 'omega' &&
- $input_markup ne 'xindy' ) {
- print STDERR "Unsupported input markup $input_markup.\n";
- usage(1);
- }
- if ( $input_markup eq 'omega' ) {
- @codepages = qw(utf8);
- }
-
-}
-
-
-
-#
-# SIGNAL HANDLING
-#
-# FIXME: This is not good enough. We also need to kill subprocesses,
-# i.e., filter or xindy, if they are running.
-
-# Our signal handler function just exits. Temporary files are deleted
-# by the END section above. Actually, the exit code looses the
-# information about the received signal, that's not good but shouldn't
-# hurt either...
-
-sub signal_exit() {
- exit (2);
-}
-
-sub handle_signals () {
- $SIG{'HUP'} = \&signal_exit; # 1
- $SIG{'INT'} = \&signal_exit; # 2
- $SIG{'QUIT'} = \&signal_exit; # 3
- $SIG{'TERM'} = \&signal_exit; # 15
-}
-
-
-
-#
-# CREATION OF RAW XINDY INDEX
-#
-
-# Handle input files Perl-style. Returns file name that contains
-# concatenated input file contents.
-
-sub create_raw_index () {
- my ($output, $outfile) = tempfile();
- push (@temp_files, $outfile);
- while ( <> ) {
- print $output $_;
- }
- close ($output);
- print "concatenated xindy input file: $outfile\n" if $debug{script};
- return $outfile;
-}
-
-
-# Run a filter over raw index. Returns file name with filtered raw
-# index, supposed to be in xindy input format.
-#
-# We assume the file names to be safe from shell meta characters since
-# they were computed by File::Temp.
-
-sub filter_index ( $$ ) {
- my ($filter, $input) = @_;
- my $output = tmpnam();
- push (@temp_files, $output);
- print "Running filter: $filter <$input >$output\n" if $verbose;
- system "$filter <$input >$output";
- print "filtered xindy input file: $output\n" if $debug{script};
- return $output;
-}
-
-
-
-#
-# XINDY EXECUTION
-#
-
-# Construct final xindy expression, from options.
-
-sub xindy_expression () {
- my ($logging, $tracing, $trace_level);
-
- # Determine language module of make-rules framework. Part of the
- # complexity below is from compatibility with the TLC2
- # description. We need to support the language names listed there,
- # even though they are not current. In addition, the codepage
- # option was introduced later and we need to guess it. This
- # guesswork will often be wrong, sadly.
- #
- # FIXME: I didn't see all languages. What's on with gypsy and
- # hausa?
- if ( $language ) {
- my $ld = "$modules_dir/lang";
- my $variant;
- # If there is no language directory, this might be a variant.
- # Language names and variants are separated by hyphens. The
- # variant name "din" is an abbreviation for "din5007". The
- # variant name "iso" is ignored, that is actually a codepage
- # name.
- #
- # FIXME: Or is "iso" the variant "translit"?!
- if ( ! -d "$ld/$language" ) {
- $language =~ /^([^-]*)-(.*)/ ; # language name ends with 1st hyphen
- if ( $2 && -d "$ld/$1" ) { # $2 is not set if the regex didn't match
- $language = $1;
- $variant = "$2-" unless ( $2 eq 'iso' );
- $variant eq 'din-' and $variant = 'din5007-';
- }
- }
- # Let's guess the codepage. We take any that starts with
- # "latin", "cp", "iso8859", or "ascii".
- @codepages = qw(latin cp iso8859 ascii) unless @codepages;
- my @styles;
- foreach my $cp ( @codepages ) {
- @styles = glob("$ld/$language/$variant$cp*-lang.xdy");
- last if @styles;
- }
- unless ( @styles ) {
- print STDERR "Cannot locate xindy module for language $language";
- print STDERR " in codepage $codepages[0]" if ( @codepages == 1 );
- print STDERR ".\n";
- exit (1);
- }
- # Extract language module name: It's the relative part after
- # the module directory. Put it at the front of the list of
- # needed modules. It's important that the language module is
- # loaded first, it defines the sort rulesets, and subsequent
- # modules shall be able to add sort rules.
- unshift (@modules, substr($styles[0], length("$modules_dir/")));
- print "Found language module $styles[0]\n" if $debug{script};
- }
-
- # If there is more than one xindy module, construct a style file.
- # This is bad, of course; xindy should handle a list of style
- # files itself.
- my $style_file = $modules[0]; # will be undef if @modules is not set
- if ( @modules > 1 ) {
- my $sf;
- ($sf, $style_file) = tempfile();
- push (@temp_files, $style_file);
- foreach my $module ( @modules ) {
- print $sf "(require \"$module\")\n";
- }
- close ($sf);
- }
-
- $style_file = quotify($style_file);
- $outfile = quotify($outfile);
- $logging = ':logfile ' . quotify($logfile) if $logfile;
- $tracing = ':markup-trace :on' if $debug{markup};
- $trace_level = ":trace-level $debug{trace_level}" if $debug{trace_level};
-
- my $exp = <<_EOT_
-(progn
- (searchpath ".:$modules_dir:$modules_dir/base")
- (xindy:startup
- :idxstyle $style_file
- :rawindex "$raw_index"
- :output $outfile
- $logging
- $tracing
- $trace_level)
- (exit))
-_EOT_
- ;
-
- return $exp;
-}
-
-
-# Actual xindy call. Returns exit code.
-
-sub call_xindy ( $$ ) {
- my ($mem_file, $xindy_exp) = @_;
-
- my @command = ($clisp, '-M', $mem_file, '-E', 'iso-8859-1');
- if ( $interactive ) {
- print "Proposed xindy expression:\n\n$xindy_exp\n" unless $quiet;
- } else {
- push (@command, '-x', $xindy_exp);
- }
-
- if ( $debug{script} ) {
- print "modules directory: $modules_dir.\n";
- print "command: @command\n";
- }
-
- if ( $quiet && ! $interactive ) {
- open (STDOUT, '>', File::Spec->devnull);
- }
- system @command;
- if ( $? == -1 ) {
- print STDERR "$cmd: Could not execute xindy kernel: $!\n";
- } elsif ( $? & 127 ) {
- return 4;
- } else {
- return $? >> 8;
- }
-}
-
-sub output_version ( ;$ ) { # optional arg: internal-version flag
- my $internal = shift;
- output_xindy_release() unless $internal;
- print "$cmd script version: $VERSION\n";
- my $exit_code = call_xindy($mem_file, '(xindy:startup :show-version t)');
- exit ($exit_code);
-}
-
-
-sub output_xindy_release () {
- my $version = 'unknown';
- my $version_file;
- if ( -f "$modules_dir/../VERSION" ) {
- $version_file = "$modules_dir/../VERSION";
- } elsif ( -f "$cmd_dir/../VERSION" ) {
- $version_file = "$cmd_dir/../VERSION";
- } elsif ( -f "$lib_dir/VERSION" ) {
- $version_file = "$lib_dir/VERSION";
- }
- if ( $version_file ) {
- if ( open(VERSION, "<$version_file") ) {
- while ( $version = <VERSION> ) {
- chomp ($version);
- $version =~ s/\#.*// ;
- $version =~ s/^\s+// ;
- $version =~ s/\s+$// ;
- last if $version;
- }
- close (VERSION);
- }
- }
- print "xindy release: $version\n";
-}
-
-
-# Helper function: Make a proper quoted Lisp string.
-
-sub quotify ( $ ) {
- my $s = shift;
- $s =~ s:[\\\"]:\\&1:g ; # quote double-quote and backslash
- return "\"$s\"";
-}
-
-
-
-#======================================================================
-#
-# $Log: xindy.pl,v $
-# Revision 1.13 2009/03/29 11:14:04 jschrod
-# xindy.run does not exist any more, call clisp directly.
-#
-# Revision 1.12 2009/03/26 17:27:28 jschrod
-# Checking for variant name din needs to take trailing hyphen into account.
-#
-# Revision 1.11 2009/03/22 11:08:18 jschrod
-# man page: --v is --verbose, not --version.
-#
-# Revision 1.10 2009/03/21 18:05:11 jschrod
-# Variant rename of din to din5007 made explicit. (Proposed by
-# Zdenek Wagner at 16 Mar 09.)
-#
-# Revision 1.9 2008/02/17 14:55:32 jschrod
-# Use exitcode 0 when usage is explicitly demanded with --help et.al.
-#
-# Revision 1.8 2006/07/30 10:30:42 jschrod
-# Check if an exec() error happened and output an error message.
-# (Ticket 1230801)
-#
-# Revision 1.7 2006/07/19 00:29:56 jschrod
-# Support for omega input markup.
-#
-# Revision 1.6 2005/05/02 19:16:26 jschrod
-# Support new RTE 2.2, built with CLISP 2.33.2, that needs -E option
-# to specify the default charset.
-# xindy also has proper version output in Lisp now, no need for
-# workarounds in script any more.
-#
-# Revision 1.5 2004/11/01 22:48:51 jschrod
-# Locate xindy script.
-# Terminate on option error.
-# Fix up version output.
-#
-# Revision 1.4 2004/08/05 14:10:54 jschrod
-# Language variant names may have hyphens now. Language names must
-# not have hyphens -- the first hyphen of the -L option argument
-# separates language and variant name.
-# Revision 1.3 was completely off -- I committed a copy of texindy.
-# I really don't know what happened there.
-#
-# Revision 1.2 2004/05/26 21:30:11 jschrod
-# Added POD documentation.
-#
-# Revision 1.1 2004/05/24 19:47:13 jschrod
-# Introduce new driver script, as part of the "Companion Release".
-#