View file File name : sliceprint Content :#!/usr/bin/perl # -*- perl -*- # # Print documents with long lines. # Copyright (c) 1996-1999 Markku Rossi # # Author: Markku Rossi <mtr@iki.fi> # # # This file is part of GNU Enscript. # # Enscript 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 3 of the License, or # (at your option) any later version. # # Enscript 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. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see <http://www.gnu.org/licenses/>. # $enscript = "enscript"; $ENV{LC_ALL} = "C"; # we parse enscript's output $program = $0; $program =~ s/.*\///g; sub usage { warn "Usage: $program [-oFILE] [ENSCRIPT_OPTION]... [FILE]...\n"; } # Handle arguments. $args = "--extended-return-values"; $files = ""; while ($arg = shift(@ARGV)) { if ($arg eq "--help") { &usage; exit 0; } elsif ($arg eq "--version") { warn "sliceprint 1.0\n"; exit 0; } elsif ($arg =~ /^-p(.+)$/ || $arg =~ /^-o(.+)$/ || $arg =~ /^--output=(.+)$/) { $output_file = $1; } elsif ($arg eq "-p" || $arg eq "-o") { $output_file = shift(@ARGV); } elsif ($arg =~ /^-/) { $args .= " $arg"; } else { $files .= " $arg"; } } # Check if output file is "-". if (defined($output_file) && $output_file eq "-") { die "$program: output file can't be stdout\n"; } $slice = 0; while (1) { $slice++; if (defined($output_file)) { $cmd = "$enscript " . $args . " --slice=$slice -p" . $output_file . "." . $slice . " " . $files; } else { $cmd = "$enscript " . $args . " --slice=$slice" . $files; } print "printing slice $slice...\n"; $result = `$cmd 2>&1`; print $result; if ($result !~ ".*line.* were wrapped.*") { last; } }