HDTenEightyP/NetNews huggingface dataset:
From: "G.W.Bultman" <bultman@dgw.rws.nl>
Subject: Real versus system time for Perl scripts
Reply-To: bultman@dgw.rws.nl
Organization: The Internet
Date: Tue, 17 Nov 1992 14:00:07 GMT

Hi,

My question is the following. I have a Perl script that calculates
the exponential function exp( 8*ln(10)*(x+1/2)^2+y^2) for several
hundreds/thousands of points in a rectangular grid and outputs the value
with some extra info around it.

When I ran the script, I found it to be very slow. I wrote the same in
a small C program, but found to my amazement that the execution time
had only doubled, while the time spent in the system went up by a factor
10. Can anyone give me any pointers as to why this happens.
My system is a HP9000-870 running HP-UX.

    o                                                                o   
  / | \    Gert Bultman <bultman@dgw.rws.nl>   Koningskade 4       / | \  
 o--o--o   Tidal Waters Division               2596 AA The Hague  o--o--o 
  \ | /    Rijkswaterstaat                     The Netherlands     \ | /  
    o                                                                o
From: lwall@netlabs.com (Larry Wall)
Newsgroups: comp.lang.perl
Subject: Re: Perl bug (Floating exception)
Date: 16 Nov 92 19:38:59 GMT
Distribution: comp
Organization: NetLabs, Inc.

In article <CONS.92Nov12180432@mercury.cern.ch> cons@mercury.cern.ch (Lionel Cons) writes:
: When I type:
:    perl -e '4646464646 % 3'
: I get:
:    Floating exception (core dumped)
: 
: What happens ?

First note that:

    $ echo '2 ^ 32' | bc
    4294967296

The % operator performs an unsigned long operation, so it first converts (or,
in this case, attempts to convert :-) both of its arguments to unsigned long.

I'm not claiming this is optimal, but that's what it does.

Larry
Newsgroups: comp.lang.perl
From: ado@ibg1.ibg.sub.org (Christoph Adomeit)
Subject: cpp fails in statements like pkg'foo(DEFINE)
Organization: ibg
Date: Tue, 17 Nov 1992 20:34:28 GMT

Hi folks,
what is the golden way to prevent cpp from interpreting
a statement like 
#define DEFINE 99
pkg'foo(DEFINE) 
as a part of a string literal ?
In the above examples DEFINE is not replaced by "99" because
cpp thinks it's a string literal.
-- 
Origin: It's not a bug, it's a feature !
From: ced@bcstec.ca.boeing.com (Charles Derykus)
Newsgroups: comp.lang.perl
Subject: checking for interactive shell
Date: 16 Nov 92 21:00:37 GMT
Distribution: usa
Organization: Boeing


How do I perlize the following Bourne shell fragment? (I
faq'ed fruitlessly)

     case "$-" in                    # interactive ?
        s) ....


Many thanks,

Newsgroups: comp.lang.perl
From: rray@lookout.it.uswc.uswest.com (Randy J. Ray)
Subject: Distinguishing stdout and stderr on a pipe
Organization: US WEST Communications, Inc. -- Denver, CO
Date: Wed, 18 Nov 1992 20:25:59 GMT

Is there a way to read from a pipe and capture both stdout and stderr, but
still be able to distunguish them? I need to run a command while formatting
returned data one way, and errors a different way.

I have not been able to find any references to this in the Camel book or the
USENIX tutorial.

Randy
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Randy J. Ray -- U S WEST IT/CSD                 rray@lookout.it.uswc.uswest.com
                                                           Phone: (303)595-2852
"It's not denial. I'm just very selective about the reality I accept." --Calvin
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroups: comp.lang.perl,comp.unix.ultrix
From: lytras@avalon.physik.unizh.ch (Apostolos Lytras)
Subject: Re: Perl program 'aub' crashes ULTRIX 4.2A
Keywords: perl,ultrix,crash,open files
Organization: Informatik Club d. Universitaet, Zuerich
Date: Tue, 17 Nov 1992 10:20:03 GMT

Cheers
- A.
-- 
	 lytras@ifi.unizh.ch   		|   Apostolos Lytras
	 lytras@avalon.physik.unizh.ch	|   Informatik Club der Uni
	 lytras@amiga.physik.unizh.ch  	|   Zuerich, SysAdmin
