List Info

Thread: Bug: ":confirm w" only works once




Bug: ":confirm w" only works once
country flaguser name
Netherlands
2007-02-27 12:09:22
Hi,

When editing a read-only file, ":confirm w" only
works the first time 
you use it in a session. The second time you try to use it,
you simply 
get an error message, as if you didn't use
":confirm".
The same problem occurs when using ":set
confirm".

To recreate:

$ echo Hello > hello.txt
$ chmod 400 hello.txt
$ vim -u NONE hello.txt
:set nocompatible " or you won't be able to overwrite
at all
A, World<Esc>
:confirm w
'readonly' option is set for "qq".
Do you wish to write anyway?
(Y)es, [N]o: y
A!<Esc>
:confirm w
E505: "qq" is read-only (add ! to override)

This is using 7.0.203, but it has been happening for quite a
while. An 
old 6.3 does the same thing.

– Michael

Re: Bug: ":confirm w" only works once
user name
2007-02-28 02:19:17
On 2/27/07, Michael Schaap <vimmscha.org> wrote:
> Hi,
>
> When editing a read-only file, ":confirm w"
only works the first time
> you use it in a session. The second time you try to use
it, you simply
> get an error message, as if you didn't use
":confirm".
> The same problem occurs when using ":set
confirm".
>
> To recreate:
>
> $ echo Hello > hello.txt
> $ chmod 400 hello.txt
> $ vim -u NONE hello.txt
> :set nocompatible " or you won't be able to
overwrite at all
> A, World<Esc>
> :confirm w
> 'readonly' option is set for "qq".
> Do you wish to write anyway?
> (Y)es, [N]o: y
> A!<Esc>
> :confirm w
> E505: "qq" is read-only (add ! to override)
>
> This is using 7.0.203, but it has been happening for
quite a while. An
> old 6.3 does the same thing.

You see this behaviour because the first :confirm w(or
':w!',
for this matter) resets the 'ro' option. This is the reason
the 2nd
':confirm w' doesn't ask anything. You can see yourself if
you do
'set ro?' before and after first ':confirm w'.
    :set ro?
readonly
    :confirm w
... (Y)es, [N]o: y
    :set ro?
noreadonly

As you see, the 'ro' option has been reset. This is
the reason the following ':confirm w' does not ask for
the confirmation.

AFAIK, vim always behaved this way -- that is,
the ':w!' would reset the ro flag.

But notice that inserting text into 'ro' file does not reset
the 'ro'
flag by itself.
It warns (modifying the readonly file). but the 'ro' flag
remains. After
:w!, 'ro' flag is reset.

Yakov

Re: Bug: ":confirm w" only works once
country flaguser name
United States
2007-02-28 15:38:17
Michael Schaap wrote:

> When editing a read-only file, ":confirm w"
only works the first time 
> you use it in a session. The second time you try to use
it, you simply 
> get an error message, as if you didn't use
":confirm".
> The same problem occurs when using ":set
confirm".
> 
> To recreate:
> 
> $ echo Hello > hello.txt
> $ chmod 400 hello.txt
> $ vim -u NONE hello.txt
> :set nocompatible " or you won't be able to
overwrite at all
> A, World<Esc>
> :confirm w
> 'readonly' option is set for "qq".
> Do you wish to write anyway?
> (Y)es, [N]o: y
> A!<Esc>
> :confirm w
> E505: "qq" is read-only (add ! to override)
> 
> This is using 7.0.203, but it has been happening for
quite a while. An 
> old 6.3 does the same thing.
> 
> – Michael

What happens when 'readonly' is set is that the
":confirm" asks you if
you want to override it.  If you select "yes" then
it will behave as if
you did ":w!".  If you do the same with 'readonly'
off you don't get the
prompt, but writing fails for ":w", only
":w!" works.

Note that when 'readonly' is set then ":w" results
in E45, while a
read-only file gives E505.  They are two different things,
but both are
overruled with ":w!".  We don't have a separate
"!" for each situation.

Perhaps the E505 should also trigger ":confirm w"
to ask for writing
anyway.  That's more difficult, but would be what you
expect.

-- 
hundred-and-one symptoms of being an internet addict:
222. You send more than 20 personal e-mails a day.

 /// Bram Moolenaar -- BramMoolenaar.net -- http://www.Moolenaar.net
  \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponso
r/ \
\        download, build and distribute -- http://www.A-A-P.org       
///
 \            help me help AIDS victims -- http://ICCF-Holland.org  
 ///

[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )