HDTenEightyP/NetNews huggingface dataset:
From: merlyn@romulus.reed.edu (Randal L. Schwartz)
Newsgroups: comp.lang.perl
Subject: Re: Multi files reading/Chopping lines.
Date: 22 Aug 92 15:52:13 GMT
Article-I.D.: romulus.MERLYN.92Aug22085210
Organization: Reed College

In article <1992Aug21.221915.3131@pool.info.sunyit.edu> buck@pool.info.sunyit.edu (Jesse Buckley) writes:
   1) I want to read in several files as one (cat files*|).  What is the
      best way?

   2) Is there a fast/easy way to chop a line to X width (like colrm or
      cut)?

Well, this little program ought to demonstrate both.  It trims the
lines of the files specified on the command line down to the number of
characters given in the first argument.

#!/usr/bin/perl
$width = shift(@ARGV); # get width
while (<>) {
	chop; # toss the newline
	print substr($_,0,$width), "\n";
}

See?  Pretty easy.  Although, if I was using this, I'd probably do it
in one line, as given on the manpage:

               perl -lpe 'substr($_, 80) = ""'

print ((unpack("a5" x 5,"er PeanothJust cker,rl ha"))[2,1,0,4,3])
--
Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095
merlyn@reed.edu (guest account) merlyn@ora.com (better for permanent record)
cute quote: "Welcome to Portland, Oregon -- home of the California Raisins!"
From: dl2p+@andrew.cmu.edu (Douglas Allen Luce)
Newsgroups: comp.lang.perl
Subject: Re: Problems with "tee"
Date: 21 Aug 92 11:26:20 GMT
	<1992Aug21.172813.13174@odin.corp.sgi.com>
Distribution: usa
Organization: Chemical Engineering, Carnegie Mellon, Pittsburgh, PA

Excerpts from netnews.comp.lang.perl: 21-Aug-92 Problems with "tee"
rodman@sgi.com (794)


> I'm having a problem with the following use of "/bin/tee" within 
> a open statement. 

> This is the sampleprogram:
> ---------------------------------------------------------
> #!/usr/local/bin/perl

> open (FOO, "| tee >foobaz");
> print FOO "This is a test of tee with perl\n";
> close FOO;

> exit;
> ---------------------------------------------------------


Try open(FOO,"|tee foobaz") for best results.

dug
From: lwall@netlabs.com (Larry Wall)
Newsgroups: comp.lang.perl
Subject: Re: How do I determine if variable is tainted
Keywords: perl taint
Date: 13 Aug 92 23:32:59 GMT
Organization: NetLabs, Inc.

In article <1992Aug13.091038.28195@id.dth.dk> ej@id.dth.dk (Erik Johansen) writes:
: I have been puzzled for some time because of a script
: that stops because of an unsecure dependency in an eval.
: 
: What I really want is if anyone has a routine for listing
: all the variables that are tainted.

You can get a list of variables with a variant on dumpvar.pl.  Once you
know which variables you want to test, the following will tell you
whether a variable is tainted or not:

    sub tainted {
	local($@);
	eval { kill 0 * $_[0] };
	$@ =~ /^Insecure/;
    }

(Earlier version of Perl don't have eval {}, so you'd have to use an
ordinary eval, and backwhack the $ in the expression.)

Note that the kill above is perfectly safe--it sends a 0 signal to a
null list of processes.

Larry
From: lwall@netlabs.com (Larry Wall)
Newsgroups: comp.lang.perl
Subject: Re: help with timeouts
Keywords: rsh, fork
Date: 13 Aug 92 20:10:26 GMT
Article-I.D.: netlabs.1992Aug13.201026.16042
Organization: NetLabs, Inc.

In article <1992Aug7.145613.24831@lamont.ldgo.columbia.edu> msolda@lamont.ldgo.columbia.edu writes:
: a script in perl that i am writing would fork and then exec a process which
: creates output to a logfile.  i would like to timeout the exec'ed process.
: this would require an alarm to go off after a set amount of time and then
: if the logfile has not been modified since the exec'ed process began, kill
: the exec'ed process.  otherwise continue normally, as if the signal didn't
: go off.
: 
: i see how to implement a signal handler routines that abort an exec'ed
: process and then die, but i don't see a good way to implement a handler
: that can either kill the exec'ed process and die or just conitnue on if
: the correct conditions are met.