Newsgroups: comp.lang.perl
From: jgd@acl.lanl.gov (Jerry G. DeLapp)
Subject: Re: DBM stuff random?
Followup-To: comp.lang.perl
Reply-To: Jerry G. DeLapp <jgd@acl.lanl.gov>
Organization: Advanced Computing Lab, LANL, NM
Date: Wed, 18 Nov 1992 19:12:50 GMT

Tobias> #
Tobias> # Open and update both DBM files.
Tobias> #
Tobias>         dbmopen(BYU, "$udb_by_u", undef) || return "Open $! $udb_by_u.";
Tobias>         dbmopen(BYN, "$udb_by_n", undef) || return "Open $! $udb_by_n.";

Tobias>         $BYU{$user} = join(':', @uinfo);		# Don't work, WHY???
Tobias>         $BYN{$uinfo[1]} = join(':', @uinfo);	# Don't work, WHY???

Tobias>         dbmclose(BYU);
Tobias>         dbmclose(BYN);


The first parameter to dbmopen is the associative array name you want to
reference through... not a filehandle as in open. Try:

         dbmopen(%byu, "$udb_by_u", undef) || return "Open $! $udb_by_u.";
         dbmopen(%byn, "$udb_by_n", undef) || return "Open $! $udb_by_n.";

         $byu{$user} =	 join(':', @uinfo);	# Works now dude!
         $byn{$uinfo[1]} = join(':', @uinfo);	# Works now dude!

         dbmclose(%byu);
         dbmclose(%byn);
--

Jerry G. DeLapp -- ACL System Scientist -- (505) 665-4531 <jgd@lanl.gov>
Computing beyond the Bleeding Edge -- The Advanced Computing Laboratory
Newsgroups: comp.lang.perl
From: felciano@summit.stanford.edu (Ramon M. Felciano)
Subject: Perl on the Mac?
X-Posted-From: InterNews1.0a5@leland.stanford.edu
Organization: Stanford University Medical Media and Information 
 Technologies
Date: Mon, 23 Nov 92 17:01:15 GMT
Xdisclaimer: No attempt was made to authenticate the sender's name.


Hi -

I'm looking for an implementation of Perl on the Mac, and preferrably
not one that is a plain UNIX port (i.e. with something a bit more
intuitive than a command-line interface).

Can anyone point me to a good ftp site to check? Thanks!

Ramon

+----------------------------------------------------------------+
| Ramon M. Felciano                felciano@summit.stanford.edu  |
| Associate Director, SUMMIT       (415) 723-9688                |
| Stanford University Medical Media and Information Technologies |
+----------------------------------------------------------------+
Newsgroups: comp.lang.perl
From: tres@rap.ucar.edu (Tres Hofmeister)
Subject: chat2.pl Question
Keywords: &chat'expect, $*, $/
Organization: NCAR, Research Application Program
Distribution: na
Date: Mon, 23 Nov 1992 21:51:46 GMT


	I'm a bit confused about the behavior of &chat'expect from
the chat2.pl library.  Why is it that, in a simple script I can use:

$* = 1;
$/ = undef;
while (<>) {
	/(.|\n)*/ && print $&;
}

	...and get paragraph output, but when using chat2.pl:

$* = 1;
$/ = undef;
&chat'expect($handle, $secs, '(.|\n)*', '"$&"');

	...I don't?  In fact, I get nothing, even when there is
stuff available for reading.  I find that I have to use something
like this:

while ((&chat'select($timeout, $handle))[0] eq $handle) {
	print &chat'expect($handle, $secs, '(.*)\n', '"$1\n"');
}

	...and build up the output line by line.  Why is this?
The version of the library is: V2.01.alpha.7 91/06/16, if it makes
a difference.

	Thanks in advance.  Any assistance or suggestion is
appreciated, as are appropriate FM references. :-)

--
Tres Hofmeister
tres@ncar.ucar.edu
Newsgroups: comp.lang.perl
From: schwager@cs.uiuc.edu
Subject: Calling a text editor from Perl
Organization: Dept. of Computer Sci - University of Illinois
Date: Mon, 16 Nov 1992 22:33:57 GMT


Hi,
Is it possible to call a text editor from Perl?  I want to do something
like this:
        `/usr/ucb/vi /tmp/addgr$$`;
