# HG changeset patch # User Bram Moolenaar # Date 1280066719 -7200 # Node ID 8f6106dd3d12bdd28469c826cefdba099dadcafb # Parent 0ca06a92adfb24673ac64007f03d79dc8f6b0f1f Fix: editing a not encrypted file after a crypted file messed up reading the text from an undo file. diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.3b. Last change: 2010 Jul 24 +*syntax.txt* For Vim version 7.3b. Last change: 2010 Jul 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -429,7 +429,7 @@ shorter and valid HTML 4 file), use: > :let g:html_use_css = 1 Concealed text is removed from the HTML and replaced with the appropriate -character from |syn-cchar| or 'listchars' depending on the current value of +character from |:syn-cchar| or 'listchars' depending on the current value of 'conceallevel'. If you always want to display all text in your document, either set 'conceallevel' to before invoking 2html, or use: > :let g:html_ignore_conceal = 1 diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -2953,7 +2953,7 @@ check_for_cryptkey(cryptkey, ptr, sizep, } /* When starting to edit a new file which does not have encryption, clear * the 'key' option, except when starting up (called with -x argument) */ - else if (newfile && *curbuf->b_p_key && !starting) + else if (newfile && *curbuf->b_p_key != NUL && !starting) set_option_value((char_u *)"key", 0L, (char_u *)"", OPT_LOCAL); return cryptkey; diff --git a/src/undo.c b/src/undo.c --- a/src/undo.c +++ b/src/undo.c @@ -888,7 +888,7 @@ read_string_decrypt(buf, fd, len) ptr = read_string(fd, len); #ifdef FEAT_CRYPT - if (ptr != NULL || *buf->b_p_key != NUL) + if (ptr != NULL && *buf->b_p_key != NUL) crypt_decode(ptr, len); #endif return ptr; @@ -909,7 +909,7 @@ serialize_header(fp, buf, hash) /* If the buffer is encrypted then all text bytes following will be * encrypted. Numbers and other info is not crypted. */ #ifdef FEAT_CRYPT - if (*buf->b_p_key) + if (*buf->b_p_key != NUL) { char_u *header; int header_len; @@ -1475,7 +1475,7 @@ u_write_undo(name, forceit, buf, hash) if (serialize_header(fp, buf, hash) == FAIL) goto write_error; #ifdef FEAT_CRYPT - if (*buf->b_p_key) + if (*buf->b_p_key != NUL) do_crypt = TRUE; #endif