From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [50.116.15.146]) by inbox.vuxu.org (Postfix) with ESMTP id 9C00625790 for ; Sat, 11 May 2024 23:34:06 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 10E7E43604; Sun, 12 May 2024 07:34:04 +1000 (AEST) Received: from mcvoy.com (mcvoy.com [192.169.23.250]) by minnie.tuhs.org (Postfix) with ESMTPS id EC058435E4 for ; Sun, 12 May 2024 07:33:59 +1000 (AEST) Received: by mcvoy.com (Postfix, from userid 3546) id 831F235E41B; Sat, 11 May 2024 14:33:51 -0700 (PDT) Date: Sat, 11 May 2024 14:33:51 -0700 From: Larry McVoy To: Ralph Corderoy , coff@tuhs.org Message-ID: <20240511213351.GE9216@mcvoy.com> References: <20240510230217.IRjT8OER@steffen%sdaoden.eu> <20240511091822.B6691215AA@orac.inputplus.co.uk> <20240511211843.WS4s1gBI@steffen%sdaoden.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240511211843.WS4s1gBI@steffen%sdaoden.eu> User-Agent: Mutt/1.5.24 (2015-08-30) Message-ID-Hash: ZSVYAZB7BTND626EDWZOP4NSHBQK7T7K X-Message-ID-Hash: ZSVYAZB7BTND626EDWZOP4NSHBQK7T7K X-MailFrom: lm@mcvoy.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [COFF] Re: On Bloat and the Idea of Small Specialized Tools List-Id: Computer Old Farts Forum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Sat, May 11, 2024 at 11:18:43PM +0200, Steffen Nurpmeso wrote: > Ralph Corderoy wrote in > <20240511091822.B6691215AA@orac.inputplus.co.uk>: > |Hi Steffen, > | > |> pr has always been enscript here, for example. > | > |enscript turns text into PostScript. That's not too handy to read. > |pr's output doesn't have to be sent to a printer. I doubt there's > |a week goes by without my using it. It just depends what your fingers > |know. > > Nah, it can create text too (with control sequences, but that you > can filter away again, and mostly there are none, anyway). > I am actually not using it no more that often; i used it often to > review (80 column) code via printout, and it can/could give you > 8 pages on a single DIN A4 paper. (Or two times 4 pages, to be > more exact.) Wow, that brings back memories. Let me look. Yeah here it is. Prints 8 pages per page from postscript. Pretty sure I wrote it, it looks like my style. But 100% sure it was useful when my eyesight was better :-) #!/usr/bin/perl -w open(STDOUT, "|mpage -a -P- -8"); # Print the starting stuff while (<>) { print; last if /%%EndProlog/; } $base = "/tmp/psrev"; $page = 1; # Save each page from # %%Page to the next in a file $_ = <>; while ($_ && !/%%Trailer/) { $file = $base . $page++; #warn "Creating $file\n"; open(OUT, ">$file"); do { print OUT; $_ = <>; } while ($_ && !/%%Page/ && !/%%Trailer/); close(OUT); } # Take each 8 and print them in the right order $here = 0; while ($here < $page - 8) { foreach $i (2,4,6,8,1,3,5,7) { &show($here + $i); } $here += 8; } # One page left. if ($here == $page - 2) { print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; &show($here + 1); } # Two pages left if ($here == $page - 3) { &show($here + 2); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; &show($here + 1); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; } # Three pages left if ($here == $page - 4) { &show($here + 2); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; &show($here + 1); &show($here + 3); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; } # Four pages left if ($here == $page - 5) { &show($here + 2); &show($here + 4); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; &show($here + 1); &show($here + 3); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; } # Five pages left if ($here == $page - 6) { &show($here + 2); &show($here + 4); print "%%Page: 0 0\nshowpage\n"; print "%%Page: 0 0\nshowpage\n"; &show($here + 1); &show($here + 3); &show($here + 5); print "%%Page: 0 0\nshowpage\n"; } # Six pages left if ($here == $page - 7) { &show($here + 2); &show($here + 4); &show($here + 6); print "%%Page: 0 0\nshowpage\n"; &show($here + 1); &show($here + 3); &show($here + 5); print "%%Page: 0 0\nshowpage\n"; } # Seven pages left # foreach $i (2,4,6,8,1,3,5,7) { if ($here == $page - 8) { &show($here + 2); &show($here + 4); &show($here + 6); print "%%Page: 0 0\nshowpage\n"; &show($here + 1); &show($here + 3); &show($here + 5); &show($here + 7); } if ($_) { do { print; } while (defined($_ = <>)); } exit; sub show { local($p) = $_[0]; $file = $base . $p; if (-e $file) { #warn "Doing $file\n"; open(IN, $file); while (defined($line = )) { print $line; } unlink($file); } }