diff options
-rw-r--r-- | other/Makefile | 4 | ||||
-rw-r--r-- | other/pamfix.c (renamed from other/pamfixtrunc.c) | 0 | ||||
-rwxr-xr-x | other/pamfixtrunc | 50 |
3 files changed, 52 insertions, 2 deletions
diff --git a/other/Makefile b/other/Makefile index 1c25d6a6..23e60bc1 100644 --- a/other/Makefile +++ b/other/Makefile @@ -24,7 +24,7 @@ endif # build. PORTBINARIES = pamarith pambayer pamchannel pamdepth \ - pamendian pamexec pamfixtrunc pamlookup pampick pamsplit \ + pamendian pamexec pamfix pamlookup pampick pamsplit \ pamstack pamsummcol pnmcolormap \ ppmdcfont ppmddumpfont ppmdmkfont @@ -34,7 +34,7 @@ ifneq ($(LINUXSVGALIB),NONE) BINARIES += ppmsvgalib endif -SCRIPTS = ppmtomap +SCRIPTS = ppmtomap pamfixtrunc OBJECTS = $(BINARIES:%=%.o) diff --git a/other/pamfixtrunc.c b/other/pamfix.c index 8db67e08..8db67e08 100644 --- a/other/pamfixtrunc.c +++ b/other/pamfix.c diff --git a/other/pamfixtrunc b/other/pamfixtrunc new file mode 100755 index 00000000..1aa3ff94 --- /dev/null +++ b/other/pamfixtrunc @@ -0,0 +1,50 @@ +#!/bin/sh + +############################################################################## +# This is essentially a Perl program. We exec the Perl interpreter specifying +# this same file as the Perl program and use the -x option to cause the Perl +# interpreter to skip down to the Perl code. The reason we do this instead of +# just making /usr/bin/perl the script interpreter (instead of /bin/sh) is +# that the user may have multiple Perl interpreters and the one he wants to +# use is properly located in the PATH. The user's choice of Perl interpreter +# may be crucial, such as when the user also has a PERL5LIB environment +# variable and it selects modules that work with only a certain main +# interpreter program. +# +# An alternative some people use is to have /usr/bin/env as the script +# interpreter. We don't do that because we think the existence and +# compatibility of /bin/sh is more reliable. +# +# Note that we aren't concerned about efficiency because the user who needs +# high efficiency can use directly the programs that this program invokes. +# +############################################################################## + +exec perl -w -x -S -- "$0" "$@" + +#!/usr/bin/perl +############################################################################## +# This is nothing but a compatibility interface for Pamfixtrunc. +# An old program coded to call Pamfixtrunc will continue working because +# this interface exists. All new (or newly modified) programs should +# call Pamfix instead. +############################################################################## + +use strict; +use File::Basename; +use Cwd 'abs_path'; + +my @pamFixOptions; + +@pamFixOptions = @ARGV; # initial value + +push(@pamFixOptions, '-truncate'); + +# We want to get Pamfix from the same directory we came from if +# it's there. Frequently, the directory containing Netpbm programs is +# not in the PATH and we were invoked by absolute path. + +my $my_directory = abs_path(dirname($0)); +$ENV{"PATH"} = $my_directory . ":" . $ENV{"PATH"}; + +exit(system('pamfix', @pamFixOptions)>>8); |