Help testing release candidate / mc-4.8.28-rc1

Oswald Buddenhagen oswald.buddenhagen at gmx.de
Sun Mar 20 18:12:13 UTC 2022


On Sun, Mar 20, 2022 at 06:59:32PM +0300, Andrew Borodin wrote:
>On Sun, 20 Mar 2022 15:22:14 +0100 Oswald Buddenhagen via mc-devel <mc-devel at gnome.org>
> wrote:
>> `mc -P $file` doesn't work any more when the file already exists 
>> (which is of course the case after file=`mktemp`).
>
>Indeed.
>
>A following patch is proposed:
>
>diff --git a/src/main.c b/src/main.c
>index 3a33dfb59..a4910349a 100644
>--- a/src/main.c
>+++ b/src/main.c
>@@ -492,6 +492,10 @@ main (int argc, char *argv[])
> 
>         last_wd_fd = open (mc_args__last_wd_file, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL,
>                            S_IRUSR | S_IWUSR);
>+
>+        if (last_wd_fd == -1 && errno == EEXIST)
>+            last_wd_fd = open (mc_args__last_wd_file, O_WRONLY | O_TRUNC, S_IRUSR | S_IWUSR);
>+
>         if (last_wd_fd != -1)
>         {
>             ssize_t ret1;
>
that seems overly complicated - why not just drop the O_EXCL? at least i 
can't see an obvious reason for having it in the first place.

anyway, i wonder why i ran into this only recently, given that this 
behavior is actually rather ancient. probably has something to do with 
me porting the wrapper function from tempfile to mktemp (as debian 
started to complain about deprecation), though the replacement itself 
couldn't have caused it.



More information about the mc-devel mailing list