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 /hash.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 'hash.c')
-rw-r--r-- | hash.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $Header: hash.c,v 3.0.1.6 90/10/15 17:32:52 lwall Locked $ +/* $Header: hash.c,v 3.0.1.7 90/10/20 02:10:00 lwall Locked $ * * Copyright (c) 1989, Larry Wall * @@ -6,6 +6,9 @@ * as specified in the README file that comes with the perl 3.0 kit. * * $Log: hash.c,v $ + * Revision 3.0.1.7 90/10/20 02:10:00 lwall + * patch37: hash.c called ndbm function on dbm system + * * Revision 3.0.1.6 90/10/15 17:32:52 lwall * patch29: non-existent array values no longer cause core dumps * patch29: %foo = () will now clear dbm files @@ -402,7 +405,15 @@ int dodbm; if ((old_dbm = tb->tbl_dbm) && dodbm) { while (dkey = dbm_firstkey(tb->tbl_dbm), dkey.dptr) { do { +#ifdef NDBM +#ifdef _CX_UX nextdkey = dbm_nextkey(tb->tbl_dbm, dkey); +#else + nextdkey = dbm_nextkey(tb->tbl_dbm); +#endif +#else + nextdkey = nextkey(dkey); +#endif dbm_delete(tb->tbl_dbm,dkey); dkey = nextdkey; } while (dkey.dptr); /* one way or another, this works */ |