[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28875: 25.3.50; set-default-file-modes ignores execution bits
From: |
Eli Zaretskii |
Subject: |
bug#28875: 25.3.50; set-default-file-modes ignores execution bits |
Date: |
Fri, 20 Oct 2017 10:15:34 +0300 |
> From: Tino Calancha <tino.calancha@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, Andreas Schwab <schwab@suse.de>
> Date: Fri, 20 Oct 2017 12:10:18 +0900
>
> >> make-temp-file already creates the file (with restrictive modes), so
> >> with-file-modes has no effect (write-region does not change the mode of
> >> existing files). But write-region also never sets the x bits in the
> >> first place, it uses #o666 as the base mode.
> >>
> > I think I was fooled by the docstring of `set-default-file-modes':
> > "Set the file permission bits for newly created files..."
> Besides the behavior is mentioned in the manual, that is relevant
> for the correct use of the function, so IMO it's worth to include it
> the docstring as well.
>
> --8<-----------------------------cut
> here---------------start------------->8---
> commit d749ad1ca0375a938c0283155b56e737cc120640
> Author: Tino Calancha <tino.calancha@gmail.com>
> Date: Fri Oct 20 11:58:17 2017 +0900
>
> * src/fileio.c (set-default-file-modes): Doc fix
>
> diff --git a/src/fileio.c b/src/fileio.c
> index b7df38c857..d707bfc1c6 100644
> --- a/src/fileio.c
> +++ b/src/fileio.c
> @@ -3125,7 +3125,11 @@ symbolic notation, like the `chmod' command from GNU
> Coreutils. */)
> DEFUN ("set-default-file-modes", Fset_default_file_modes,
> Sset_default_file_modes, 1, 1, 0,
> doc: /* Set the file permission bits for newly created files.
> The argument MODE should be an integer; only the low 9 bits are used.
> -This setting is inherited by subprocesses. */)
> +This setting is inherited by subprocesses.
> +
> +Note that some functions (e.g., `write-region') ignore the execution
> +bits in MODE. In that case you need first to create the file,
> +and then set the permisions with `set-file-modes'. */)
Why would someone assume that write-region could/should change the
mode bits of an already existing file? It's entirely unreasonable for
write-region to do so, as the mode bits are determined when the file
is created, in this case by make-temp-file.
So I'm not sure why should we make this correction to the doc string.
What am I missing?
Thanks.