You could just do it in a signal handler, and if you decide not to kill
the process, just return.  This has one potential problem in that some
system calls might fail with errno == EINTR, and have to be restarted.
This can be messy if you're dealing with some random stdio package...

A cleaner way would be to spawn off a third process that just sleeps
for a while, then looks to see if it should kill the other process, and
if not, just exits.  No muss, no fuss.

A third way, if you have control of the logging process, is to have it
set its own alarm, which will blow it away by default when it goes
off.  Then if it decides  to produce any output, it first says alarm(0)
to turn the pending alarm off.

Larry
From: dds@doc.ic.ac.uk (Diomidis D Spinellis)
Newsgroups: comp.lang.perl
Subject: Re: #! Emulation in MSDOS
Date: 13 Aug 92 13:21:07 GMT
Organization: Department of Computing, Imperial College, University of London, UK.

In article <1992Aug13.044323.1094@silogic.uucp> markd@silogic.uucp (Mark C. DiVecchio (K3FWT)) writes:
>In a recent posting, I saw a reference to #! emulation in MSDOS.  The
>posting showed a code fragment which was to be place at the front of the
>file:
>@REM=(qq!
>@echo off
>perl %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
>@goto end :) if 0;
>After trying this, it became obvious that a line or two is required at
>the end of the file after the Perl code.  I'm not versed enough in Perl
>to figure out the lines at the end. 

You do not need any code at the end of the script, if you modify the @goto end
command to read just @end.  Then add an empty file in your path named end.bat.
When MS-DOS invokes a batch file from within another batch file, the code
behaves like a jump, not a call i.e. after the second batch file terminates
control will _not_ return to the original, invoking, batch file.  Thus then
empty end.bat batch file effectively adds a command to terminate batch files
to your system.

Diomidis
-- 
Diomidis Spinellis    Internet: <dds@doc.ic.ac.uk>  UUCP: ...!uknet!icdoc!dds
Department of Computing, Imperial College, London SW7     #include "/dev/tty"
From: painter@manufing.dell.com (Tom Painter)
Newsgroups: comp.lang.perl
Subject: How to wait for a pipe to complete a task?
Date: 14 Aug 92 14:53:10 GMT
Organization: Dell Computer Corporation

I need to write a program with batch FTP.  I keep hitting the following
snag.  I open a pipe to 'ftp', and then I print the commands to it.
However, the perl script will continue on once the 'print' statement is
completed, even though the ftp has not completed it's task.  It makes
sense, but it causes a problem in this scenario:

open(FTP_PUT, "ftp -n host");
(initialize)
    .
    .
print FTP_PUT "put $file remote_file\n";
system(rm $file);
    .
    .

Basically, the file gets removed will being "ftp'ed".

Notes:  I can't solve this with a simple 'sleep'.  I've also handled
        buffered I/O, already.

Any suggestions?  (I'm going between a Unix system and a Tandem
Guardian system.)

Thanks

Tom
--
----------------------------------------------------------------------
Tom Painter                painter@dell.com             (512) 339-5797
Dell Computer Corp.
Austin, TX
Newsgroups: comp.lang.perl
From: mcook@fendahl.dev.cdx.mot.com (Michael Cook)
Subject: Re: #! Emulation in MSDOS
Organization: Motorola Codex, Canton, Massachusetts
Date: Thu, 13 Aug 1992 12:26:39 GMT

markd@silogic.uucp (Mark C. DiVecchio (K3FWT)) writes:


>In a recent posting, I saw a reference to #! emulation in MSDOS.  The
>posting showed a code fragment which was to be place at the front of the
>file:
> 
>@REM=(qq!
>@echo off
>perl %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
>@goto end :) if 0;

>After trying this, it became obvious that a line or two is required at
>the end of the file after the Perl code.  I'm not versed enough in Perl
>to figure out the lines at the end. 

>Can anyone help?

