Fix a few compiler warnings. Fix crash with encrypted undo file.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 32848ac..b4cdc48 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1376,6 +1376,9 @@
don't write the file encrypted! You need to rebuild the Vim binary to fix
this.
+*E831* This is an internal error, "cannot happen". If you can reproduc it,
+please report to the developers.
+
When reading a file that has been encrypted and the 'key' option is not empty,
it will be used for decryption. If the value is empty, you will be prompted
to enter the key. If you don't enter a key, or you enter the wrong key, the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 18cd16b..ec4c8ab 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4183,10 +4183,14 @@
E823 undo.txt /*E823*
E824 undo.txt /*E824*
E825 undo.txt /*E825*
+E826 undo.txt /*E826*
+E827 undo.txt /*E827*
E828 undo.txt /*E828*
E829 undo.txt /*E829*
E83 message.txt /*E83*
E830 undo.txt /*E830*
+E831 editing.txt /*E831*
+E832 undo.txt /*E832*
E84 windows.txt /*E84*
E85 options.txt /*E85*
E86 windows.txt /*E86*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 12c6b68..549dcff 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -30,6 +30,8 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
+gtk_selection_clear_targets not available in GTK1 (Patrick Texier)
+
Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
E315 when trying to change a file in FileChangedRO autocommand event.
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 6e2308f..1195a05 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -285,6 +285,13 @@
the undo file cannot be used, it would corrupt the text. This also
happens when 'encoding' differs from when the undo file was written.
*E825* The undo file does not contain valid contents and cannot be used.
+*E826* The undo file is encrypted but decryption failed.
+*E827* The undo file is encrypted but this version of Vim does not support
+ encryption. Open the file with another Vim.
+*E832* The undo file is encrypted but 'key' is not set, the text file is not
+ encrypted. This would happen if the text file was written by Vim
+ encrypted at first, and later overwritten by not encrypted text.
+ You probably want to delete this undo file.
"Not reading undo file, owner differs"
The undo file is owned by someone else than the owner of the text
file. For safety the undo file is not used.
diff --git a/src/blowfish.c b/src/blowfish.c
index 1ab8eca..d47f463 100644
--- a/src/blowfish.c
+++ b/src/blowfish.c
@@ -413,6 +413,11 @@
key = sha256_key(password);
keylen = (int)STRLEN(key);
+ if (keylen == 0)
+ {
+ EMSG(_("E831: bf_key_init() called with empty password"));
+ return;
+ }
for (i = 0; i < 256; ++i)
{
sbx[0][i] = sbi[0][i];
diff --git a/src/feature.h b/src/feature.h
index 5bca7c7..7a38b85 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -127,7 +127,7 @@
#endif
/*
- * Message history is fixed at 100 message, 20 for the tiny version.
+ * Message history is fixed at 200 message, 20 for the tiny version.
*/
#ifdef FEAT_SMALL
# define MAX_MSG_HIST_LEN 200
diff --git a/src/gui_beval.c b/src/gui_beval.c
index 123b6fd..90bef8b 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -20,6 +20,7 @@
BalloonEval *beval;
int state UNUSED;
{
+#ifdef FEAT_EVAL
win_T *wp;
int col;
int use_sandbox;
@@ -29,8 +30,9 @@
long winnr = 0;
char_u *bexpr;
buf_T *save_curbuf;
-#ifdef FEAT_WINDOWS
+# ifdef FEAT_WINDOWS
win_T *cw;
+# endif
#endif
static int recursive = FALSE;
diff --git a/src/menu.c b/src/menu.c
index f01a34e..3ab957c 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -56,10 +56,10 @@
#endif
#ifdef FEAT_MULTI_LANG
static char_u *menutrans_lookup __ARGS((char_u *name, int len));
+static void menu_unescape_name __ARGS((char_u *p));
#endif
static char_u *menu_translate_tab_and_shift __ARGS((char_u *arg_start));
-static void menu_unescape_name __ARGS((char_u *p));
/* The character for each menu mode */
static char_u menu_mode_chars[] = {'n', 'v', 's', 'o', 'i', 'c', 't'};
@@ -2525,7 +2525,6 @@
return NULL;
}
-#endif /* FEAT_MULTI_LANG */
/*
* Unescape the name in the translate dictionary table.
@@ -2540,6 +2539,7 @@
if (*p == '\\')
STRMOVE(p, p + 1);
}
+#endif /* FEAT_MULTI_LANG */
/*
* Isolate the menu name.
diff --git a/src/syntax.c b/src/syntax.c
index c19c5d9..370bc76 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -235,7 +235,7 @@
/*
* Another Annoying Hack(TM): To prevent rules from other ":syn include"'d
- * files from from leaking into ALLBUT lists, we assign a unique ID to the
+ * files from leaking into ALLBUT lists, we assign a unique ID to the
* rules in each ":syn include"'d file.
*/
static int current_syn_inc_tag = 0;
@@ -4500,11 +4500,13 @@
}
else
#endif
+ {
#ifdef FEAT_CONCEAL
*conceal_char = arg[6];
#else
;
#endif
+ }
arg = skipwhite(arg + 7);
}
else
diff --git a/src/undo.c b/src/undo.c
index 232dbac..22d07d5 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1503,13 +1503,19 @@
if (version == UF_VERSION_CRYPT)
{
#ifdef FEAT_CRYPT
+ if (*curbuf->b_p_key == NUL)
+ {
+ EMSG2(_("E832: Non-encrypted file has encrypted undo file: %s"),
+ file_name);
+ goto error;
+ }
if (prepare_crypt_read(fp) == FAIL)
{
EMSG2(_("E826: Undo file decryption failed: %s"), file_name);
goto error;
}
#else
- EMSG2(_("E826: Undo file is encrypted: %s"), file_name);
+ EMSG2(_("E827: Undo file is encrypted: %s"), file_name);
goto error;
#endif
}