<?xml version="1.0" encoding="windows-1252"?>
<node id="57526" title="XEmacs printing script" created="2001-02-09 23:06:36" updated="2005-08-11 05:55:25">
<type id="1748">
sourcecode</type>
<author id="47655">
macguges</author>
<data>
<field name="doctext">
&lt;code&gt;
#!/bin/perl

# I wrote this script to enable printing from XEmacs, which expects 
# a printing command which accepts text from *standard input*.

# So, this script reads the standard input, diverts it to a file,
# then calls Windows NT lpr with this file and any options given
# on the command line.

my $command = "lpr";

srand;  # seeds the random number generator

# lpr expects interprets its arguments in the DOS context, taking backslashes
$filestub = "\\tmp\\lp".(time%10000).".";
do {
	$filename = $filestub.int(rand(1000));
} while (-e $filename);

open SLURP, "&gt;$filename";
print SLURP &lt;STDIN&gt;;   # put everything from stdin into this file
close SLURP;

my @args = ($command, @ARGV, $filename);
system(@args) == 0
	or die "system @args failed: $?";

unlink $filename;
&lt;/code&gt;</field>
<field name="codedescription">
Got XEmacs?  Got Windows NT (or its evil twin, Windows 2000?)  Got a line printer daemon (somewhere, lurking near a printer)?
&lt;p&gt;
Then this script is for &lt;b&gt;you&lt;/b&gt;.  Explore the wonders of printing from your favorite editor, even under Windows.
&lt;p&gt;
(Cygwin environment may be necessary, and is a nifty idea anyway.  Your lpd's IP &amp; printer queue name may differ.)</field>
<field name="codecategory">
Win32 Stuff</field>
<field name="codeauthor">
Mithras MacGuges, mithras@dhp.com</field>
</data>
</node>