(You probably want @REM=(qq: instead of @REM=(qq! .)

Let's see... you'd want to have ":end" at the end of the file.  How about
this:

   REM ? 1
   :end ;

Michael.
Newsgroups: comp.lang.perl
From: cole@concert.net (Derrick C. Cole)
Subject: Help with named pipes
Organization: MCNC Data Operations
Date: Wed, 12 Aug 1992 14:03:17 GMT

Greetings!

I would like to get this piece of C code

   if ((np = open(pipefile, O_RDONLY)) < 0) {
      fprintf(stderr, "%s: can't open %s\n", progname, pipefile);
      exit(3);
   }

   for (;;) {
      bzero(buf, sizeof(buf));
      read(np, buf, sizeof(buf));
      buf[strlen(buf)-1] = '\0';
      parse();
      if (INTFLAG) {
         close(np);
         exit(0);
      }
   }

to function properly in Perl.  This is what I've come up with so far:

#!/usr/local/bin/perl

($pipe) = @ARGV;
$pipe = "/var/log/modemlog" unless $pipe;

if (-p $pipe) {
   open(FIFO, "$pipe") || die "can't open $pipe\n";
   while (<>) {
      read(FIFO, $buf, 120);
      print "$buf";
   }
} 

and it don't work.  Apparently, open() doesn't return, and the loop is never
reached.

Any and all help will be greatly appreciated!

Thanks,
Derrick Cole

-- 
"It's good to see a Democrat blow something besides the election."
                       -- Arsenio Hall on Bill Clinton's sax set with The Posse
======
Derrick Cole                                  MCNC Center for Communications
Newsgroups: comp.lang.perl
From: cole@concert.net (Derrick C. Cole)
Subject: Re: Help with named pipes
Organization: MCNC Data Operations
Date: Wed, 12 Aug 1992 19:21:05 GMT

In article <1992Aug12.163401.5091@news.eng.convex.com> tchrist@convex.COM (Tom Christiansen) writes:
>From the keyboard of cole@concert.net (Derrick C. Cole):
>:You're right!  It should be while(1).  However, open() still doesn't seem to
>:return to enter the read loop.
>
>For open on a named pipe to return, there must be both a reader
>and a writer.

Greetings, Tom!

Ok.  The following works when there's a writer on the other end:

#!/usr/local/bin/perl

($pipe) = @ARGV;
$pipe = "/var/log/modemlog" unless $pipe;

if (-p $pipe) {
   open(FIFO, "$pipe") || die "can't open\n";
   while (<FIFO>) {
      read(FIFO, $buf, 120);
      chop($buf);
      print "|$buf|\n";
   }
}

Now, 120 is an arbitrary number out of the air.  What I'd really like is for
read() to place in $buf a null-terminated string as written by the other end,
and not just 120 characters.  Am I completely blind, is there a way to do
this, neither, or both?

Thanks for the help!
Derrick

-- 
"GCC 2.0 is to C as SVR4 is to Unix."
                       -- Dick Dunn
======
Derrick Cole                                  MCNC Center for Communications
Newsgroups: comp.lang.perl
From: mcook@fendahl.dev.cdx.mot.com (Michael Cook)
Subject: Re: perl for MSDOS communication tasks
Organization: Motorola Codex, Canton, Massachusetts
Date: Tue, 18 Aug 1992 18:21:30 GMT

vspicer@ccu.umanitoba.ca writes:

>i know this sounds seriously warped, but has anyone used perl to do
>communication-port oriented tasks on MSDOS? since you can treat COM1:
>and COM2: as files, and do single character file IO, it should be possible
>to have a perl script doing automated communication processes like
>being a front end for a UUCP hookup, doing automated online sessions etc...

>anyone tried any of this?

MSDOS services the COM ports by polling them, not by setting up an interrupt
service routine for them.  So you should expect to lose data.

>------
>vic spicer, recent PERL convert/ data systems,instrument electronics and
>software person with the Time of Flight Mass Spec. Lab
>at the University of Manitoba Dept. of Physics
Newsgroups: comp.lang.perl
From: cole@concert.net (Derrick C. Cole)
Subject: help with timelocal.pl
Organization: MCNC Data Operations
Date: Fri, 14 Aug 1992 19:09:49 GMT

Greetings, again!

Does anyone have a good subroutine for computing the difference in seconds
between two time stamps?  I'm trying to use timelocal() in mine, but it never
returns:

require "/usr/local/lib/perl/timelocal.pl";
chop($year = `date +\"\%y\"`);

%months = ('Jan', 0, 'Feb', 1, ...);

sub timediff {
   local($now, $then) = @_; # $now and $then of the form "Mon Day H:M:S"

   ($nM, $nD, $nh, $nm, $ns) = $now =~ /^(\w+) (\d+) (\d+):(\d+):(.*)/;
   ($tM, $tD, $th, $tm, $ts) = $then =~ /^(\w+) (\d+) (\d+):(\d+):(.*)/;

   $tsec = timelocal($ts, $tm, $th, $tD, $months{$tM}, $year);

   if ($months{$nM} < $months{$tM}) {
      $year++;
   }

   $nsec = timelocal($ns, $nm, $nh, $nD, $months{$nM}, $year);

   $diff = $nsec - $tsec;
}

I'm doing something wrong, but can't figure out what it is (don't use packages
very often, if that's it...)  Can anyone improve upon/fix this subroutine?

Any and all help greatly appreciated!
Derrick Cole

-- 
"If all the salmon caught in Canada in one year were laid end to end across the
Sahara Desert, the smell would be absolutely awful."
                       -- unknown
======
Newsgroups: comp.lang.perl
From: ggr@koonda.acci.com.au (Greg Rose)
Subject: Re: Help with named pipes
Organization: Australian Computing and Communications Institute
Date: Thu, 13 Aug 1992 23:10:56 GMT

In article <1992Aug13.013018.8953@rock.concert.net> cole@concert.net (Derrick C. Cole) writes:
>In article <mcook.713657379@fendahl.dev.cdx.mot.com> mcook@fendahl.dev.cdx.mot.com (Michael Cook) writes:
>>How about this:
>>
>>  $/ = "\000";		# the input record separator
>>  while (<FIFO>)
>>  {
>>    chop;		# discard the \0
>>    print "|$_|\n";
>>  }
>
>Greetings, Michael!
>
>That _almost_ works (a lot cleaner, too!)  All I did to change the above was
>remove the record separator assignment to take the default and voila!  It
>works (with the assignment, $_ grows and grows, printing only when the writer
>closes!)  Thanks so much for helping me with this trivial problem.
>
>Derrick

I'd be prepared to bet that the writer is NOT writing out the null
character at the end of the string. Probably says
  "write(fd, s, strlen(s));"
nd I'll bet the strings even have newlines!
--
Greg Rose                 Australian Computing and Communications Institute
ggr@acci.com.au                                              +61 3 282 2532
From: fenner@cmf.nrl.navy.mil (William C Fenner)
Newsgroups: comp.lang.perl
Subject: Re: Help with named pipes
Date: 12 Aug 92 15:11:56 GMT
Organization: NRL Connection Machine Facility, Washington, DC

In article <1992Aug12.140317.1603@rock.concert.net> cole@concert.net (Derrick C. Cole) writes:
|#!/usr/local/bin/perl
|
|($pipe) = @ARGV;
|$pipe = "/var/log/modemlog" unless $pipe;
|
|if (-p $pipe) {
|   open(FIFO, "$pipe") || die "can't open $pipe\n";
|   while (<>) {
|      read(FIFO, $buf, 120);
|      print "$buf";
|   }
|} 

Why are you reading from <>?  The C code didn't read anything from anything
other than the pipe.  Do you mean while (1)?

  Bill
-- 
Bill Fenner                  fenner@cmf.nrl.navy.mil
From: lwall@netlabs.com (Larry Wall)
Newsgroups: comp.lang.perl
Subject: Re: array bug (not infinite recursion)
Date: 17 Aug 92 17:45:12 GMT
Organization: NetLabs, Inc.

In article <Bt3F0D.G3K.1@cs.cmu.edu> jfriedl@cs.cmu.edu writes:
: |> The following (contrived) program dumps core with 4.035
: |> 
: |> 	&foo;
: |> 	sub foo {
: |> 	    ($a, $b) = &foo('fi','b');
: |> 	}
: 
: Ok,ok, I guess I should have been more verbose and not assumed I would
: be taken for a two-year-old (no, even a two-year old knows infinite
: recursion is a no-no :-)  I made the mistake of assuming the perl.gods would
: actually try the program.

Well, I did, and it didn't fail the way you said.  But that was with my
current copy.  I just tried it with stock perl4.035 and it does fail the
way you say.  Paint me sorry.

: Perl dumps core before &foo is called a 2nd time (i.e. before it is
: called even once recursively).
: 
: It seems to die when it's trying to save local variables. There are none,
: so some pointer is zero. This pointer isn't being checked before being
: dereferenced [see code snippet at end of message].  I don't have enough
: of a global understanding of the internals to know exactly what's wrong
: (i.e. that the pointer isn't being checked, or that it shouldn't be null
: to begin with).

The problem isn't actually the null pointer.  The problem is that the
other argument says there are entries when there aren't, because the
earlier analysis code was being overly gullible.  Turns out someone
already sent me a patch for it, and I installed it on my copy.  It just
hasn't made its way out yet.

Larry
Newsgroups: comp.lang.perl
From: robt@is.morgan.com (Rob Torop)
Subject: plum?
Organization: Morgan Stanley & Company
Date: Wed, 19 Aug 1992 01:31:58 GMT

>   Check out Tom's Christiansen's plum program.  I don't know as I'd call it
>   "simple", but you can find a lot of good stuff in it.
>
>   Larry

Where can I find plum?
--
-- Rob Torop

+---------------------------------------------------------------------+
| The views expressed here are neither mine nor those of my employer. |
+---------------------------------------------------------------------+
From: jeffw@hunter.unr.edu (Jeffrey M Wolff)
Newsgroups: comp.lang.perl
Subject: Chat.pl Examples?
Date: 20 Aug 92 19:13:24 GMT
Organization: University of Nevada, Reno  Department of Computer Science

Is there an ftp site that has examples or documentation related to using
chat.pl?  

Jeff Wolff
Newsgroups: comp.lang.perl
From: roger@mav.com (Roger Droz)
Subject: Re: Any portable way to get round...
Summary: gdbm has fewer arbitrary limits, but has multi-user restrictions.
Organization: Maverick International Inc.
Date: Tue, 18 Aug 92 18:57:55 GMT

In article <ASHERMAN.92Aug10125542@laser.fmrco.com> 
asherman@laser.fmrco.com (Aaron Sherman) writes:
>>>>>> tomg@stud.cs.uit.no (Tom Grydeland) said:
>tomg> Subject: Any portable way to get round...
>tomg> ...the limitation of one block per key/value pair and all
>tomg> key/value pairs that hash together? I want to use the dbm/ndbm
>tomg> format [...]
>
>Try linking perl with gdbm. I don't know that this will help, but in
>general the GNU folks have been good about eliminating arbitrary
>limitations.

gdbm is a disk space win.  It uses an extensible hashing technique
that does create sparse (in the unix sense) files.  More blocks are
allocated as needed to spread things out when too many keys hask
together.

The downside of gdbm is that it doesn't permit concurrent writers or a
writer to co-exist with a reader.

Perl dbmopen first trys to open the database for read/write.  Failing
that, the dbmopen is retried for read-only access.  dbmopen succeeds
in either case.

When gdbm is linked into perl, the second opener fails because the
first opener was granted exclusive access to the database
(whether he wanted to write or not).  I hacked our perl to pay
attention to the mode argument when opening existing databases.  Thus
our perl supports concurrent readers of gdm databases.

Does anyone have the way of supporting concurrent writers of gdm
databases?  Do dbm/ndbm support concurrent writers?

(Email me a copy of replies you post.  Our newsfeed hasn't been reliable
lately.)
____________
               Roger Droz                  Domain: roger@mav.COM           
()       ()    Maverick International      UUCP: uw-beaver!gtisqr!roger
 (_______)     8217 44th Ave West          Bell: (206) 743-6659
  (     )      Mukilteo, WA 98275
   |   |                         "We're all mavericks here: 
   |   |                         Each of us has our own opinions,
   (___)                         and the company has yet different ones!"
Newsgroups: comp.lang.perl
From: buck@pool.info.sunyit.edu (Jesse Buckley)
Subject: Multi files reading/Chopping lines.
Organization: State University of New York -- Institute of Technology
Date: Fri, 21 Aug 1992 22:19:15 GMT

Here's a few misc questions for you earls of perl.

1) I want to read in several files as one (cat files*|).  What is the
   best way?

2) Is there a fast/easy way to chop a line to X width (like colrm or
   cut)?

Thanks.

-- 
=) Buck (buck@sunyit.edu)
"If you are a fatalist, what can you do about it?"
		-- Ann Edwards-Duff