but it looks like the terminal i/o is not working properly, so it just
hangs at that statement.  Afterwards I have to reset my terminal, so I'm sure
it's scrogged somehow.  Thanks for any help.  I'd hate to have to go back to
using csh.

I'm on a Sun Sparc, running os 4.1.2, and the latest Perl.
-Mike
aka, Mike Schwager               |"I think we don't have ideology.
INTERNET:schwager@cs.uiuc.edu    | We don't have theology.
                                 | We dance."        -Japanese Shinto Priest
University of Illinois, Dept. of Comp. Sci., for whom I do not speak

.
Newsgroups: comp.lang.perl,comp.unix.ultrix
From: dietrich@dxcern.cern.ch (Dietrich Wiegandt)
Subject: Perl program 'aub' crashes ULTRIX 4.2A
Summary: Perl program 'aub' corrupts user file table leading to ULTRIX crash.
Keywords: perl,ultrix,crash,open files
Reply-To: dietrich@dxcern.cern.ch
Organization: CERN European Lab for Particle Physics
Date: Mon, 16 Nov 1992 15:32:08 GMT


Hello,

some users here use the Perl program 'aub' (assemble usenet binaries),
Author stantz@sgi.com, to process image files received via USENET.
Somehow this program seems to manage to corrupt the open file table in the
user area so that ULTRIX crashes e.g. when the program is exiting and the
files are being closed.  It apparently leaves a large number of files
behind, because fsck on /tmp, where this program was supposed to create
files, complains about unconnected files and other strange anomalies.  It
looks as if the program is going beyond 64 open files before the crash
occurs.

Has anyone seen a similar behaviour? Any ideas for a fix?

Some configuration details: DECserver 5900, Prestoserve, ULTRIX 4.2A,
Perl 4.035, aub v2.0 and v2.0.5 behaving alike.

Panics that we have seen sofar:
	gfs_lock: locking unrefed gnode
	km_free: bad addr
	unaligned access

Any help would be very much appreciated.

Dietrich Wiegandt
CERN Computing and Networks Division
CH-1211 Geneve 23
Switzerland
From: Eric-Amick@cup.portal.com (Richard E Amick)
Newsgroups: comp.lang.perl
Subject: Re: Regex question
Date: Sun, 22 Nov 92 15:49:15 PST
Organization: The Portal System (TM)
Distribution: usa

>I thought I knew how to do this... guess I don't.  I want to have
>something like this:
>
>($suit, $pip) = /(\S+) of (Spade|Heart|Club|Diamond)/;
>
>but that doesn't work.  What will?

Besides having $suit and $pip backwards, you might want to allow
differing whitespace in the pattern.  How about \s+ instead of the
spaces?  Another possibility is that $_ doesn't contain what you think
it does.
Newsgroups: comp.lang.perl
From: mohr@slsvett (Thomas Mohr US/ESC)
Subject: Re: Difficulties running a Perl/tip job from cron
Organization: SEL-Alcatel LTS Dept. US/ES
X-Newsreader: Tin 1.1 PL4
Distribution: comp
Date: Sat, 21 Nov 92 16:19:26 GMT

dowding@ai.sri.com (John Dowding) writes:
: 
<problem deleted: script refuses to run under cron>


Try the following:

sub handler {
}

$SIG{'TTIN'} = 'handler';

--
#include <std.disclaimer>
-------------------------------------------------------------
Thomas Mohr SEL/ALCATEL                     mohr@us-es.sel.de
From: Eric-Amick@cup.portal.com (Richard E Amick)
Newsgroups: comp.lang.perl
Subject: Setuid Scripts?
Date: Fri, 20 Nov 92 16:14:57 PST
Organization: The Portal System (TM)
Distribution: usa

I noticed that the distribution kit mentions something about a kernel
bug making setuid scripts insecure.  I couldn't find any mention in my
system's manuals, so can anyone tell me if the bug exists under SunOS
4.1.3, or if there's a way to test for it?  If the bug does exist, how
can I disable setuid scripts in the kernel?  Thanks.

Eric
Newsgroups: comp.lang.perl
From: Mike Stramba <stramba@zooid.guild.org>
Subject: perl for the st?
Organization: The Zoo of Ids
Date: Mon, 23 Nov 1992 14:28:25 GMT

