From 09363426739388813a53d63716d15163f6c43caf Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Tue, 9 Mar 2010 12:58:24 +0800 Subject: [REDIR] Do not truncate file for FROMTO redirection On Tue, Jun 23, 2009 at 10:06:30AM +0000, Nikola Vladov wrote: > May be this is a bug: > > echo XX > uu > cat <> uu > > dash truncates file uu. The open flag O_TRUNC must be removed. > I'm not 100% shure what POSIX say about: program <> file Indeed, this is a bug we inherited from NetBSD. This patch removes the O_TRUNC flag for FROMTO. Signed-off-by: Herbert Xu --- ChangeLog | 4 ++++ src/redir.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8dfd747..e6e82f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -45,6 +45,10 @@ * Honor tab as IFS whitespace when splitting fields in readcmd. +2009-06-30 Herbert Xu + + * Do not truncate file for FROMTO redirection. + 2009-06-27 Herbert Xu * Fix quoted pattern patch breakage. diff --git a/src/redir.c b/src/redir.c index b01237d..54af96b 100644 --- a/src/redir.c +++ b/src/redir.c @@ -192,7 +192,7 @@ openredirect(union node *redir) break; case NFROMTO: fname = redir->nfile.expfname; - if ((f = open64(fname, O_RDWR|O_CREAT|O_TRUNC, 0666)) < 0) + if ((f = open64(fname, O_RDWR|O_CREAT, 0666)) < 0) goto ecreate; break; case NTO: -- cgit 1.4.1