Newsgroups: comp.lang.perl
From: Tom Christiansen <tchrist@convex.COM>
Subject: Re: Problems with "tee"
Originator: tchrist@pixel.convex.com
Date: Fri, 21 Aug 1992 17:34:35 GMT
Distribution: usa
Reply-To: tchrist@convex.COM (Tom Christiansen)
Organization: Convex Computer Corporation, Colorado Springs, CO
X-Disclaimer: This message was written by a user at CONVEX Computer
              Corp. The opinions expressed are those of the user and
              not necessarily those of CONVEX.

From the keyboard of rodman@pkr.asd.sgi.com (Paul Rodman):
:
:I'm having a problem with the following use of "/bin/tee" within 
:a open statement. 
:
:This is the sampleprogram:
:---------------------------------------------------------
:#!/usr/local/bin/perl
:
:open (FOO, "| tee >foobaz");
:print FOO "This is a test of tee with perl\n";
:close FOO;
:
:exit;
:---------------------------------------------------------
:
:When the program is run, the file is created correctly, but nothing appears
:on STDOUT. From the manual this is not what I would expect.

But you've redirected stdout into foobaz!  Why would you expect it
on your terminal? 

--tom
-- 
    Tom Christiansen      tchrist@convex.com      convex!tchrist

    OK, enough hype.
            --Larry Wall in the perl man page 