Has a port of perl been done for the Atari ST?

Is it possible to do it?

Mike
From: ej@id.dth.dk (Erik Johansen)
Newsgroups: comp.lang.perl
Subject: Re: Multi-dimensional arrays
Date: 20 Nov 92 13:08:39 GMT
Organization: Department of Computer Science

>sasswb@unx.sas.com (Scott Bass) writes:

>>1.  How can I code a multi-dimensional array in perl, say an Nx5 array?

>You can do it the same way you could in any language:

>	$foo[$i * 5 + $j] = $bar;

Another way is to use assoc. arrays like this

        $foo{ $i, $j } = $bar;

Here the indexes $i, $j does not have to be numbers. It can be any name
or string (as long as it does not contain $, )


  Hope this helps
  Erik Johansen

---
Erik Johansen / Institute for Computer Science / Danish Technical University
ej@id.dth.dk
    $txt=" ltrterhnuc--sor eep-\nkJ.a "; srand(53747414);
    for (1..26) { print substr($txt,rand 27,1); }  ### Is this a random write ?
-- 
Erik Johansen / Institute for Computer Science / Danish Technical University
ej@id.dth.dk
Newsgroups: comp.lang.perl
From: woodruff@esseye.si.com (David Woodruff)
Subject: Perl ported to Intergraph?
Organization: Smiths Industries
Distribution: usa
Date: Tue, 17 Nov 1992 16:36:01 GMT


Can anyone tell me if Perl has ported to Intergraph machines?

Thanks for the info.

Dave Woodruff.
(woodruff@si.com)

Xref: sparky comp.lang.perl:7033 comp.lang.scheme:2605 comp.lang.tcl:1864
Newsgroups: comp.lang.perl,comp.lang.scheme,comp.lang.tcl
Date: Wed, 18 Nov 92 00:09:50 EST
From: thayer@cs.columbia.edu (Charles Thayer)
Subject: Re: Closures, Object-Oriented Equivalence, New version of Perl and TCL

> For example, in Scheme, a 'define' saves the current environment and
> leaves the ability to reach the enclosing (dynamic) environment:

   That's not quite right.  DEFINE does not save the current environment.
   It only binds a value to a variable.

I was not refering to the scheme meaning of `environment'.  I meant
the entire set of visible bindings.  In scheme the `environment' only
holds the most immediate visible bindings.

I would also say that "define" creates a new binding in the current
environment, as opposed to set! which changes the value bound to a
variable in that variable's appropriate environment.
   
   When a closure is created with LAMBDA it effectively "remembers" the
   current environment.  The environment doesn't always need to be saved,
   though.  We only need to save the value of free variables within the
   body of the LAMBDA expression.  If there are no free variables, we
   don't need to keep any extra environment around.

[We do need to keep around a pointer to our parent environment, but
we digress on implementation]

:)  Which brings up an interesting point in mit-scheme:

(begin
  (define a "moo")
  (define (foo) 
    (display a)
    (define a "bar")
    )
  (foo))

=> Unassigned variable a

Astute PERL users will notice that there are similar holes in the 
implementation of the exact same thing with respect to the main
package  :)  which I find ironic.

/charles 
PS.  It's also amusing to note that this is not a problem in languages
with a lasier mode of evaluation including TCL and SIOD.  Mileage
varies.

PPS. Disclaimer:  This is not meant to imply that this is a bug or
a feature, just a fact to be aware of.

==============================================================================
Charles Thayer, Columbia University, Dept. CS, Tech-staff... my words only.
Newsgroups: comp.lang.perl
From: epeterso@encore.com (Eric Peterson)
Subject: Re: Porting to an Encore 91
Organization: Encore Computer Corporation
Date: Mon, 23 Nov 1992 15:51:35 GMT
X-Newsreader: TIN [version 1.1 PL7]

Ken Mayer (ken@visix.com) wrote:

| Has anyone had experience porting perl (4.035) to an Encore 91 (Rel
| 3.0.6.14)?

I've ported it successfully to that platform.

| I've encountered only two problems: first, no dbm libraries
| (can be fixed by installing gdbm or other)

I've successfully built it with GDBM support as well.

