This sounds sane. On May 15, 2012 11:20 AM, "Ben Fritz" <[email protected]> wrote:
> On Tuesday, May 15, 2012 2:49:38 AM UTC-5, JohnBeckett wrote: > > To reproduce problem: > > > > 1. Create file bad.tmp by executing the following line. > > :call writefile(["Very important file \x8D"], 'bad.tmp') > > > > 2. Start Vim editing the file and enter commands, as below. > > vim -N -u NONE bad.tmp > > :set fenc=cp857 > > What if, right here, Vim were to check the buffer contents to see if all > characters in the file can actually be converted to the new fenc setting, > and issue a warning if not? It's not something Vim does currently...but I > don't see why it couldn't. And I'd like to know if I do something stupid > *when I do it*, not when I try to write the file and end up killing my file. > > > :set nobackup nowritebackup > > :w > > > > 3. Observe message which you have probably never seen before: > > "bad.tmp" E513: write error, conversion failed > > (make 'fenc' empty to override) > > WARNING: Original file may be lost or damaged > > don't quit the editor until the file is successfully written! > > > > 4. Panic and do what has always worked in the past: > > :q! > > > > Right, to me, :q! means "oh crap I didn't mean to do that, GET ME OUT!" > > > Result: > > - Step 2 replaces bad.tmp with an empty file. > > - The original contents have been lost. > > > > The "no backup" options cause Vim to overwrite the existing > > file. However, the write aborts when the conversion fails, > > resulting in lost data. > > > > While a user should not turn off backups on an important file, > > it is a horrible trap that one incorrect byte can effectively > > delete a file. > > > > A message like the following might help: > > > > "bad.tmp" E513: write error, conversion failed > > WARNING: The file on disk has probably been corrupted. > > Do not quit until the file is successfully written! > > Try saving it again after entering (nothing after "="): > > :set fenc= > > > > I haven't done more than glance at Christian Brabandt's patch > > so I don't know what is achievable. Would something as simple > > as checking the number of bytes in the file on disk be > > sufficient to decide if corrective action is needed? > > > > John > > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