Newsgroups: comp.lang.perl
From: Tom Christiansen <tchrist@convex.COM>
Subject: Re: Help with named pipes
Originator: tchrist@pixel.convex.com
Date: Wed, 12 Aug 1992 16:34:01 GMT
Reply-To: tchrist@convex.COM (Tom Christiansen)
Organization: CONVEX Realtime Development, Colorado Springs, CO
X-Disclaimer: This message was written by a user at CONVEX Computer
              Corp. The opinions expressed are those of the user and
              not necessarily those of CONVEX.

From the keyboard of cole@concert.net (Derrick C. Cole):
:You're right!  It should be while(1).  However, open() still doesn't seem to
:return to enter the read loop.

For open on a named pipe to return, there must be both a reader
and a writer.

--tom
-- 
    Tom Christiansen      tchrist@convex.com      convex!tchrist

This is a "feature" of dynamic scoping when used with call-by-reference.
Don't do that.  :-)
Newsgroups: comp.lang.perl
From: mcook@fendahl.dev.cdx.mot.com (Michael Cook)
Subject: Re: What's the best idiom for storing keyed records?
Organization: Motorola Codex, Canton, Massachusetts
Date: Wed, 19 Aug 1992 14:46:14 GMT

jhd@irfu.se (Jan D.) writes:

>>    is the name of that person's parent.  Make sure you remember that
>>    $parent{'adam'} is 'adam'. :-) With a little care, this approach can
>>
>$parent{'adam'} is 'god' and $parent{'god'} is 'god', no? :-)

I think Voltaire said that $parent{'god'} is 'man'. :-)

Michael.
Newsgroups: comp.lang.perl
From: rdm2@donner.uucp (24337-mcburnett)
Subject: Re: minor bug report (or interesting behavior)
Reply-To: rdm2@donner.UUCP ()
Organization: Bellcore, Livingston, NJ
Distribution: na
Date: Fri, 14 Aug 92 16:23:18 GMT

In article <1992Aug14.011413.18043@netlabs.com> lwall@netlabs.com (Larry Wall) writes:
>In article <1992Aug6.154354.29565@spool.cs.wisc.edu> cargille@calypso.cs.wisc.edu (Allan Cargille) writes:
>: [ the writer wants to have a "fill" function.
>
>The short answer is: If you want nroff, use nroff.
>
>The long answer is: Perl can only left or right justify fields as a
>whole.  To do both ends at once implies some kind of fancy algorithm to
>insert spaces in the middle.  Perl has no such algorithm, and I have no
>intention of trying to supply one.  Durn ugly anyway.  Mutter, grumble...
>
>Of course, if you're excruciatingly persuasive, I reserve the right to
>change my mind.  :-)
>
>Larry

Current research shows that leaving the right margin "ragged" is easier
to read than having a fully justified right margin.  Apparently it is
easier to find your place when you have a ragged pattern to get
eye placement hooks into.

Therefore, Larry, please don't place this request TOO high on your
priority list.

-Roe
Roe D McBurnett III Bellcore (908)699-2273 rdm2@chaucer.cc.bellcore.com
#insert <std.disclamer>