| second t/lib/big.t (the
| bigint.pl tester) generates some errors (see trace). I can't figure
| out what's wrong (although it may have something to do with operands
| having mixed signs), and I'm having trouble setting breakpoints inside
| a package's private function.

You might need to use the compiler flag -q nocompiler_registers on some
of the modules (I believe that [t]util.o and [t]eval.o needed it).  You
can use this flag to build all of Perl, although this will be a slight
performance hit (the flag forces all variables to be allocated in memory
rather than to optimize them by possibly allocating some to registers).
Also, use the malloc included with Perl instead of Umax V.

Note that Perl builds cleanly with no additional compiler flags under
Umax V 3.0.7, which will be released shortly.  If you are hopelessly
unable to get Perl to build, I can put a binary package together for you.

Good luck ...

Eric
From: lwall@netlabs.com (Larry Wall)
Newsgroups: comp.lang.perl
Subject: Re: Bad free() error???
Date: 16 Nov 92 19:28:47 GMT
Organization: NetLabs, Inc.

In article <dewey-131192123446@sebastian.centerline.com> dewey@centerline.com (Devan F. dewey) writes:
: Has anyone ever seen this error:
: 
: Bad free() ignored at newreports.pl line 354, <> line 4.
: 
: The code that it points to is:
: 
:    351  sub             getparam {
:    352          local($paramname, $string, $format, $req) = @_;
:    353
:    354          $input = &getinput($string, $format, $req);
:    355          $parameter = " $paramname=$input";
:    356          return $parameter;
:    357  }
:    358
:    359  sub             getinput {
:    360          local($string, $format, $req) = @_;
:    361
:    362          $nogo = 1;
:    363          while ($nogo) {
:    364                  print "\nEnter $string";
:    365                  print " (Hint: $format)" if $format;
:    366                  print ": ";
:    367                  $input = <>;
:    368                  chop $input;
:    369
:    370                  if ($input eq "" & $req) {
:    371                          print "\n$string may not be empty.\n";
:    372                          $nogo = 1;
:    373                  } else {
:    374                          $nogo = 0;
:    375                  }
:    376          }
:    377
:    378          return $input;
:    379  }
:    380

Try putting a local($input) into getinput.  I suspect that the problem
might have to do with returning a variable into itself.  You could also
play with changing "return $input" to simply "$input", since the last
expression is returned by default anyway, and it'd be more efficient.
Other than that, I have no idea.

Note in line 370 that you've got a & where you really want &&.  The
single & will work as long as both sides evaluate to 1 or 0, and you
don't care that both sides are always evaluated, but it's a potentially
deleterious habit to get into.

Larry
Newsgroups: comp.lang.perl
From: sjaak@athena.research.ptt.nl (Sjaak Schilperoort)
Subject: Re: UUDECODE and perl ...
Originator: sjaak@athena.research.ptt.nl
Reply-To: J.W.Schilperoort@research.ptt.nl
Organization: PTT Research
Date: Mon, 16 Nov 1992 11:03:55 GMT

merlyn@ora.com (Randal L. Schwartz) writes:

>In fact, here's my program that uudecodes, ignoring anything that's
>not a legal part of the uudecode.  I call it "uumerge".  There are
>*many* broken uuencoders out there on the net, which is why it goes
>through all these gyrations to figure out what the legal uu-lines are.
>Ugh.

And here is my patch to Randal's program to allow unpacking more than
one file at a time. Very handy when, say from nn, you pipe all parts of
10 binaries through uumerge (the parts have to be in the right order, but
for me they usually are).

			Sjaak.

*** uumerge.orig	Mon Nov 16 12:02:40 1992
--- uumerge	Mon Nov 16 12:01:09 1992
***************
*** 4,14 ****
  ## Written by Randal L. Schwartz, Stonehenge Consulting Services, Portland, OR
  ## uudecodes the arguments (or stdin), ignoring non-uuencoded lines
  
  shift,$debug++ if $ARGV[0] =~ /^-d/; # show lines being skipped
  while (<>) {
! 	last if ($mode,$file) = /^begin\s*(\d*)\s*(\S*)/;
  }
