diff options
author | Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> | 1990-10-19 13:31:07 +0000 |
---|---|---|
committer | Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> | 1990-10-19 13:31:07 +0000 |
commit | e5d73d7778736a8bd9f7f44aad5289ad2c783a16 (patch) | |
tree | 756f3b46679d7ac7f679ae75de0329852e1155b2 /util.c | |
parent | 20188a906a3fc8fea4839293454a6ca32aa362cc (diff) | |
download | perl-e5d73d7778736a8bd9f7f44aad5289ad2c783a16.tar.gz |
perl 3.0 patch #37 (combined patch)
I tried to take the strlen of an integer on systems without wait4()
or waitpid(). For some reason this didn't work too well...
In hash.c there was a call to dbm_nextkey() which needed to be
ifdefed on old dbm systems.
A pattern such as /foo.*bar$/ was wrongly optimized to do
tail matching on "foo". This was a longstanding bug that
was unmasked by patch 36.
Some systems have some SYS V IPC but not all of it. Configure
now figures this out.
Patch 36 put the user's PATH in front of Configures, but to make
it work right I needed to change all calls of loc to ./loc in
Configure.
$cryptlib needed to be mentioned in the Makefile.
Apollo 10.3 and Sun 3.5 have some compilation problems, so I
mentioned them in README.
Cray has weird restrictions on setjmp locations--you can't say
if (result = setjmp(...))
Random typos and cleanup.
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -1,4 +1,4 @@ -/* $Header: util.c,v 3.0.1.8 90/10/16 11:26:57 lwall Locked $ +/* $Header: util.c,v 3.0.1.9 90/10/20 02:21:01 lwall Locked $ * * Copyright (c) 1989, Larry Wall * @@ -6,6 +6,10 @@ * as specified in the README file that comes with the perl 3.0 kit. * * $Log: util.c,v $ + * Revision 3.0.1.9 90/10/20 02:21:01 lwall + * patch37: tried to take strlen of integer on systems without wait4 or waitpid + * patch37: unreachable return eliminated + * * Revision 3.0.1.8 90/10/16 11:26:57 lwall * patch29: added waitpid * patch29: various portability fixes @@ -1341,10 +1345,10 @@ int flags; #else if (pid > 0) { sprintf(spid, "%d", pid); - str = hfetch(pidstatus,spid,strlen(pid),FALSE); + str = hfetch(pidstatus,spid,strlen(spid),FALSE); if (str != &str_undef) { *statusp = (int)str->str_u.str_useful; - hdelete(pidstatus,spid,strlen(pid)); + hdelete(pidstatus,spid,strlen(spid)); return pid; } } @@ -1357,7 +1361,7 @@ int flags; str = hiterval(entry); *statusp = (int)str->str_u.str_useful; sprintf(spid, "%d", pid); - hdelete(pidstatus,spid,strlen(pid)); + hdelete(pidstatus,spid,strlen(spid)); return pid; } } @@ -1373,9 +1377,9 @@ int flags; if (result < 0) *statusp = -1; } + return result; #endif #endif - return result; } #endif /* !MSDOS */ @@ -1389,7 +1393,7 @@ int status; char spid[16]; sprintf(spid, "%d", pid); - str = hfetch(pidstatus,pid,strlen(pid),TRUE); + str = hfetch(pidstatus,spid,strlen(spid),TRUE); str->str_u.str_useful = status; #endif return; |