diff options
author | Gerrit P. Haase <gp@familiehaase.de> | 2002-06-01 06:14:43 +0200 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-06-01 01:16:59 +0000 |
commit | c030f24b810c923631239a170282534aaf44e4ba (patch) | |
tree | fbc3454c343b29f9943b44fd5d5c4bb3e4a6b414 | |
parent | 4c7fc0a422d59e20b533b9ae25dd19c2ebfb68b6 (diff) | |
download | perl-c030f24b810c923631239a170282534aaf44e4ba.tar.gz |
[Patch] Inplace editing on Cygwin and others?
From: "Gerrit P. Haase" <gp@familiehaase.de>
Message-ID: <199100765833.20020601041443@familiehaase.de>
p4raw-id: //depot/perl@16946
-rw-r--r-- | README.cygwin | 5 | ||||
-rw-r--r-- | doio.c | 2 | ||||
-rw-r--r-- | perl.c | 6 |
3 files changed, 10 insertions, 3 deletions
diff --git a/README.cygwin b/README.cygwin index c09eeaba6a..99d0a4f598 100644 --- a/README.cygwin +++ b/README.cygwin @@ -401,8 +401,9 @@ Win9x can not rename() an open file (although WinNT can). The Cygwin chroot() implementation has holes (it can not restrict file access by native Win32 programs). -Inplace editing ( perl -i ) of files doesn't work without doing a backup -of the file being edited ( perl -i.bak ). +Inplace editing C<perl -i> of files doesn't work without doing a backup +of the file being edited C<perl -i.bak> because of windowish restrictions, +so Perl does this automagically if you just use C<perl -i>. =back @@ -790,7 +790,7 @@ Perl_nextargv(pTHX_ register GV *gv) #endif } else { -#if !defined(DOSISH) && !defined(AMIGAOS) && !defined(__CYGWIN__) +#if !defined(DOSISH) && !defined(AMIGAOS) # ifndef VMS /* Don't delete; use automatic file versioning */ if (UNLINK(PL_oldname) < 0) { if (ckWARN_d(WARN_INPLACE)) @@ -2363,6 +2363,12 @@ Perl_moreswitches(pTHX_ char *s) case 'i': if (PL_inplace) Safefree(PL_inplace); +#if defined(__CYGWIN__) /* do backup extension automagically */ + if (*(s+1) == '\0') { + PL_inplace = savepv(".bak"); + return s+1; + } +#endif /* __CYGWIN__ */ PL_inplace = savepv(s+1); /*SUPPRESS 530*/ for (s = PL_inplace; *s && !isSPACE(*s); s++) ; |