! die "missing begin" unless $_;
  open(OUT,"> $file") if $file ne "";
  while (<>) {
  	last if /^end/;
--- 4,17 ----
  ## Written by Randal L. Schwartz, Stonehenge Consulting Services, Portland, OR
  ## uudecodes the arguments (or stdin), ignoring non-uuencoded lines
  
+ again:
+ $sawbegin = 0;
  shift,$debug++ if $ARGV[0] =~ /^-d/; # show lines being skipped
  while (<>) {
! 	$sawbegin++, last if ($mode,$file) = /^begin\s*(\d*)\s*(\S*)/;
  }
! exit 0 unless $_;
! die "missing begin" unless $sawbegin;
  open(OUT,"> $file") if $file ne "";
  while (<>) {
  	last if /^end/;
***************
*** 33,36 ****
  }
  die "missing end" unless $_;
  chmod oct($mode), $file;
! exit 0;
--- 36,39 ----
  }
  die "missing end" unless $_;
  chmod oct($mode), $file;
! goto again;

-- 
Sjaak Schilperoort                   J.W.Schilperoort@research.ptt.nl
PTT Research, The Netherlands
Newsgroups: comp.lang.perl
From: mcook@fendahl.dev.cdx.mot.com (Michael Cook)
Subject: Re: sorting problem
Organization: Motorola Codex, Canton, Massachusetts
Date: Tue, 17 Nov 1992 16:28:16 GMT

dov@menora.weizmann.ac.il (Dov Grobgeld) writes:

>tchrist@convex.COM (Tom Christiansen) writes:
>: :
>:
>:     for (@data) { push(@idx, /^[^;]*;(.*)/) }
>                                ^^^^^^^^^^^^
>According to the book m// returnes true (1) or false ('').

Not always.

                  If used in a context that requires an array value, a pat-
                  tern match returns an array consisting of the subexpres-
                  sions matched by the parentheses in the pattern, i.e.
                  ($1, $2, $3...).

Michael.
Newsgroups: comp.lang.perl
From: tleifsen@helena.uio.no (Torben Leifsen)
Subject: perl on Alpha AXP
Reply-To: tleifsen@astro.uio.no (Torben Leifsen)
Organization: Institute for Theoretical Astrophysics
Date: Fri, 20 Nov 1992 06:35:05 GMT


Has anyone ported perl to Digitals Alpha AXP/OSF-1 yet?

Torben Leifsen
Institute of Theoretical Astrophysics
University of Oslo
Norway

Internet: tleifsen@astro.uio.no
From: rjo@leo (Robert Opferman)
Subject: Re: Perl On NeXT 3.0
Keywords: perl, next
Organization: First National Bank Of Chicago, Chicago IL, USA
Date: Thu, 19 Nov 92 22:44:56 GMT

In article <1992Nov19.173121.2805@fnbc.com> rjo@leo (Robert Opferman)  
writes:
> I somehow lost the use of $> and $< using TAINTPERL under NeXTstep 3.0.  
> I tried the following simple test and got a blank response from both:
> 
> print "the id is ",(getpwnam($>)),"\n";
> print "the id is ",(getpwnam($<)),"\n";
> 
> It works fine when I specified a username in the above statements.  I  
> tried to recompile under 3.0 and got the same result.  I would like to  
use  
> SUID scripts without having to put a C-wrapper around them.
> 
> Thanks in advance for any help/suggestions.
> 
> Bob O.
> rjo@fnbc.com

quick correction to avoid blasting:  the syntax above was using the  
"getpwuid" call.  Results were the same.
Newsgroups: comp.lang.perl
From: mcook@fendahl.dev.cdx.mot.com (Michael Cook)
Subject: Re: Calling a text editor from Perl
Organization: Motorola Codex, Canton, Massachusetts
Date: Tue, 17 Nov 1992 16:29:54 GMT

schwager@cs.uiuc.edu writes:

>Hi,
>Is it possible to call a text editor from Perl?  I want to do something
>like this:
>        `/usr/ucb/vi /tmp/addgr$$`;
>but it looks like the terminal i/o is not working properly, so it just
>hangs at that statement.  Afterwards I have to reset my terminal, so I'm sure
>it's scrogged somehow.  Thanks for any help.  I'd hate to have to go back to
>using csh.

Do this, instead:

	system("/usr/ucb/vi /tmp/addgr$$");

Backquoting captures the output, which means that vi isn't allowed to update
your display.

Michael.