This is v3 of id:1369557954-13439-1-git-send-email-tomi.ollila@iki.fi In id:m2a9nfr4tb.fsf@guru.guru-group.fi I suggested to use 0600 as permission bits so that files written to /tmp would not have write bits set in any case. That would have been inconsistent what is normally expected in redirection cases. The problem I described is easily avoided in emacs as (make-temp-file "nmerr") will create file "/tmp/nmerrXXXXXX" with permissions 0600 -- and writing to that already-created file will not change its permissions. Writing elsewhere is usually covered with directory permissions. Diffdiff from v2 is shown below. diff --git a/NEWS b/NEWS index 990b038..80abd97 100644 --- a/NEWS +++ b/NEWS @@ -38,8 +38,7 @@ Top level option to specify configuration file Top level option to redirect writes to stderr With `notmuch --stderr=FILE` all writes to stderr are redirected to - the specified file. If the file name is a plain '-', stderr is - written to stdout. + the specified file. If FILE is '-', stderr is redirected to stdout. Deprecated commands "part" and "search-tags" are removed. diff --git a/man/man1/notmuch.1 b/man/man1/notmuch.1 index fbd575a..f5ca0ad 100644 --- a/man/man1/notmuch.1 +++ b/man/man1/notmuch.1 @@ -83,7 +83,7 @@ configuration file specified by ${NOTMUCH_CONFIG}. .B \-\-stderr=FILE Redirect all writes to stderr to the specified file. -If the file name is a plain '-', stderr is written to stdout. +If FILE is '-', stderr is redirected to stdout. .RE .SH COMMANDS diff --git a/notmuch.c b/notmuch.c index 654a568..15e90c8 100644 --- a/notmuch.c +++ b/notmuch.c @@ -260,7 +260,7 @@ redirect_stderr (const char * stderr_file) return 1; } } else { - int fd = open (stderr_file, O_WRONLY|O_CREAT|O_APPEND, 0644); + int fd = open (stderr_file, O_WRONLY|O_CREAT|O_TRUNC, 0666); if (fd < 0) { fprintf (stderr, "Error: Cannot redirect stderr to '%s': %s\n", stderr_file, strerror (errno)); >From Tomi Ollila <tomi.ollila@iki.fi> # This line is ignored.