#!/usr/bin/perl # -*- perl -*- # # Print documents with long lines. # Copyright (c) 1996-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU enscript. # # This program 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, 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. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # $enscript = "enscript"; $program = $0; $program =~ s/.*\///g; sub usage { warn "Usage: $program [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`; if ($result !~ ".*lines were.*") { last; } }