Fix a few compiler warnings. Fix crash with encrypted undo file.
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
}