Tech Insider					     Technology and Trends


			      USENET Archives

Path: utzoo!attcan!uunet!lll-winken!lll-tis!mordor!joyce!sri-unix!quintus!ok
From: ok@quintus
Newsgroups: comp.sources.bugs
Subject: Haugh's "env"
Message-ID: <168@quintus.UUCP>
Date: 14 Jul 88 23:35:45 GMT
Sender: n...@quintus.UUCP
Reply-To: ok@quintus ()
Organization: Quintus Computer Systems, Inc.
Lines: 20


"john f. haugh ii" recently sent out public domain code which implements
the System V "env" command.  There are a number of problems:
(1) It uses strchr() rather than index(); if you have an older
    BSD system (why else would you lack "env"?) you probably haven't
    got strchr() either.
(2) main() doesn't end with a call to exit(0); but just falls off the end.
(3) When a command can't be executed, the diagnostic message is
	<command pathname>: <perror text>
    whereas the real "env" command prints
	<perror text>: <command pathname>
    This one's pretty minor.
(4) When a command can't be executed, Haugh's version does _exit(127);
    the status returned by the real env is 1, so change that 127 to 1.
(5) Haugh's version calls
	execve(*argv, argv, env);
    which means that e.g. "env fred=47 sh" doesn't work.  This should be
	extern char **environ;
	environ = env;
	execvp(*argv, argv);
    {Why is there no execvep() library routine?}

Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!elroy!devvax!lwall
From: lw...@devvax.JPL.NASA.GOV (Larry Wall)
Newsgroups: comp.sources.bugs
Subject: Re: Haugh's "env"
Message-ID: <2457@devvax.JPL.NASA.GOV>
Date: 15 Jul 88 07:48:13 GMT
References: <168@quintus.UUCP>
Reply-To: lw...@devvax.JPL.NASA.GOV (Larry Wall)
Organization: Jet Propulsion Laboratory, Pasadena, CA.
Lines: 30

In article <1...@quintus.UUCP> ok@quintus () writes:
: "john f. haugh ii" recently sent out public domain code which implements
: the System V "env" command...

Just for the fun of it, I whipped one off in perl (discovering one perl bug
in the process--this needs patch 9 for reset 'E' to wipe the environment).

Here's env a la perl:

#!/usr/bin/perl

reset 'E', shift if $ARGV[0] eq '-';

$ENV{$1} = $2, shift while $ARGV[0] =~ /(\w+)=(.*)/;

if ($#ARGV < 0) {
    foreach $key (sort keys(ENV)) {
	print $key,'=',$ENV{$key},"\n";
    }
}
else {
    exec @ARGV;
    print $!,': ',shift,"\n";
    exit 1;
}

The only difference I can see is that it sorts the environment variables
when it prints them out.

Larry Wall
lw...@jpl-devvax.jpl.nasa.gov

Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!killer!vector!rpp386!jfh
From: j...@rpp386.UUCP (John F. Haugh II)
Newsgroups: comp.sources.bugs
Subject: Re: Haugh's "env"
Summary: like i said, what do you expect from 30 minutes or so.
Message-ID: <4033@rpp386.UUCP>
Date: 15 Jul 88 22:36:16 GMT
References: <168@quintus.UUCP>
Reply-To: j...@rpp386.UUCP (The Beach Bum)
Organization: Big "D" Home for Wayward Hackers
Lines: 16

In article <1...@quintus.UUCP> ok@quintus () writes:
>
>"john f. haugh ii" recently sent out public domain code which implements
>the System V "env" command.  There are a number of problems:

thanks for the debugging, but as i said in the posting i was actually
waiting for my plexus p/95 to crash when i wrote that.

did anyone else find anything because i kind of like env and i was
going to put mine on my 7th edition box ...

- john.
-- 
John F. Haugh II                 +--------- Cute Chocolate Quote ---------
HASA, "S" Division               | "USENET should not be confused with
UUCP:   killer!rpp386!jfh        |  something that matters, like CHOCOLATE"
DOMAIN: j...@rpp386.uucp          |             -- with my apologizes

			        About USENET

USENET (Users’ Network) was a bulletin board shared among many computer
systems around the world. USENET was a logical network, sitting on top
of several physical networks, among them UUCP, BLICN, BERKNET, X.25, and
the ARPANET. Sites on USENET included many universities, private companies
and research organizations. See USENET Archives.

		       SCO Files Lawsuit Against IBM

March 7, 2003 - The SCO Group filed legal action against IBM in the State 
Court of Utah for trade secrets misappropriation, tortious interference, 
unfair competition and breach of contract. The complaint alleges that IBM 
made concentrated efforts to improperly destroy the economic value of 
UNIX, particularly UNIX on Intel, to benefit IBM's Linux services 
business. See SCO v IBM.

The materials and information included in this website may only be used
for purposes such as criticism, review, private study, scholarship, or
research.

Electronic mail:			       WorldWideWeb:
   tech-insider@outlook.com			  http://tech-insider.org/