diff options
author | Winfried Koenig <win@in.rhein-main.de> | 1996-12-26 00:45:45 +0200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1996-12-28 06:22:00 +1200 |
commit | ed969818e9262af83dfc5c762815172bd6262d27 (patch) | |
tree | b243b1581e36484bcfcbeaa652907d21cd6aa6d3 /pp_sys.c | |
parent | 07055b4c536e012d70aa7099a086192fbb14e918 (diff) | |
download | perl-ed969818e9262af83dfc5c762815172bd6262d27.tar.gz |
perl5.003_15 and Interactive Unix
with my patches, perl5.003_15 compiled with cc, runs all tests.
Compiled with gcc I get this failed tests:
op/goto...........FAILED on test 8
op/sysio..........FAILED on test 0
lib/autoloader....Goto undefined subroutine at ./lib/autoloader.t line 58.
FAILED on test 3
lib/english.......FAILED on test 0
lib/fatal.........FAILED on test 0
lib/hostname......FAILED on test 0
Failed 6/135 tests, 91.11% okay.
On my Linux System I get similar failures:
op/goto...........FAILED on test 8
op/sysio..........Negative length at ./op/sysio.t line 64.
FAILED on test 1
lib/autoloader....Goto undefined subroutine at ./lib/autoloader.t line 58.
FAILED on test 0
lib/english.......FAILED on test 0
lib/fatal.........Can't use an undefined value as filehandle reference at ./lib/fatal.t line 21.
lib/hostname......FAILED on test 0
Failed 6/135 tests, 94.81% okay.
So I think that this problems are already fixed. My changes to
perl.h are necessary to compile x2p/malloc.c, but there may be
better solutions.
p5p-msgid: <m0vd254-0004oKC@incom.rhein-main.de>
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -2496,13 +2496,15 @@ PP(pp_rename) #ifdef HAS_RENAME anum = rename(tmps, tmps2); #else - if (same_dirent(tmps2, tmps)) /* can always rename to same name */ - anum = 1; - else { - if (euid || Stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode)) - (void)UNLINK(tmps2); - if (!(anum = link(tmps, tmps2))) - anum = UNLINK(tmps); + if (!(anum = Stat(tmps, &statbuf))) { + if (same_dirent(tmps2, tmps)) /* can always rename to same name */ + anum = 1; + else { + if (euid || Stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode)) + (void)UNLINK(tmps2); + if (!(anum = link(tmps, tmps2))) + anum = UNLINK(tmps); + } } #endif SETi( anum >= 0 ); |