summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0743
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0743')
-rw-r--r--data/vim/patches/8.1.074328463
1 files changed, 28463 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0743 b/data/vim/patches/8.1.0743
new file mode 100644
index 000000000..83fda7e13
--- /dev/null
+++ b/data/vim/patches/8.1.0743
@@ -0,0 +1,28463 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.07
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0743
+Problem: Giving error messages is not flexible.
+Solution: Add semsg(). Change argument from "char_u *" to "char *", also
+ for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
+ #3302) Also make emsg() accept a "char *" argument. Get rid of
+ an enormous number of type casts.
+Files: src/blob.c, src/blowfish.c, src/buffer.c, src/channel.c,
+ src/crypt.c, src/dict.c, src/diff.c, src/digraph.c, src/edit.c,
+ src/eval.c, src/evalfunc.c, src/ex_cmds.c, src/ex_cmds.h,
+ src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
+ src/farsi.h, src/fileio.c, src/fold.c, src/getchar.c,
+ src/globals.h, src/gui.c, src/gui_at_fs.c, src/gui_at_sb.c,
+ src/gui_beval.c, src/gui_gtk_x11.c, src/gui_mac.c,
+ src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/hangulin.c,
+ src/hardcopy.c, src/hashtab.c, src/if_cscope.c, src/if_lua.c,
+ src/if_mzsch.c, src/if_perl.xs, src/if_py_both.h, src/if_python.c,
+ src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/if_xcmdsrv.c,
+ src/json.c, src/list.c, src/main.c, src/mark.c, src/mbyte.c,
+ src/memfile.c, src/memline.c, src/menu.c, src/message.c,
+ src/misc1.c, src/misc2.c, src/netbeans.c, src/normal.c, src/ops.c,
+ src/option.c, src/os_amiga.c, src/os_mswin.c, src/os_unix.c,
+ src/os_win32.c, src/popupmnu.c, src/proto.h, src/proto/buffer.pro,
+ src/proto/digraph.pro, src/proto/ex_docmd.pro,
+ src/proto/ex_eval.pro, src/proto/ex_getln.pro,
+ src/proto/hardcopy.pro, src/proto/mbyte.pro,
+ src/proto/message.pro, src/proto/misc2.pro, src/proto/option.pro,
+ src/proto/spell.pro, src/quickfix.c, src/regexp.c,
+ src/regexp_nfa.c, src/search.c, src/sign.c, src/spell.c,
+ src/spellfile.c, src/structs.h, src/syntax.c, src/tag.c,
+ src/term.c, src/terminal.c, src/textprop.c, src/ui.c, src/undo.c,
+ src/userfunc.c, src/version.c, src/vim.h, src/window.c,
+
+
+*** ../vim-8.1.0742/src/blob.c 2019-01-13 17:48:00.994125660 +0100
+--- src/blob.c 2019-01-13 19:41:46.622522001 +0100
+***************
+*** 161,167 ****
+ if (fwrite(blob->bv_ga.ga_data, 1, blob->bv_ga.ga_len, fd)
+ < (size_t)blob->bv_ga.ga_len)
+ {
+! EMSG(_(e_write));
+ return FAIL;
+ }
+ return OK;
+--- 161,167 ----
+ if (fwrite(blob->bv_ga.ga_data, 1, blob->bv_ga.ga_len, fd)
+ < (size_t)blob->bv_ga.ga_len)
+ {
+! emsg(_(e_write));
+ return FAIL;
+ }
+ return OK;
+*** ../vim-8.1.0742/src/blowfish.c 2018-09-30 21:43:17.175693433 +0200
+--- src/blowfish.c 2019-01-13 19:42:48.281805731 +0100
+***************
+*** 419,425 ****
+ keylen = (int)STRLEN(key) / 2;
+ if (keylen == 0)
+ {
+! IEMSG(_("E831: bf_key_init() called with empty password"));
+ return;
+ }
+ for (i = 0; i < keylen; i++)
+--- 419,425 ----
+ keylen = (int)STRLEN(key) / 2;
+ if (keylen == 0)
+ {
+! iemsg(_("E831: bf_key_init() called with empty password"));
+ return;
+ }
+ for (i = 0; i < keylen; i++)
+***************
+*** 522,528 ****
+ * warning. */
+ if (ui != 0xffffffffUL || ui + 1 != 0) {
+ err++;
+! EMSG(_("E820: sizeof(uint32_t) != 4"));
+ }
+
+ if (!bf_check_tables(pax_init, sbx_init, 0x6ffa520a))
+--- 522,528 ----
+ * warning. */
+ if (ui != 0xffffffffUL || ui + 1 != 0) {
+ err++;
+! emsg(_("E820: sizeof(uint32_t) != 4"));
+ }
+
+ if (!bf_check_tables(pax_init, sbx_init, 0x6ffa520a))
+***************
+*** 543,549 ****
+ if (memcmp(bk.uc, bf_test_data[i].cryptxt, 8) != 0)
+ {
+ if (err == 0 && memcmp(bk.uc, bf_test_data[i].badcryptxt, 8) == 0)
+! EMSG(_("E817: Blowfish big/little endian use wrong"));
+ err++;
+ }
+ }
+--- 543,549 ----
+ if (memcmp(bk.uc, bf_test_data[i].cryptxt, 8) != 0)
+ {
+ if (err == 0 && memcmp(bk.uc, bf_test_data[i].badcryptxt, 8) == 0)
+! emsg(_("E817: Blowfish big/little endian use wrong"));
+ err++;
+ }
+ }
+***************
+*** 669,680 ****
+ {
+ if (sha256_self_test() == FAIL)
+ {
+! EMSG(_("E818: sha256 test failed"));
+ return FAIL;
+ }
+ if (bf_self_test() == FAIL)
+ {
+! EMSG(_("E819: Blowfish test failed"));
+ return FAIL;
+ }
+ return OK;
+--- 669,680 ----
+ {
+ if (sha256_self_test() == FAIL)
+ {
+! emsg(_("E818: sha256 test failed"));
+ return FAIL;
+ }
+ if (bf_self_test() == FAIL)
+ {
+! emsg(_("E819: Blowfish test failed"));
+ return FAIL;
+ }
+ return OK;
+*** ../vim-8.1.0742/src/buffer.c 2019-01-01 13:20:05.940711222 +0100
+--- src/buffer.c 2019-01-13 22:46:39.950915356 +0100
+***************
+*** 162,171 ****
+ */
+ if (curbuf == NULL)
+ {
+! EMSG(_("E82: Cannot allocate any buffer, exiting..."));
+ getout(2);
+ }
+! EMSG(_("E83: Cannot allocate buffer, using other one..."));
+ enter_buffer(curbuf);
+ #ifdef FEAT_SYN_HL
+ if (old_tw != curbuf->b_p_tw)
+--- 162,171 ----
+ */
+ if (curbuf == NULL)
+ {
+! emsg(_("E82: Cannot allocate any buffer, exiting..."));
+ getout(2);
+ }
+! emsg(_("E83: Cannot allocate buffer, using other one..."));
+ enter_buffer(curbuf);
+ #ifdef FEAT_SYN_HL
+ if (old_tw != curbuf->b_p_tw)
+***************
+*** 396,402 ****
+ {
+ sprintf((char *)buf->b_key, "%x", buf->b_fnum);
+ if (hash_add(&buf_hashtab, buf->b_key) == FAIL)
+! EMSG(_("E931: Buffer cannot be registered"));
+ }
+
+ static void
+--- 396,402 ----
+ {
+ sprintf((char *)buf->b_key, "%x", buf->b_fnum);
+ if (hash_add(&buf_hashtab, buf->b_key) == FAIL)
+! emsg(_("E931: Buffer cannot be registered"));
+ }
+
+ static void
+***************
+*** 430,436 ****
+ }
+ }
+ if (!can_unload)
+! EMSG(_("E937: Attempt to delete a buffer that is in use"));
+ return can_unload;
+ }
+
+--- 430,436 ----
+ }
+ }
+ if (!can_unload)
+! emsg(_("E937: Attempt to delete a buffer that is in use"));
+ return can_unload;
+ }
+
+***************
+*** 548,554 ****
+ {
+ /* Autocommands deleted the buffer. */
+ aucmd_abort:
+! EMSG(_(e_auabort));
+ return;
+ }
+ --buf->b_locked;
+--- 548,554 ----
+ {
+ /* Autocommands deleted the buffer. */
+ aucmd_abort:
+! emsg(_(e_auabort));
+ return;
+ }
+ --buf->b_locked;
+***************
+*** 1115,1121 ****
+ *
+ * Returns error message or NULL
+ */
+! char_u *
+ do_bufdel(
+ int command,
+ char_u *arg, /* pointer to extra arguments */
+--- 1115,1121 ----
+ *
+ * Returns error message or NULL
+ */
+! char *
+ do_bufdel(
+ int command,
+ char_u *arg, /* pointer to extra arguments */
+***************
+*** 1126,1132 ****
+ {
+ int do_current = 0; /* delete current buffer? */
+ int deleted = 0; /* number of buffers deleted */
+! char_u *errormsg = NULL; /* return value */
+ int bnr; /* buffer number */
+ char_u *p;
+
+--- 1126,1132 ----
+ {
+ int do_current = 0; /* delete current buffer? */
+ int deleted = 0; /* number of buffers deleted */
+! char *errormsg = NULL; /* return value */
+ int bnr; /* buffer number */
+ char_u *p;
+
+***************
+*** 1139,1145 ****
+ if (addr_count == 2)
+ {
+ if (*arg) /* both range and argument is not allowed */
+! return (char_u *)_(e_trailing);
+ bnr = start_bnr;
+ }
+ else /* addr_count == 1 */
+--- 1139,1145 ----
+ if (addr_count == 2)
+ {
+ if (*arg) /* both range and argument is not allowed */
+! return _(e_trailing);
+ bnr = start_bnr;
+ }
+ else /* addr_count == 1 */
+***************
+*** 1197,1214 ****
+ STRCPY(IObuff, _("E516: No buffers were deleted"));
+ else
+ STRCPY(IObuff, _("E517: No buffers were wiped out"));
+! errormsg = IObuff;
+ }
+ else if (deleted >= p_report)
+ {
+ if (command == DOBUF_UNLOAD)
+! smsg((char_u *)NGETTEXT("%d buffer unloaded",
+ "%d buffers unloaded", deleted), deleted);
+ else if (command == DOBUF_DEL)
+! smsg((char_u *)NGETTEXT("%d buffer deleted",
+ "%d buffers deleted", deleted), deleted);
+ else
+! smsg((char_u *)NGETTEXT("%d buffer wiped out",
+ "%d buffers wiped out", deleted), deleted);
+ }
+ }
+--- 1197,1214 ----
+ STRCPY(IObuff, _("E516: No buffers were deleted"));
+ else
+ STRCPY(IObuff, _("E517: No buffers were wiped out"));
+! errormsg = (char *)IObuff;
+ }
+ else if (deleted >= p_report)
+ {
+ if (command == DOBUF_UNLOAD)
+! smsg(NGETTEXT("%d buffer unloaded",
+ "%d buffers unloaded", deleted), deleted);
+ else if (command == DOBUF_DEL)
+! smsg(NGETTEXT("%d buffer deleted",
+ "%d buffers deleted", deleted), deleted);
+ else
+! smsg(NGETTEXT("%d buffer wiped out",
+ "%d buffers wiped out", deleted), deleted);
+ }
+ }
+***************
+*** 1233,1239 ****
+
+ if (action == DOBUF_UNLOAD)
+ {
+! EMSG(_("E90: Cannot unload last buffer"));
+ return FAIL;
+ }
+
+--- 1233,1239 ----
+
+ if (action == DOBUF_UNLOAD)
+ {
+! emsg(_("E90: Cannot unload last buffer"));
+ return FAIL;
+ }
+
+***************
+*** 1307,1313 ****
+ }
+ if (!bufIsChanged(buf))
+ {
+! EMSG(_("E84: No modified buffer found"));
+ return FAIL;
+ }
+ }
+--- 1307,1313 ----
+ }
+ if (!bufIsChanged(buf))
+ {
+! emsg(_("E84: No modified buffer found"));
+ return FAIL;
+ }
+ }
+***************
+*** 1346,1352 ****
+ if (bp == buf)
+ {
+ /* back where we started, didn't find anything. */
+! EMSG(_("E85: There is no listed buffer"));
+ return FAIL;
+ }
+ }
+--- 1346,1352 ----
+ if (bp == buf)
+ {
+ /* back where we started, didn't find anything. */
+! emsg(_("E85: There is no listed buffer"));
+ return FAIL;
+ }
+ }
+***************
+*** 1358,1369 ****
+ {
+ /* don't warn when deleting */
+ if (!unload)
+! EMSGN(_(e_nobufnr), count);
+ }
+ else if (dir == FORWARD)
+! EMSG(_("E87: Cannot go beyond last buffer"));
+ else
+! EMSG(_("E88: Cannot go before first buffer"));
+ return FAIL;
+ }
+
+--- 1358,1369 ----
+ {
+ /* don't warn when deleting */
+ if (!unload)
+! semsg(_(e_nobufnr), count);
+ }
+ else if (dir == FORWARD)
+! emsg(_("E87: Cannot go beyond last buffer"));
+ else
+! emsg(_("E88: Cannot go before first buffer"));
+ return FAIL;
+ }
+
+***************
+*** 1407,1413 ****
+ else
+ #endif
+ {
+! EMSGN(_("E89: No write since last change for buffer %ld (add ! to override)"),
+ buf->b_fnum);
+ return FAIL;
+ }
+--- 1407,1413 ----
+ else
+ #endif
+ {
+! semsg(_("E89: No write since last change for buffer %ld (add ! to override)"),
+ buf->b_fnum);
+ return FAIL;
+ }
+***************
+*** 1832,1841 ****
+ {
+ #ifdef FEAT_TERMINAL
+ if (term_job_running(curbuf->b_term))
+! EMSG(_("E948: Job still running (add ! to end the job)"));
+ else
+ #endif
+! EMSG(_("E37: No write since last change (add ! to override)"));
+ }
+
+ void
+--- 1832,1841 ----
+ {
+ #ifdef FEAT_TERMINAL
+ if (term_job_running(curbuf->b_term))
+! emsg(_("E948: Job still running (add ! to end the job)"));
+ else
+ #endif
+! emsg(_("E37: No write since last change (add ! to override)"));
+ }
+
+ void
+***************
+*** 1843,1852 ****
+ {
+ #ifdef FEAT_TERMINAL
+ if (term_job_running(buf->b_term))
+! EMSG(_("E948: Job still running"));
+ else
+ #endif
+! EMSG(_("E37: No write since last change"));
+ }
+
+ /*
+--- 1843,1852 ----
+ {
+ #ifdef FEAT_TERMINAL
+ if (term_job_running(buf->b_term))
+! emsg(_("E948: Job still running"));
+ else
+ #endif
+! emsg(_("E37: No write since last change"));
+ }
+
+ /*
+***************
+*** 2057,2063 ****
+ buf->b_fnum = top_file_num++;
+ if (top_file_num < 0) /* wrap around (may cause duplicates) */
+ {
+! EMSG(_("W14: Warning: List of file names overflow"));
+ if (emsg_silent == 0)
+ {
+ out_flush();
+--- 2057,2063 ----
+ buf->b_fnum = top_file_num++;
+ if (top_file_num < 0) /* wrap around (may cause duplicates) */
+ {
+! emsg(_("W14: Warning: List of file names overflow"));
+ if (emsg_silent == 0)
+ {
+ out_flush();
+***************
+*** 2281,2289 ****
+ if (buf == NULL)
+ {
+ if ((options & GETF_ALT) && n == 0)
+! EMSG(_(e_noalt));
+ else
+! EMSGN(_("E92: Buffer %ld not found"), n);
+ return FAIL;
+ }
+
+--- 2281,2289 ----
+ if (buf == NULL)
+ {
+ if ((options & GETF_ALT) && n == 0)
+! emsg(_(e_noalt));
+ else
+! semsg(_("E92: Buffer %ld not found"), n);
+ return FAIL;
+ }
+
+***************
+*** 2568,2576 ****
+ }
+
+ if (match == -2)
+! EMSG2(_("E93: More than one match for %s"), pattern);
+ else if (match < 0)
+! EMSG2(_("E94: No matching buffer for %s"), pattern);
+ return match;
+ }
+
+--- 2568,2576 ----
+ }
+
+ if (match == -2)
+! semsg(_("E93: More than one match for %s"), pattern);
+ else if (match < 0)
+! semsg(_("E94: No matching buffer for %s"), pattern);
+ return match;
+ }
+
+***************
+*** 3172,3178 ****
+ if (obuf->b_ml.ml_mfp != NULL) /* it's loaded, fail */
+ {
+ if (message)
+! EMSG(_("E95: Buffer with this name already exists"));
+ vim_free(ffname);
+ return FAIL;
+ }
+--- 3172,3178 ----
+ if (obuf->b_ml.ml_mfp != NULL) /* it's loaded, fail */
+ {
+ if (message)
+! emsg(_("E95: Buffer with this name already exists"));
+ vim_free(ffname);
+ return FAIL;
+ }
+***************
+*** 3298,3304 ****
+ if (buflist_name_nr(0, &fname, &dummy) == FAIL)
+ {
+ if (errmsg)
+! EMSG(_(e_noalt));
+ return NULL;
+ }
+ return fname;
+--- 3298,3304 ----
+ if (buflist_name_nr(0, &fname, &dummy) == FAIL)
+ {
+ if (errmsg)
+! emsg(_(e_noalt));
+ return NULL;
+ }
+ return fname;
+***************
+*** 5730,5736 ****
+ {
+ if (bt_dontwrite(buf))
+ {
+! EMSG(_("E382: Cannot write, 'buftype' option is set"));
+ return TRUE;
+ }
+ return FALSE;
+--- 5730,5736 ----
+ {
+ if (bt_dontwrite(buf))
+ {
+! emsg(_("E382: Cannot write, 'buftype' option is set"));
+ return TRUE;
+ }
+ return FALSE;
+*** ../vim-8.1.0742/src/channel.c 2019-01-12 22:47:01.256088105 +0100
+--- src/channel.c 2019-01-13 19:45:23.292118673 +0100
+***************
+*** 116,122 ****
+ file = fopen((char *)fname, *opt == 'w' ? "w" : "a");
+ if (file == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return;
+ }
+ }
+--- 116,122 ----
+ file = fopen((char *)fname, *opt == 'w' ? "w" : "a");
+ if (file == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return;
+ }
+ }
+***************
+*** 209,216 ****
+
+ #ifdef _WIN32
+ # undef PERROR
+! # define PERROR(msg) (void)emsg3((char_u *)"%s: %s", \
+! (char_u *)msg, (char_u *)strerror_win32(errno))
+
+ static char *
+ strerror_win32(int eno)
+--- 209,215 ----
+
+ #ifdef _WIN32
+ # undef PERROR
+! # define PERROR(msg) (void)semsg("%s: %s", msg, strerror_win32(errno))
+
+ static char *
+ strerror_win32(int eno)
+***************
+*** 942,948 ****
+ if (argvars[1].v_type != VAR_UNKNOWN
+ && (argvars[1].v_type != VAR_DICT || argvars[1].vval.v_dict == NULL))
+ {
+! EMSG(_(e_invarg));
+ return NULL;
+ }
+
+--- 941,947 ----
+ if (argvars[1].v_type != VAR_UNKNOWN
+ && (argvars[1].v_type != VAR_DICT || argvars[1].vval.v_dict == NULL))
+ {
+! emsg(_(e_invarg));
+ return NULL;
+ }
+
+***************
+*** 950,956 ****
+ p = vim_strchr(address, ':');
+ if (p == NULL)
+ {
+! EMSG2(_(e_invarg2), address);
+ return NULL;
+ }
+ *p++ = NUL;
+--- 949,955 ----
+ p = vim_strchr(address, ':');
+ if (p == NULL)
+ {
+! semsg(_(e_invarg2), address);
+ return NULL;
+ }
+ *p++ = NUL;
+***************
+*** 958,964 ****
+ if (*address == NUL || port <= 0 || *rest != NUL)
+ {
+ p[-1] = ':';
+! EMSG2(_(e_invarg2), address);
+ return NULL;
+ }
+
+--- 957,963 ----
+ if (*address == NUL || port <= 0 || *rest != NUL)
+ {
+ p[-1] = ':';
+! semsg(_(e_invarg2), address);
+ return NULL;
+ }
+
+***************
+*** 971,977 ****
+ goto theend;
+ if (opt.jo_timeout < 0)
+ {
+! EMSG(_(e_invarg));
+ goto theend;
+ }
+
+--- 970,976 ----
+ goto theend;
+ if (opt.jo_timeout < 0)
+ {
+! emsg(_(e_invarg));
+ goto theend;
+ }
+
+***************
+*** 1233,1239 ****
+ {
+ buf = buflist_findnr(opt->jo_io_buf[PART_OUT]);
+ if (buf == NULL)
+! EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[PART_OUT]);
+ }
+ else
+ {
+--- 1232,1238 ----
+ {
+ buf = buflist_findnr(opt->jo_io_buf[PART_OUT]);
+ if (buf == NULL)
+! semsg(_(e_nobufnr), (long)opt->jo_io_buf[PART_OUT]);
+ }
+ else
+ {
+***************
+*** 1251,1257 ****
+
+ if (!buf->b_p_ma && !channel->ch_part[PART_OUT].ch_nomodifiable)
+ {
+! EMSG(_(e_modifiable));
+ }
+ else
+ {
+--- 1250,1256 ----
+
+ if (!buf->b_p_ma && !channel->ch_part[PART_OUT].ch_nomodifiable)
+ {
+! emsg(_(e_modifiable));
+ }
+ else
+ {
+***************
+*** 1280,1286 ****
+ {
+ buf = buflist_findnr(opt->jo_io_buf[PART_ERR]);
+ if (buf == NULL)
+! EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[PART_ERR]);
+ }
+ else
+ {
+--- 1279,1285 ----
+ {
+ buf = buflist_findnr(opt->jo_io_buf[PART_ERR]);
+ if (buf == NULL)
+! semsg(_(e_nobufnr), (long)opt->jo_io_buf[PART_ERR]);
+ }
+ else
+ {
+***************
+*** 1297,1303 ****
+ !opt->jo_modifiable[PART_ERR];
+ if (!buf->b_p_ma && !channel->ch_part[PART_ERR].ch_nomodifiable)
+ {
+! EMSG(_(e_modifiable));
+ }
+ else
+ {
+--- 1296,1302 ----
+ !opt->jo_modifiable[PART_ERR];
+ if (!buf->b_p_ma && !channel->ch_part[PART_ERR].ch_nomodifiable)
+ {
+! emsg(_(e_modifiable));
+ }
+ else
+ {
+***************
+*** 1619,1625 ****
+ int dummy;
+
+ if (safe_to_invoke_callback == 0)
+! IEMSG("INTERNAL: Invoking callback when it is not safe");
+
+ argv[0].v_type = VAR_CHANNEL;
+ argv[0].vval.v_channel = channel;
+--- 1618,1624 ----
+ int dummy;
+
+ if (safe_to_invoke_callback == 0)
+! iemsg("INTERNAL: Invoking callback when it is not safe");
+
+ argv[0].v_type = VAR_CHANNEL;
+ argv[0].vval.v_channel = channel;
+***************
+*** 2237,2243 ****
+ {
+ ch_error(channel, "received command with non-string argument");
+ if (p_verbose > 2)
+! EMSG(_("E903: received command with non-string argument"));
+ return;
+ }
+ arg = argv[1].vval.v_string;
+--- 2236,2242 ----
+ {
+ ch_error(channel, "received command with non-string argument");
+ if (p_verbose > 2)
+! emsg(_("E903: received command with non-string argument"));
+ return;
+ }
+ arg = argv[1].vval.v_string;
+***************
+*** 2289,2301 ****
+ {
+ ch_error(channel, "last argument for expr/call must be a number");
+ if (p_verbose > 2)
+! EMSG(_("E904: last argument for expr/call must be a number"));
+ }
+ else if (is_call && argv[2].v_type != VAR_LIST)
+ {
+ ch_error(channel, "third argument for call must be a list");
+ if (p_verbose > 2)
+! EMSG(_("E904: third argument for call must be a list"));
+ }
+ else
+ {
+--- 2288,2300 ----
+ {
+ ch_error(channel, "last argument for expr/call must be a number");
+ if (p_verbose > 2)
+! emsg(_("E904: last argument for expr/call must be a number"));
+ }
+ else if (is_call && argv[2].v_type != VAR_LIST)
+ {
+ ch_error(channel, "third argument for call must be a list");
+ if (p_verbose > 2)
+! emsg(_("E904: third argument for call must be a list"));
+ }
+ else
+ {
+***************
+*** 2351,2357 ****
+ else if (p_verbose > 2)
+ {
+ ch_error(channel, "Received unknown command: %s", (char *)cmd);
+! EMSG2(_("E905: received unknown command: %s"), cmd);
+ }
+ }
+
+--- 2350,2356 ----
+ else if (p_verbose > 2)
+ {
+ ch_error(channel, "Received unknown command: %s", (char *)cmd);
+! semsg(_("E905: received unknown command: %s"), cmd);
+ }
+ }
+
+***************
+*** 3769,3775 ****
+ if (!channel->ch_error && fun != NULL)
+ {
+ ch_error(channel, "%s(): write while not connected", fun);
+! EMSG2(_("E630: %s(): write while not connected"), fun);
+ }
+ channel->ch_error = TRUE;
+ return FAIL;
+--- 3768,3774 ----
+ if (!channel->ch_error && fun != NULL)
+ {
+ ch_error(channel, "%s(): write while not connected", fun);
+! semsg(_("E630: %s(): write while not connected"), fun);
+ }
+ channel->ch_error = TRUE;
+ return FAIL;
+***************
+*** 3916,3922 ****
+ if (!channel->ch_error && fun != NULL)
+ {
+ ch_error(channel, "%s(): write failed", fun);
+! EMSG2(_("E631: %s(): write failed"), fun);
+ }
+ channel->ch_error = TRUE;
+ return FAIL;
+--- 3915,3921 ----
+ if (!channel->ch_error && fun != NULL)
+ {
+ ch_error(channel, "%s(): write failed", fun);
+! semsg(_("E631: %s(): write failed"), fun);
+ }
+ channel->ch_error = TRUE;
+ return FAIL;
+***************
+*** 3964,3970 ****
+ {
+ if (eval)
+ {
+! EMSG2(_("E917: Cannot use a callback with %s()"), fun);
+ return NULL;
+ }
+ channel_set_req_callback(channel, *part_read,
+--- 3963,3969 ----
+ {
+ if (eval)
+ {
+! semsg(_("E917: Cannot use a callback with %s()"), fun);
+ return NULL;
+ }
+ channel_set_req_callback(channel, *part_read,
+***************
+*** 4005,4011 ****
+ ch_mode = channel_get_mode(channel, part_send);
+ if (ch_mode == MODE_RAW || ch_mode == MODE_NL)
+ {
+! EMSG(_("E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"));
+ return;
+ }
+
+--- 4004,4010 ----
+ ch_mode = channel_get_mode(channel, part_send);
+ if (ch_mode == MODE_RAW || ch_mode == MODE_NL)
+ {
+! emsg(_("E912: cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel"));
+ return;
+ }
+
+***************
+*** 4478,4484 ****
+ *modep = MODE_JSON;
+ else
+ {
+! EMSG2(_(e_invarg2), val);
+ return FAIL;
+ }
+ return OK;
+--- 4477,4483 ----
+ *modep = MODE_JSON;
+ else
+ {
+! semsg(_(e_invarg2), val);
+ return FAIL;
+ }
+ return OK;
+***************
+*** 4502,4508 ****
+ opt->jo_io[part] = JIO_OUT;
+ else
+ {
+! EMSG2(_(e_invarg2), val);
+ return FAIL;
+ }
+ return OK;
+--- 4501,4507 ----
+ opt->jo_io[part] = JIO_OUT;
+ else
+ {
+! semsg(_(e_invarg2), val);
+ return FAIL;
+ }
+ return OK;
+***************
+*** 4576,4582 ****
+ return OK;
+ if (tv->v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return FAIL;
+ }
+ dict = tv->vval.v_dict;
+--- 4575,4581 ----
+ return OK;
+ if (tv->v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return FAIL;
+ }
+ dict = tv->vval.v_dict;
+***************
+*** 4665,4676 ****
+ opt->jo_io_buf[part] = tv_get_number(item);
+ if (opt->jo_io_buf[part] <= 0)
+ {
+! EMSG3(_(e_invargNval), hi->hi_key, tv_get_string(item));
+ return FAIL;
+ }
+ if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
+ {
+! EMSGN(_(e_nobufnr), (long)opt->jo_io_buf[part]);
+ return FAIL;
+ }
+ }
+--- 4664,4675 ----
+ opt->jo_io_buf[part] = tv_get_number(item);
+ if (opt->jo_io_buf[part] <= 0)
+ {
+! semsg(_(e_invargNval), hi->hi_key, tv_get_string(item));
+ return FAIL;
+ }
+ if (buflist_findnr(opt->jo_io_buf[part]) == NULL)
+ {
+! semsg(_(e_nobufnr), (long)opt->jo_io_buf[part]);
+ return FAIL;
+ }
+ }
+***************
+*** 4714,4720 ****
+ *lp = tv_get_number(item);
+ if (*lp < 0)
+ {
+! EMSG3(_(e_invargNval), hi->hi_key, tv_get_string(item));
+ return FAIL;
+ }
+ }
+--- 4713,4719 ----
+ *lp = tv_get_number(item);
+ if (*lp < 0)
+ {
+! semsg(_(e_invargNval), hi->hi_key, tv_get_string(item));
+ return FAIL;
+ }
+ }
+***************
+*** 4725,4731 ****
+ opt->jo_set |= JO_CHANNEL;
+ if (item->v_type != VAR_CHANNEL)
+ {
+! EMSG2(_(e_invargval), "channel");
+ return FAIL;
+ }
+ opt->jo_channel = item->vval.v_channel;
+--- 4724,4730 ----
+ opt->jo_set |= JO_CHANNEL;
+ if (item->v_type != VAR_CHANNEL)
+ {
+! semsg(_(e_invargval), "channel");
+ return FAIL;
+ }
+ opt->jo_channel = item->vval.v_channel;
+***************
+*** 4738,4744 ****
+ opt->jo_callback = get_callback(item, &opt->jo_partial);
+ if (opt->jo_callback == NULL)
+ {
+! EMSG2(_(e_invargval), "callback");
+ return FAIL;
+ }
+ }
+--- 4737,4743 ----
+ opt->jo_callback = get_callback(item, &opt->jo_partial);
+ if (opt->jo_callback == NULL)
+ {
+! semsg(_(e_invargval), "callback");
+ return FAIL;
+ }
+ }
+***************
+*** 4750,4756 ****
+ opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
+ if (opt->jo_out_cb == NULL)
+ {
+! EMSG2(_(e_invargval), "out_cb");
+ return FAIL;
+ }
+ }
+--- 4749,4755 ----
+ opt->jo_out_cb = get_callback(item, &opt->jo_out_partial);
+ if (opt->jo_out_cb == NULL)
+ {
+! semsg(_(e_invargval), "out_cb");
+ return FAIL;
+ }
+ }
+***************
+*** 4762,4768 ****
+ opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
+ if (opt->jo_err_cb == NULL)
+ {
+! EMSG2(_(e_invargval), "err_cb");
+ return FAIL;
+ }
+ }
+--- 4761,4767 ----
+ opt->jo_err_cb = get_callback(item, &opt->jo_err_partial);
+ if (opt->jo_err_cb == NULL)
+ {
+! semsg(_(e_invargval), "err_cb");
+ return FAIL;
+ }
+ }
+***************
+*** 4774,4780 ****
+ opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
+ if (opt->jo_close_cb == NULL)
+ {
+! EMSG2(_(e_invargval), "close_cb");
+ return FAIL;
+ }
+ }
+--- 4773,4779 ----
+ opt->jo_close_cb = get_callback(item, &opt->jo_close_partial);
+ if (opt->jo_close_cb == NULL)
+ {
+! semsg(_(e_invargval), "close_cb");
+ return FAIL;
+ }
+ }
+***************
+*** 4787,4793 ****
+ never = TRUE;
+ else if (STRCMP(val, "auto") != 0)
+ {
+! EMSG3(_(e_invargNval), "drop", val);
+ return FAIL;
+ }
+ opt->jo_drop_never = never;
+--- 4786,4792 ----
+ never = TRUE;
+ else if (STRCMP(val, "auto") != 0)
+ {
+! semsg(_(e_invargNval), "drop", val);
+ return FAIL;
+ }
+ opt->jo_drop_never = never;
+***************
+*** 4800,4806 ****
+ opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
+ if (opt->jo_exit_cb == NULL)
+ {
+! EMSG2(_(e_invargval), "exit_cb");
+ return FAIL;
+ }
+ }
+--- 4799,4805 ----
+ opt->jo_exit_cb = get_callback(item, &opt->jo_exit_partial);
+ if (opt->jo_exit_cb == NULL)
+ {
+! semsg(_(e_invargval), "exit_cb");
+ return FAIL;
+ }
+ }
+***************
+*** 4813,4819 ****
+ opt->jo_term_name = tv_get_string_chk(item);
+ if (opt->jo_term_name == NULL)
+ {
+! EMSG2(_(e_invargval), "term_name");
+ return FAIL;
+ }
+ }
+--- 4812,4818 ----
+ opt->jo_term_name = tv_get_string_chk(item);
+ if (opt->jo_term_name == NULL)
+ {
+! semsg(_(e_invargval), "term_name");
+ return FAIL;
+ }
+ }
+***************
+*** 4824,4830 ****
+ val = tv_get_string(item);
+ if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
+ {
+! EMSG3(_(e_invargNval), "term_finish", val);
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_TERM_FINISH;
+--- 4823,4829 ----
+ val = tv_get_string(item);
+ if (STRCMP(val, "open") != 0 && STRCMP(val, "close") != 0)
+ {
+! semsg(_(e_invargNval), "term_finish", val);
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_TERM_FINISH;
+***************
+*** 4848,4854 ****
+ }
+ if (p == NULL)
+ {
+! EMSG2(_(e_invargval), "term_opencmd");
+ return FAIL;
+ }
+ }
+--- 4847,4853 ----
+ }
+ if (p == NULL)
+ {
+! semsg(_(e_invargval), "term_opencmd");
+ return FAIL;
+ }
+ }
+***************
+*** 4862,4868 ****
+ p = opt->jo_eof_chars = tv_get_string_chk(item);
+ if (p == NULL)
+ {
+! EMSG2(_(e_invargval), "eof_chars");
+ return FAIL;
+ }
+ }
+--- 4861,4867 ----
+ p = opt->jo_eof_chars = tv_get_string_chk(item);
+ if (p == NULL)
+ {
+! semsg(_(e_invargval), "eof_chars");
+ return FAIL;
+ }
+ }
+***************
+*** 4928,4934 ****
+ if (item == NULL || item->v_type != VAR_LIST
+ || item->vval.v_list == NULL)
+ {
+! EMSG2(_(e_invargval), "ansi_colors");
+ return FAIL;
+ }
+
+--- 4927,4933 ----
+ if (item == NULL || item->v_type != VAR_LIST
+ || item->vval.v_list == NULL)
+ {
+! semsg(_(e_invargval), "ansi_colors");
+ return FAIL;
+ }
+
+***************
+*** 4951,4957 ****
+
+ if (n != 16 || li != NULL)
+ {
+! EMSG2(_(e_invargval), "ansi_colors");
+ return FAIL;
+ }
+
+--- 4950,4956 ----
+
+ if (n != 16 || li != NULL)
+ {
+! semsg(_(e_invargval), "ansi_colors");
+ return FAIL;
+ }
+
+***************
+*** 4966,4972 ****
+ break;
+ if (item->v_type != VAR_DICT)
+ {
+! EMSG2(_(e_invargval), "env");
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_ENV;
+--- 4965,4971 ----
+ break;
+ if (item->v_type != VAR_DICT)
+ {
+! semsg(_(e_invargval), "env");
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_ENV;
+***************
+*** 4985,4991 ****
+ #endif
+ )
+ {
+! EMSG2(_(e_invargval), "cwd");
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_CWD;
+--- 4984,4990 ----
+ #endif
+ )
+ {
+! semsg(_(e_invargval), "cwd");
+ return FAIL;
+ }
+ opt->jo_set2 |= JO2_CWD;
+***************
+*** 5030,5036 ****
+ opt->jo_part = PART_OUT;
+ else
+ {
+! EMSG3(_(e_invargNval), "part", val);
+ return FAIL;
+ }
+ }
+--- 5029,5035 ----
+ opt->jo_part = PART_OUT;
+ else
+ {
+! semsg(_(e_invargNval), "part", val);
+ return FAIL;
+ }
+ }
+***************
+*** 5050,5056 ****
+ opt->jo_soe_buf);
+ if (opt->jo_stoponexit == NULL)
+ {
+! EMSG2(_(e_invargval), "stoponexit");
+ return FAIL;
+ }
+ }
+--- 5049,5055 ----
+ opt->jo_soe_buf);
+ if (opt->jo_stoponexit == NULL)
+ {
+! semsg(_(e_invargval), "stoponexit");
+ return FAIL;
+ }
+ }
+***************
+*** 5067,5073 ****
+ }
+ if (todo > 0)
+ {
+! EMSG2(_(e_invarg2), hi->hi_key);
+ return FAIL;
+ }
+
+--- 5066,5072 ----
+ }
+ if (todo > 0)
+ {
+! semsg(_(e_invarg2), hi->hi_key);
+ return FAIL;
+ }
+
+***************
+*** 5098,5104 ****
+ }
+ else
+ {
+! EMSG2(_(e_invarg2), tv_get_string(tv));
+ return NULL;
+ }
+ if (channel != NULL && reading)
+--- 5097,5103 ----
+ }
+ else
+ {
+! semsg(_(e_invarg2), tv_get_string(tv));
+ return NULL;
+ }
+ if (channel != NULL && reading)
+***************
+*** 5108,5114 ****
+ if (check_open && (channel == NULL || (!channel_is_open(channel)
+ && !(reading && has_readahead))))
+ {
+! EMSG(_("E906: not an open channel"));
+ return NULL;
+ }
+ return channel;
+--- 5107,5113 ----
+ if (check_open && (channel == NULL || (!channel_is_open(channel)
+ && !(reading && has_readahead))))
+ {
+! emsg(_("E906: not an open channel"));
+ return NULL;
+ }
+ return channel;
+***************
+*** 5662,5668 ****
+ && (!(opt.jo_set & (JO_OUT_NAME << (part - PART_OUT)))
+ || *opt.jo_io_name[part] == NUL))
+ {
+! EMSG(_("E920: _io file requires _name to be set"));
+ goto theend;
+ }
+
+--- 5661,5667 ----
+ && (!(opt.jo_set & (JO_OUT_NAME << (part - PART_OUT)))
+ || *opt.jo_io_name[part] == NUL))
+ {
+! emsg(_("E920: _io file requires _name to be set"));
+ goto theend;
+ }
+
+***************
+*** 5675,5685 ****
+ {
+ buf = buflist_findnr(opt.jo_io_buf[PART_IN]);
+ if (buf == NULL)
+! EMSGN(_(e_nobufnr), (long)opt.jo_io_buf[PART_IN]);
+ }
+ else if (!(opt.jo_set & JO_IN_NAME))
+ {
+! EMSG(_("E915: in_io buffer requires in_buf or in_name to be set"));
+ }
+ else
+ buf = buflist_find_by_name(opt.jo_io_name[PART_IN], FALSE);
+--- 5674,5684 ----
+ {
+ buf = buflist_findnr(opt.jo_io_buf[PART_IN]);
+ if (buf == NULL)
+! semsg(_(e_nobufnr), (long)opt.jo_io_buf[PART_IN]);
+ }
+ else if (!(opt.jo_set & JO_IN_NAME))
+ {
+! emsg(_("E915: in_io buffer requires in_buf or in_name to be set"));
+ }
+ else
+ buf = buflist_find_by_name(opt.jo_io_name[PART_IN], FALSE);
+***************
+*** 5697,5703 ****
+ }
+ else
+ s = opt.jo_io_name[PART_IN];
+! EMSG2(_("E918: buffer must be loaded: %s"), s);
+ goto theend;
+ }
+ job->jv_in_buf = buf;
+--- 5696,5702 ----
+ }
+ else
+ s = opt.jo_io_name[PART_IN];
+! semsg(_("E918: buffer must be loaded: %s"), s);
+ goto theend;
+ }
+ job->jv_in_buf = buf;
+***************
+*** 5726,5732 ****
+ cmd = argvars[0].vval.v_string;
+ if (cmd == NULL || *cmd == NUL)
+ {
+! EMSG(_(e_invarg));
+ goto theend;
+ }
+
+--- 5725,5731 ----
+ cmd = argvars[0].vval.v_string;
+ if (cmd == NULL || *cmd == NUL)
+ {
+! emsg(_(e_invarg));
+ goto theend;
+ }
+
+***************
+*** 5737,5743 ****
+ || argvars[0].vval.v_list == NULL
+ || argvars[0].vval.v_list->lv_len < 1)
+ {
+! EMSG(_(e_invarg));
+ goto theend;
+ }
+ else
+--- 5736,5742 ----
+ || argvars[0].vval.v_list == NULL
+ || argvars[0].vval.v_list->lv_len < 1)
+ {
+! emsg(_(e_invarg));
+ goto theend;
+ }
+ else
+***************
+*** 5898,5904 ****
+ arg = tv_get_string_chk(&argvars[1]);
+ if (arg == NULL)
+ {
+! EMSG(_(e_invarg));
+ return 0;
+ }
+ }
+--- 5897,5903 ----
+ arg = tv_get_string_chk(&argvars[1]);
+ if (arg == NULL)
+ {
+! emsg(_(e_invarg));
+ return 0;
+ }
+ }
+*** ../vim-8.1.0742/src/crypt.c 2018-02-10 18:34:22.000000000 +0100
+--- src/crypt.c 2019-01-13 19:44:56.116404066 +0100
+***************
+*** 162,168 ****
+
+ i = (int)STRLEN(crypt_magic_head);
+ if (len >= i && memcmp(ptr, crypt_magic_head, i) == 0)
+! EMSG(_("E821: File is encrypted with unknown method"));
+
+ return -1;
+ }
+--- 162,168 ----
+
+ i = (int)STRLEN(crypt_magic_head);
+ if (len >= i && memcmp(ptr, crypt_magic_head, i) == 0)
+! emsg(_("E821: File is encrypted with unknown method"));
+
+ return -1;
+ }
+*** ../vim-8.1.0742/src/dict.c 2018-12-26 22:57:37.978550895 +0100
+--- src/dict.c 2019-01-13 19:45:30.144047338 +0100
+***************
+*** 644,650 ****
+ goto failret;
+ if (**arg != ':')
+ {
+! EMSG2(_("E720: Missing colon in Dictionary: %s"), *arg);
+ clear_tv(&tvkey);
+ goto failret;
+ }
+--- 644,650 ----
+ goto failret;
+ if (**arg != ':')
+ {
+! semsg(_("E720: Missing colon in Dictionary: %s"), *arg);
+ clear_tv(&tvkey);
+ goto failret;
+ }
+***************
+*** 671,677 ****
+ item = dict_find(d, key, -1);
+ if (item != NULL)
+ {
+! EMSG2(_("E721: Duplicate key in Dictionary: \"%s\""), key);
+ clear_tv(&tvkey);
+ clear_tv(&tv);
+ goto failret;
+--- 671,677 ----
+ item = dict_find(d, key, -1);
+ if (item != NULL)
+ {
+! semsg(_("E721: Duplicate key in Dictionary: \"%s\""), key);
+ clear_tv(&tvkey);
+ clear_tv(&tv);
+ goto failret;
+***************
+*** 691,697 ****
+ break;
+ if (**arg != ',')
+ {
+! EMSG2(_("E722: Missing comma in Dictionary: %s"), *arg);
+ goto failret;
+ }
+ *arg = skipwhite(*arg + 1);
+--- 691,697 ----
+ break;
+ if (**arg != ',')
+ {
+! semsg(_("E722: Missing comma in Dictionary: %s"), *arg);
+ goto failret;
+ }
+ *arg = skipwhite(*arg + 1);
+***************
+*** 699,705 ****
+
+ if (**arg != '}')
+ {
+! EMSG2(_("E723: Missing end of Dictionary '}': %s"), *arg);
+ failret:
+ if (evaluate)
+ dict_free(d);
+--- 699,705 ----
+
+ if (**arg != '}')
+ {
+! semsg(_("E723: Missing end of Dictionary '}': %s"), *arg);
+ failret:
+ if (evaluate)
+ dict_free(d);
+***************
+*** 753,759 ****
+ }
+ else if (*action == 'e')
+ {
+! EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+ else if (*action == 'f' && HI2DI(hi2) != di1)
+--- 753,759 ----
+ }
+ else if (*action == 'e')
+ {
+! semsg(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+ else if (*action == 'f' && HI2DI(hi2) != di1)
+***************
+*** 835,841 ****
+
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ if ((d = argvars[0].vval.v_dict) == NULL)
+--- 835,841 ----
+
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ if ((d = argvars[0].vval.v_dict) == NULL)
+*** ../vim-8.1.0742/src/diff.c 2018-12-04 22:24:12.189693629 +0100
+--- src/diff.c 2019-01-13 19:45:48.871853608 +0100
+***************
+*** 173,179 ****
+ return;
+ }
+
+! EMSGN(_("E96: Cannot diff more than %ld buffers"), DB_COUNT);
+ }
+
+ /*
+--- 173,179 ----
+ return;
+ }
+
+! semsg(_("E96: Cannot diff more than %ld buffers"), DB_COUNT);
+ }
+
+ /*
+***************
+*** 724,731 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)
+! _("Not enough memory to use internal diff for buffer \"%s\""),
+ buf->b_fname);
+ verbose_leave();
+ }
+--- 724,730 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Not enough memory to use internal diff for buffer \"%s\""),
+ buf->b_fname);
+ verbose_leave();
+ }
+***************
+*** 1050,1057 ****
+ if (!ok)
+ {
+ if (io_error)
+! EMSG(_("E810: Cannot read or write temp files"));
+! EMSG(_("E97: Cannot create diffs"));
+ diff_a_works = MAYBE;
+ #if defined(MSWIN)
+ diff_bin_works = MAYBE;
+--- 1049,1056 ----
+ if (!ok)
+ {
+ if (io_error)
+! emsg(_("E810: Cannot read or write temp files"));
+! emsg(_("E97: Cannot create diffs"));
+ diff_a_works = MAYBE;
+ #if defined(MSWIN)
+ diff_bin_works = MAYBE;
+***************
+*** 1093,1099 ****
+ &diffio->dio_new.din_mmfile,
+ &param, &emit_cfg, &emit_cb) < 0)
+ {
+! EMSG(_("E960: Problem creating the internal diff"));
+ return FAIL;
+ }
+ return OK;
+--- 1092,1098 ----
+ &diffio->dio_new.din_mmfile,
+ &param, &emit_cfg, &emit_cb) < 0)
+ {
+! emsg(_("E960: Problem creating the internal diff"));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 1273,1279 ****
+ if (dirbuf[0] != NUL)
+ {
+ if (mch_chdir((char *)dirbuf) != 0)
+! EMSG(_(e_prev_dir));
+ shorten_fnames(TRUE);
+ }
+ #endif
+--- 1272,1278 ----
+ if (dirbuf[0] != NUL)
+ {
+ if (mch_chdir((char *)dirbuf) != 0)
+! emsg(_(e_prev_dir));
+ shorten_fnames(TRUE);
+ }
+ #endif
+***************
+*** 1291,1297 ****
+
+ /* Only continue if the output file was created. */
+ if (mch_stat((char *)tmp_new, &st) < 0 || st.st_size == 0)
+! EMSG(_("E816: Cannot read patch output"));
+ else
+ {
+ if (curbuf->b_fname != NULL)
+--- 1290,1296 ----
+
+ /* Only continue if the output file was created. */
+ if (mch_stat((char *)tmp_new, &st) < 0 || st.st_size == 0)
+! emsg(_("E816: Cannot read patch output"));
+ else
+ {
+ if (curbuf->b_fname != NULL)
+***************
+*** 1596,1602 ****
+ fd = mch_fopen((char *)dout->dout_fname, "r");
+ if (fd == NULL)
+ {
+! EMSG(_("E98: Cannot read diff output"));
+ return;
+ }
+ }
+--- 1595,1601 ----
+ fd = mch_fopen((char *)dout->dout_fname, "r");
+ if (fd == NULL)
+ {
+! emsg(_("E98: Cannot read diff output"));
+ return;
+ }
+ }
+***************
+*** 1662,1668 ****
+ }
+ else
+ {
+! EMSG(_("E959: Invalid diff format."));
+ break;
+ }
+
+--- 1661,1667 ----
+ }
+ else
+ {
+! emsg(_("E959: Invalid diff format."));
+ break;
+ }
+
+***************
+*** 2572,2578 ****
+ idx_cur = diff_buf_idx(curbuf);
+ if (idx_cur == DB_COUNT)
+ {
+! EMSG(_("E99: Current buffer is not in diff mode"));
+ return;
+ }
+
+--- 2571,2577 ----
+ idx_cur = diff_buf_idx(curbuf);
+ if (idx_cur == DB_COUNT)
+ {
+! emsg(_("E99: Current buffer is not in diff mode"));
+ return;
+ }
+
+***************
+*** 2591,2599 ****
+ if (idx_other == DB_COUNT)
+ {
+ if (found_not_ma)
+! EMSG(_("E793: No other buffer in diff mode is modifiable"));
+ else
+! EMSG(_("E100: No other buffer in diff mode"));
+ return;
+ }
+
+--- 2590,2598 ----
+ if (idx_other == DB_COUNT)
+ {
+ if (found_not_ma)
+! emsg(_("E793: No other buffer in diff mode is modifiable"));
+ else
+! emsg(_("E100: No other buffer in diff mode"));
+ return;
+ }
+
+***************
+*** 2603,2609 ****
+ && curtab->tp_diffbuf[i] != NULL
+ && (eap->cmdidx != CMD_diffput || curtab->tp_diffbuf[i]->b_p_ma))
+ {
+! EMSG(_("E101: More than two buffers in diff mode, don't know which one to use"));
+ return;
+ }
+ }
+--- 2602,2608 ----
+ && curtab->tp_diffbuf[i] != NULL
+ && (eap->cmdidx != CMD_diffput || curtab->tp_diffbuf[i]->b_p_ma))
+ {
+! emsg(_("E101: More than two buffers in diff mode, don't know which one to use"));
+ return;
+ }
+ }
+***************
+*** 2626,2632 ****
+ buf = buflist_findnr(i);
+ if (buf == NULL)
+ {
+! EMSG2(_("E102: Can't find buffer \"%s\""), eap->arg);
+ return;
+ }
+ if (buf == curbuf)
+--- 2625,2631 ----
+ buf = buflist_findnr(i);
+ if (buf == NULL)
+ {
+! semsg(_("E102: Can't find buffer \"%s\""), eap->arg);
+ return;
+ }
+ if (buf == curbuf)
+***************
+*** 2634,2640 ****
+ idx_other = diff_buf_idx(buf);
+ if (idx_other == DB_COUNT)
+ {
+! EMSG2(_("E103: Buffer \"%s\" is not in diff mode"), eap->arg);
+ return;
+ }
+ }
+--- 2633,2639 ----
+ idx_other = diff_buf_idx(buf);
+ if (idx_other == DB_COUNT)
+ {
+! semsg(_("E103: Buffer \"%s\" is not in diff mode"), eap->arg);
+ return;
+ }
+ }
+***************
+*** 2678,2684 ****
+ change_warning(0);
+ if (diff_buf_idx(curbuf) != idx_to)
+ {
+! EMSG(_("E787: Buffer changed unexpectedly"));
+ goto theend;
+ }
+ }
+--- 2677,2683 ----
+ change_warning(0);
+ if (diff_buf_idx(curbuf) != idx_to)
+ {
+! emsg(_("E787: Buffer changed unexpectedly"));
+ goto theend;
+ }
+ }
+*** ../vim-8.1.0742/src/digraph.c 2018-12-14 18:52:57.169528762 +0100
+--- src/digraph.c 2019-01-13 20:13:21.377826929 +0100
+***************
+*** 2218,2235 ****
+ char2 = *str++;
+ if (char2 == 0)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ if (char1 == ESC || char2 == ESC)
+ {
+! EMSG(_("E104: Escape not allowed in digraph"));
+ return;
+ }
+ str = skipwhite(str);
+ if (!VIM_ISDIGIT(*str))
+ {
+! EMSG(_(e_number_exp));
+ return;
+ }
+ n = getdigits(&str);
+--- 2218,2235 ----
+ char2 = *str++;
+ if (char2 == 0)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ if (char1 == ESC || char2 == ESC)
+ {
+! emsg(_("E104: Escape not allowed in digraph"));
+ return;
+ }
+ str = skipwhite(str);
+ if (!VIM_ISDIGIT(*str))
+ {
+! emsg(_(e_number_exp));
+ return;
+ }
+ n = getdigits(&str);
+***************
+*** 2446,2452 ****
+ * used when setting the option, not later when the value has already been
+ * checked.
+ */
+! char_u *
+ keymap_init(void)
+ {
+ curbuf->b_kmap_state &= ~KEYMAP_INIT;
+--- 2446,2452 ----
+ * used when setting the option, not later when the value has already been
+ * checked.
+ */
+! char *
+ keymap_init(void)
+ {
+ curbuf->b_kmap_state &= ~KEYMAP_INIT;
+***************
+*** 2487,2493 ****
+ if (source_runtime(buf, 0) == FAIL)
+ {
+ vim_free(buf);
+! return (char_u *)N_("E544: Keymap file not found");
+ }
+ }
+ vim_free(buf);
+--- 2487,2493 ----
+ if (source_runtime(buf, 0) == FAIL)
+ {
+ vim_free(buf);
+! return N_("E544: Keymap file not found");
+ }
+ }
+ vim_free(buf);
+***************
+*** 2513,2519 ****
+
+ if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+ {
+! EMSG(_("E105: Using :loadkeymap not in a sourced file"));
+ return;
+ }
+
+--- 2513,2519 ----
+
+ if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+ {
+! emsg(_("E105: Using :loadkeymap not in a sourced file"));
+ return;
+ }
+
+***************
+*** 2552,2558 ****
+ || *kp->from == NUL || *kp->to == NUL)
+ {
+ if (kp->to != NULL && *kp->to == NUL)
+! EMSG(_("E791: Empty keymap entry"));
+ vim_free(kp->from);
+ vim_free(kp->to);
+ }
+--- 2552,2558 ----
+ || *kp->from == NUL || *kp->to == NUL)
+ {
+ if (kp->to != NULL && *kp->to == NUL)
+! emsg(_("E791: Empty keymap entry"));
+ vim_free(kp->from);
+ vim_free(kp->to);
+ }
+*** ../vim-8.1.0742/src/edit.c 2019-01-11 22:15:00.519123428 +0100
+--- src/edit.c 2019-01-13 19:46:26.947465113 +0100
+***************
+*** 360,366 ****
+ /* Don't allow inserting in the sandbox. */
+ if (sandbox != 0)
+ {
+! EMSG(_(e_sandbox));
+ return FALSE;
+ }
+ #endif
+--- 360,366 ----
+ /* Don't allow inserting in the sandbox. */
+ if (sandbox != 0)
+ {
+! emsg(_(e_sandbox));
+ return FALSE;
+ }
+ #endif
+***************
+*** 368,374 ****
+ * caller of getcmdline() may get confused. */
+ if (textlock != 0)
+ {
+! EMSG(_(e_secure));
+ return FALSE;
+ }
+
+--- 368,374 ----
+ * caller of getcmdline() may get confused. */
+ if (textlock != 0)
+ {
+! emsg(_(e_secure));
+ return FALSE;
+ }
+
+***************
+*** 376,382 ****
+ /* Don't allow recursive insert mode when busy with completion. */
+ if (compl_started || compl_busy || pum_visible())
+ {
+! EMSG(_(e_secure));
+ return FALSE;
+ }
+ ins_compl_clear(); /* clear stuff for CTRL-X mode */
+--- 376,382 ----
+ /* Don't allow recursive insert mode when busy with completion. */
+ if (compl_started || compl_busy || pum_visible())
+ {
+! emsg(_(e_secure));
+ return FALSE;
+ }
+ ins_compl_clear(); /* clear stuff for CTRL-X mode */
+***************
+*** 476,482 ****
+ if (p_fkmap && p_ri)
+ {
+ beep_flush();
+! EMSG(farsi_text_3); /* encoded in Farsi */
+ State = INSERT;
+ }
+ else
+--- 476,482 ----
+ if (p_fkmap && p_ri)
+ {
+ beep_flush();
+! emsg(farsi_text_3); /* encoded in Farsi */
+ State = INSERT;
+ }
+ else
+***************
+*** 4262,4275 ****
+
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+! EMSG(_(e_complwin));
+ goto theend;
+ }
+ curwin->w_cursor = pos; /* restore the cursor position */
+ validate_cursor();
+ if (!EQUAL_POS(curwin->w_cursor, pos))
+ {
+! EMSG(_(e_compldel));
+ goto theend;
+ }
+
+--- 4262,4275 ----
+
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+! emsg(_(e_complwin));
+ goto theend;
+ }
+ curwin->w_cursor = pos; /* restore the cursor position */
+ validate_cursor();
+ if (!EQUAL_POS(curwin->w_cursor, pos))
+ {
+! emsg(_(e_compldel));
+ goto theend;
+ }
+
+***************
+*** 5567,5573 ****
+ ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+ if (*funcname == NUL)
+ {
+! EMSG2(_(e_notset), ctrl_x_mode == CTRL_X_FUNCTION
+ ? "completefunc" : "omnifunc");
+ /* restore did_ai, so that adding comment leader works */
+ did_ai = save_did_ai;
+--- 5567,5573 ----
+ ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+ if (*funcname == NUL)
+ {
+! semsg(_(e_notset), ctrl_x_mode == CTRL_X_FUNCTION
+ ? "completefunc" : "omnifunc");
+ /* restore did_ai, so that adding comment leader works */
+ did_ai = save_did_ai;
+***************
+*** 5587,5600 ****
+ State = save_State;
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+! EMSG(_(e_complwin));
+ return FAIL;
+ }
+ curwin->w_cursor = pos; /* restore the cursor position */
+ validate_cursor();
+ if (!EQUAL_POS(curwin->w_cursor, pos))
+ {
+! EMSG(_(e_compldel));
+ return FAIL;
+ }
+
+--- 5587,5600 ----
+ State = save_State;
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+! emsg(_(e_complwin));
+ return FAIL;
+ }
+ curwin->w_cursor = pos; /* restore the cursor position */
+ validate_cursor();
+ if (!EQUAL_POS(curwin->w_cursor, pos))
+ {
+! emsg(_(e_compldel));
+ return FAIL;
+ }
+
+***************
+*** 7678,7684 ****
+ ptr = get_last_insert();
+ if (ptr == NULL)
+ {
+! EMSG(_(e_noinstext));
+ return FAIL;
+ }
+
+--- 7678,7684 ----
+ ptr = get_last_insert();
+ if (ptr == NULL)
+ {
+! emsg(_(e_noinstext));
+ return FAIL;
+ }
+
+***************
+*** 8969,8975 ****
+ if (p_fkmap && p_ri)
+ {
+ beep_flush();
+! EMSG(farsi_text_3); /* encoded in Farsi */
+ return;
+ }
+ #endif
+--- 8969,8975 ----
+ if (p_fkmap && p_ri)
+ {
+ beep_flush();
+! emsg(farsi_text_3); /* encoded in Farsi */
+ return;
+ }
+ #endif
+*** ../vim-8.1.0742/src/eval.c 2019-01-13 17:48:00.994125660 +0100
+--- src/eval.c 2019-01-13 19:47:04.091092657 +0100
+***************
+*** 301,307 ****
+ p = &vimvars[i];
+ if (STRLEN(p->vv_name) > 16)
+ {
+! IEMSG("INTERNAL: name too long, increase size of dictitem16_T");
+ getout(1);
+ }
+ STRCPY(p->vv_di.di_key, p->vv_name);
+--- 301,307 ----
+ p = &vimvars[i];
+ if (STRLEN(p->vv_name) > 16)
+ {
+! iemsg("INTERNAL: name too long, increase size of dictitem16_T");
+ getout(1);
+ }
+ STRCPY(p->vv_di.di_key, p->vv_name);
+***************
+*** 448,454 ****
+ /* Catch a bad name early. */
+ if (!eval_isnamec1(*name))
+ {
+! EMSG(_(e_invarg));
+ return FAIL;
+ }
+
+--- 448,454 ----
+ /* Catch a bad name early. */
+ if (!eval_isnamec1(*name))
+ {
+! emsg(_(e_invarg));
+ return FAIL;
+ }
+
+***************
+*** 475,483 ****
+ clear_lval(redir_lval);
+ if (redir_endp != NULL && *redir_endp != NUL)
+ /* Trailing characters are present after the variable name */
+! EMSG(_(e_trailing));
+ else
+! EMSG(_(e_invarg));
+ redir_endp = NULL; /* don't store a value, only cleanup */
+ var_redir_stop();
+ return FAIL;
+--- 475,483 ----
+ clear_lval(redir_lval);
+ if (redir_endp != NULL && *redir_endp != NUL)
+ /* Trailing characters are present after the variable name */
+! emsg(_(e_trailing));
+ else
+! emsg(_(e_invarg));
+ redir_endp = NULL; /* don't store a value, only cleanup */
+ var_redir_stop();
+ return FAIL;
+***************
+*** 734,740 ****
+ if (*s != NUL) /* check for trailing chars after expr */
+ {
+ clear_tv(rettv);
+! EMSG2(_(e_invexpr2), s);
+ return FAIL;
+ }
+ }
+--- 734,740 ----
+ if (*s != NUL) /* check for trailing chars after expr */
+ {
+ clear_tv(rettv);
+! semsg(_(e_invexpr2), s);
+ return FAIL;
+ }
+ }
+***************
+*** 1202,1208 ****
+ * ":let" without "=": list variables
+ */
+ if (*arg == '[')
+! EMSG(_(e_invarg));
+ else if (!ends_excmd(*arg))
+ /* ":let var1 var2" */
+ arg = list_arg_vars(eap, arg, &first);
+--- 1202,1208 ----
+ * ":let" without "=": list variables
+ */
+ if (*arg == '[')
+! emsg(_(e_invarg));
+ else if (!ends_excmd(*arg))
+ /* ":let var1 var2" */
+ arg = list_arg_vars(eap, arg, &first);
+***************
+*** 1288,1306 ****
+ */
+ if (tv->v_type != VAR_LIST || (l = tv->vval.v_list) == NULL)
+ {
+! EMSG(_(e_listreq));
+ return FAIL;
+ }
+
+ i = list_len(l);
+ if (semicolon == 0 && var_count < i)
+ {
+! EMSG(_("E687: Less targets than List items"));
+ return FAIL;
+ }
+ if (var_count - semicolon > i)
+ {
+! EMSG(_("E688: More targets than List items"));
+ return FAIL;
+ }
+
+--- 1288,1306 ----
+ */
+ if (tv->v_type != VAR_LIST || (l = tv->vval.v_list) == NULL)
+ {
+! emsg(_(e_listreq));
+ return FAIL;
+ }
+
+ i = list_len(l);
+ if (semicolon == 0 && var_count < i)
+ {
+! emsg(_("E687: Less targets than List items"));
+ return FAIL;
+ }
+ if (var_count - semicolon > i)
+ {
+! emsg(_("E688: More targets than List items"));
+ return FAIL;
+ }
+
+***************
+*** 1374,1380 ****
+ s = skip_var_one(p);
+ if (s == p)
+ {
+! EMSG2(_(e_invarg2), p);
+ return NULL;
+ }
+ ++*var_count;
+--- 1374,1380 ----
+ s = skip_var_one(p);
+ if (s == p)
+ {
+! semsg(_(e_invarg2), p);
+ return NULL;
+ }
+ ++*var_count;
+***************
+*** 1386,1399 ****
+ {
+ if (*semicolon == 1)
+ {
+! EMSG(_("Double ; in list of variables"));
+ return NULL;
+ }
+ *semicolon = 1;
+ }
+ else if (*p != ',')
+ {
+! EMSG2(_(e_invarg2), p);
+ return NULL;
+ }
+ }
+--- 1386,1399 ----
+ {
+ if (*semicolon == 1)
+ {
+! emsg(_("Double ; in list of variables"));
+ return NULL;
+ }
+ *semicolon = 1;
+ }
+ else if (*p != ',')
+ {
+! semsg(_(e_invarg2), p);
+ return NULL;
+ }
+ }
+***************
+*** 1534,1540 ****
+ if (!VIM_ISWHITE(*arg) && !ends_excmd(*arg))
+ {
+ emsg_severe = TRUE;
+! EMSG(_(e_trailing));
+ break;
+ }
+ }
+--- 1534,1540 ----
+ if (!VIM_ISWHITE(*arg) && !ends_excmd(*arg))
+ {
+ emsg_severe = TRUE;
+! emsg(_(e_trailing));
+ break;
+ }
+ }
+***************
+*** 1550,1556 ****
+ if (len < 0 && !aborting())
+ {
+ emsg_severe = TRUE;
+! EMSG2(_(e_invarg2), arg);
+ break;
+ }
+ error = TRUE;
+--- 1550,1556 ----
+ if (len < 0 && !aborting())
+ {
+ emsg_severe = TRUE;
+! semsg(_(e_invarg2), arg);
+ break;
+ }
+ error = TRUE;
+***************
+*** 1581,1587 ****
+ case 's': list_script_vars(first); break;
+ case 'l': list_func_vars(first); break;
+ default:
+! EMSG2(_("E738: Can't list variables for %s"), name);
+ }
+ }
+ else
+--- 1581,1587 ----
+ case 's': list_script_vars(first); break;
+ case 'l': list_func_vars(first); break;
+ default:
+! semsg(_("E738: Can't list variables for %s"), name);
+ }
+ }
+ else
+***************
+*** 1647,1660 ****
+ name = arg;
+ len = get_env_len(&arg);
+ if (len == 0)
+! EMSG2(_(e_invarg2), name - 1);
+ else
+ {
+ if (op != NULL && (*op == '+' || *op == '-'))
+! EMSG2(_(e_letwrong), op);
+ else if (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(arg)) == NULL)
+! EMSG(_(e_letunexp));
+ else if (!check_secure())
+ {
+ c1 = name[len];
+--- 1647,1660 ----
+ name = arg;
+ len = get_env_len(&arg);
+ if (len == 0)
+! semsg(_(e_invarg2), name - 1);
+ else
+ {
+ if (op != NULL && (*op == '+' || *op == '-'))
+! semsg(_(e_letwrong), op);
+ else if (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(arg)) == NULL)
+! emsg(_(e_letunexp));
+ else if (!check_secure())
+ {
+ c1 = name[len];
+***************
+*** 1701,1707 ****
+ p = find_option_end(&arg, &opt_flags);
+ if (p == NULL || (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(p)) == NULL))
+! EMSG(_(e_letunexp));
+ else
+ {
+ long n;
+--- 1701,1707 ----
+ p = find_option_end(&arg, &opt_flags);
+ if (p == NULL || (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(p)) == NULL))
+! emsg(_(e_letunexp));
+ else
+ {
+ long n;
+***************
+*** 1722,1728 ****
+ if ((opt_type == 1 && *op == '.')
+ || (opt_type == 0 && *op != '.'))
+ {
+! EMSG2(_(e_letwrong), op);
+ s = NULL; /* don't set the value */
+ }
+ else
+--- 1722,1728 ----
+ if ((opt_type == 1 && *op == '.')
+ || (opt_type == 0 && *op != '.'))
+ {
+! semsg(_(e_letwrong), op);
+ s = NULL; /* don't set the value */
+ }
+ else
+***************
+*** 1759,1768 ****
+ {
+ ++arg;
+ if (op != NULL && (*op == '+' || *op == '-'))
+! EMSG2(_(e_letwrong), op);
+ else if (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(arg + 1)) == NULL)
+! EMSG(_(e_letunexp));
+ else
+ {
+ char_u *ptofree = NULL;
+--- 1759,1768 ----
+ {
+ ++arg;
+ if (op != NULL && (*op == '+' || *op == '-'))
+! semsg(_(e_letwrong), op);
+ else if (endchars != NULL
+ && vim_strchr(endchars, *skipwhite(arg + 1)) == NULL)
+! emsg(_(e_letunexp));
+ else
+ {
+ char_u *ptofree = NULL;
+***************
+*** 1799,1805 ****
+ if (p != NULL && lv.ll_name != NULL)
+ {
+ if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL)
+! EMSG(_(e_letunexp));
+ else
+ {
+ set_var_lval(&lv, p, tv, copy, op);
+--- 1799,1805 ----
+ if (p != NULL && lv.ll_name != NULL)
+ {
+ if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL)
+! emsg(_(e_letunexp));
+ else
+ {
+ set_var_lval(&lv, p, tv, copy, op);
+***************
+*** 1810,1816 ****
+ }
+
+ else
+! EMSG2(_(e_invarg2), arg);
+
+ return arg_end;
+ }
+--- 1810,1816 ----
+ }
+
+ else
+! semsg(_(e_invarg2), arg);
+
+ return arg_end;
+ }
+***************
+*** 1875,1881 ****
+ if (unlet && !VIM_ISWHITE(*p) && !ends_excmd(*p)
+ && *p != '[' && *p != '.')
+ {
+! EMSG(_(e_trailing));
+ return NULL;
+ }
+
+--- 1875,1881 ----
+ if (unlet && !VIM_ISWHITE(*p) && !ends_excmd(*p)
+ && *p != '[' && *p != '.')
+ {
+! emsg(_(e_trailing));
+ return NULL;
+ }
+
+***************
+*** 1888,1894 ****
+ if (!aborting() && !quiet)
+ {
+ emsg_severe = TRUE;
+! EMSG2(_(e_invarg2), name);
+ return NULL;
+ }
+ }
+--- 1888,1894 ----
+ if (!aborting() && !quiet)
+ {
+ emsg_severe = TRUE;
+! semsg(_(e_invarg2), name);
+ return NULL;
+ }
+ }
+***************
+*** 1908,1914 ****
+ v = find_var(lp->ll_name, (flags & GLV_READ_ONLY) ? NULL : &ht,
+ flags & GLV_NO_AUTOLOAD);
+ if (v == NULL && !quiet)
+! EMSG2(_(e_undefvar), lp->ll_name);
+ *p = cc;
+ if (v == NULL)
+ return NULL;
+--- 1908,1914 ----
+ v = find_var(lp->ll_name, (flags & GLV_READ_ONLY) ? NULL : &ht,
+ flags & GLV_NO_AUTOLOAD);
+ if (v == NULL && !quiet)
+! semsg(_(e_undefvar), lp->ll_name);
+ *p = cc;
+ if (v == NULL)
+ return NULL;
+***************
+*** 1928,1940 ****
+ && lp->ll_tv->vval.v_blob != NULL))
+ {
+ if (!quiet)
+! EMSG(_("E689: Can only index a List, Dictionary or Blob"));
+ return NULL;
+ }
+ if (lp->ll_range)
+ {
+ if (!quiet)
+! EMSG(_("E708: [:] must come last"));
+ return NULL;
+ }
+
+--- 1928,1940 ----
+ && lp->ll_tv->vval.v_blob != NULL))
+ {
+ if (!quiet)
+! emsg(_("E689: Can only index a List, Dictionary or Blob"));
+ return NULL;
+ }
+ if (lp->ll_range)
+ {
+ if (!quiet)
+! emsg(_("E708: [:] must come last"));
+ return NULL;
+ }
+
+***************
+*** 1947,1953 ****
+ if (len == 0)
+ {
+ if (!quiet)
+! EMSG(_(e_emptykey));
+ return NULL;
+ }
+ p = key + len;
+--- 1947,1953 ----
+ if (len == 0)
+ {
+ if (!quiet)
+! emsg(_(e_emptykey));
+ return NULL;
+ }
+ p = key + len;
+***************
+*** 1977,1983 ****
+ if (lp->ll_tv->v_type == VAR_DICT)
+ {
+ if (!quiet)
+! EMSG(_(e_dictrange));
+ clear_tv(&var1);
+ return NULL;
+ }
+--- 1977,1983 ----
+ if (lp->ll_tv->v_type == VAR_DICT)
+ {
+ if (!quiet)
+! emsg(_(e_dictrange));
+ clear_tv(&var1);
+ return NULL;
+ }
+***************
+*** 1988,1994 ****
+ && rettv->vval.v_blob != NULL))
+ {
+ if (!quiet)
+! EMSG(_("E709: [:] requires a List or Blob value"));
+ clear_tv(&var1);
+ return NULL;
+ }
+--- 1988,1994 ----
+ && rettv->vval.v_blob != NULL))
+ {
+ if (!quiet)
+! emsg(_("E709: [:] requires a List or Blob value"));
+ clear_tv(&var1);
+ return NULL;
+ }
+***************
+*** 2019,2025 ****
+ if (*p != ']')
+ {
+ if (!quiet)
+! EMSG(_(e_missbrac));
+ clear_tv(&var1);
+ clear_tv(&var2);
+ return NULL;
+--- 2019,2025 ----
+ if (*p != ']')
+ {
+ if (!quiet)
+! emsg(_(e_missbrac));
+ clear_tv(&var1);
+ clear_tv(&var2);
+ return NULL;
+***************
+*** 2075,2081 ****
+ /* Can't add "v:" variable. */
+ if (lp->ll_dict == &vimvardict)
+ {
+! EMSG2(_(e_illvar), name);
+ return NULL;
+ }
+
+--- 2075,2081 ----
+ /* Can't add "v:" variable. */
+ if (lp->ll_dict == &vimvardict)
+ {
+! semsg(_(e_illvar), name);
+ return NULL;
+ }
+
+***************
+*** 2083,2089 ****
+ if (*p == '[' || *p == '.' || unlet)
+ {
+ if (!quiet)
+! EMSG2(_(e_dictkey), key);
+ clear_tv(&var1);
+ return NULL;
+ }
+--- 2083,2089 ----
+ if (*p == '[' || *p == '.' || unlet)
+ {
+ if (!quiet)
+! semsg(_(e_dictkey), key);
+ clear_tv(&var1);
+ return NULL;
+ }
+***************
+*** 2126,2132 ****
+ || (lp->ll_range && lp->ll_n1 == bloblen))
+ {
+ if (!quiet)
+! EMSGN(_(e_blobidx), lp->ll_n1);
+ clear_tv(&var2);
+ return NULL;
+ }
+--- 2126,2132 ----
+ || (lp->ll_range && lp->ll_n1 == bloblen))
+ {
+ if (!quiet)
+! semsg(_(e_blobidx), lp->ll_n1);
+ clear_tv(&var2);
+ return NULL;
+ }
+***************
+*** 2139,2145 ****
+ || lp->ll_n2 < lp->ll_n1)
+ {
+ if (!quiet)
+! EMSGN(_(e_blobidx), lp->ll_n2);
+ return NULL;
+ }
+ }
+--- 2139,2145 ----
+ || lp->ll_n2 < lp->ll_n1)
+ {
+ if (!quiet)
+! semsg(_(e_blobidx), lp->ll_n2);
+ return NULL;
+ }
+ }
+***************
+*** 2173,2179 ****
+ {
+ clear_tv(&var2);
+ if (!quiet)
+! EMSGN(_(e_listidx), lp->ll_n1);
+ return NULL;
+ }
+
+--- 2173,2179 ----
+ {
+ clear_tv(&var2);
+ if (!quiet)
+! semsg(_(e_listidx), lp->ll_n1);
+ return NULL;
+ }
+
+***************
+*** 2194,2200 ****
+ if (ni == NULL)
+ {
+ if (!quiet)
+! EMSGN(_(e_listidx), lp->ll_n2);
+ return NULL;
+ }
+ lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
+--- 2194,2200 ----
+ if (ni == NULL)
+ {
+ if (!quiet)
+! semsg(_(e_listidx), lp->ll_n2);
+ return NULL;
+ }
+ lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
+***************
+*** 2206,2212 ****
+ if (lp->ll_n2 < lp->ll_n1)
+ {
+ if (!quiet)
+! EMSGN(_(e_listidx), lp->ll_n2);
+ return NULL;
+ }
+ }
+--- 2206,2212 ----
+ if (lp->ll_n2 < lp->ll_n1)
+ {
+ if (!quiet)
+! semsg(_(e_listidx), lp->ll_n2);
+ return NULL;
+ }
+ }
+***************
+*** 2256,2262 ****
+
+ if (op != NULL && *op != '=')
+ {
+! EMSG2(_(e_letwrong), op);
+ return;
+ }
+
+--- 2256,2262 ----
+
+ if (op != NULL && *op != '=')
+ {
+! semsg(_(e_letwrong), op);
+ return;
+ }
+
+***************
+*** 2269,2275 ****
+
+ if (lp->ll_n2 - lp->ll_n1 + 1 != blob_len(rettv->vval.v_blob))
+ {
+! EMSG(_("E972: Blob value does not have the right number of bytes"));
+ return;
+ }
+ if (lp->ll_empty2)
+--- 2269,2275 ----
+
+ if (lp->ll_n2 - lp->ll_n1 + 1 != blob_len(rettv->vval.v_blob))
+ {
+! emsg(_("E972: Blob value does not have the right number of bytes"));
+ return;
+ }
+ if (lp->ll_empty2)
+***************
+*** 2374,2384 ****
+ ++lp->ll_n1;
+ }
+ if (ri != NULL)
+! EMSG(_("E710: List value has more items than target"));
+ else if (lp->ll_empty2
+ ? (lp->ll_li != NULL && lp->ll_li->li_next != NULL)
+ : lp->ll_n1 != lp->ll_n2)
+! EMSG(_("E711: List value has not enough items"));
+ }
+ else
+ {
+--- 2374,2384 ----
+ ++lp->ll_n1;
+ }
+ if (ri != NULL)
+! emsg(_("E710: List value has more items than target"));
+ else if (lp->ll_empty2
+ ? (lp->ll_li != NULL && lp->ll_li->li_next != NULL)
+ : lp->ll_n1 != lp->ll_n2)
+! emsg(_("E711: List value has not enough items"));
+ }
+ else
+ {
+***************
+*** 2389,2395 ****
+ {
+ if (op != NULL && *op != '=')
+ {
+! EMSG2(_(e_letwrong), op);
+ return;
+ }
+
+--- 2389,2395 ----
+ {
+ if (op != NULL && *op != '=')
+ {
+! semsg(_(e_letwrong), op);
+ return;
+ }
+
+***************
+*** 2544,2550 ****
+ }
+ }
+
+! EMSG2(_(e_letwrong), op);
+ return FAIL;
+ }
+
+--- 2544,2550 ----
+ }
+ }
+
+! semsg(_(e_letwrong), op);
+ return FAIL;
+ }
+
+***************
+*** 2580,2586 ****
+ expr = skipwhite(expr);
+ if (expr[0] != 'i' || expr[1] != 'n' || !VIM_ISWHITE(expr[2]))
+ {
+! EMSG(_("E690: Missing \"in\" after :for"));
+ return fi;
+ }
+
+--- 2580,2586 ----
+ expr = skipwhite(expr);
+ if (expr[0] != 'i' || expr[1] != 'n' || !VIM_ISWHITE(expr[2]))
+ {
+! emsg(_("E690: Missing \"in\" after :for"));
+ return fi;
+ }
+
+***************
+*** 2623,2629 ****
+ }
+ else
+ {
+! EMSG(_(e_listreq));
+ clear_tv(&tv);
+ }
+ }
+--- 2623,2629 ----
+ }
+ else
+ {
+! emsg(_(e_listreq));
+ clear_tv(&tv);
+ }
+ }
+***************
+*** 2860,2866 ****
+
+ if (get_env_len(&arg) == 0)
+ {
+! EMSG2(_(e_invarg2), name - 1);
+ return;
+ }
+ vim_unsetenv(name);
+--- 2860,2866 ----
+
+ if (get_env_len(&arg) == 0)
+ {
+! semsg(_(e_invarg2), name - 1);
+ return;
+ }
+ vim_unsetenv(name);
+***************
+*** 2879,2885 ****
+ if (name_end != NULL)
+ {
+ emsg_severe = TRUE;
+! EMSG(_(e_trailing));
+ }
+ if (!(eap->skip || error))
+ clear_lval(&lv);
+--- 2879,2885 ----
+ if (name_end != NULL)
+ {
+ emsg_severe = TRUE;
+! emsg(_(e_trailing));
+ }
+ if (!(eap->skip || error))
+ clear_lval(&lv);
+***************
+*** 3022,3028 ****
+ }
+ if (forceit)
+ return OK;
+! EMSG2(_("E108: No such variable: \"%s\""), name);
+ return FAIL;
+ }
+
+--- 3022,3028 ----
+ }
+ if (forceit)
+ return OK;
+! semsg(_("E108: No such variable: \"%s\""), name);
+ return FAIL;
+ }
+
+***************
+*** 3059,3065 ****
+ && di->di_tv.v_type != VAR_LIST)
+ /* For historic reasons this error is not given for a list or dict.
+ * E.g., the b: dict could be locked/unlocked. */
+! EMSG2(_("E940: Cannot lock or unlock variable %s"), lp->ll_name);
+ else
+ {
+ if (lock)
+--- 3059,3065 ----
+ && di->di_tv.v_type != VAR_LIST)
+ /* For historic reasons this error is not given for a list or dict.
+ * E.g., the b: dict could be locked/unlocked. */
+! semsg(_("E940: Cannot lock or unlock variable %s"), lp->ll_name);
+ else
+ {
+ if (lock)
+***************
+*** 3108,3114 ****
+
+ if (recurse >= DICT_MAXNEST)
+ {
+! EMSG(_("E743: variable nested too deep for (un)lock"));
+ return;
+ }
+ if (deep == 0)
+--- 3108,3114 ----
+
+ if (recurse >= DICT_MAXNEST)
+ {
+! emsg(_("E743: variable nested too deep for (un)lock"));
+ return;
+ }
+ if (deep == 0)
+***************
+*** 3393,3399 ****
+ */
+ if (!aborting() && did_emsg == did_emsg_before
+ && called_emsg == called_emsg_before)
+! EMSG2(_(e_invexpr2), arg);
+ ret = FAIL;
+ }
+ if (nextcmd != NULL)
+--- 3393,3399 ----
+ */
+ if (!aborting() && did_emsg == did_emsg_before
+ && called_emsg == called_emsg_before)
+! semsg(_(e_invexpr2), arg);
+ ret = FAIL;
+ }
+ if (nextcmd != NULL)
+***************
+*** 3451,3457 ****
+ */
+ if ((*arg)[0] != ':')
+ {
+! EMSG(_("E109: Missing ':' after '?'"));
+ if (evaluate && result)
+ clear_tv(rettv);
+ return FAIL;
+--- 3451,3457 ----
+ */
+ if ((*arg)[0] != ':')
+ {
+! emsg(_("E109: Missing ':' after '?'"));
+ if (evaluate && result)
+ clear_tv(rettv);
+ return FAIL;
+***************
+*** 4058,4064 ****
+ }
+ else
+ {
+! EMSG(_("E804: Cannot use '%' with Float"));
+ return FAIL;
+ }
+ rettv->v_type = VAR_FLOAT;
+--- 4058,4064 ----
+ }
+ else
+ {
+! emsg(_("E804: Cannot use '%' with Float"));
+ return FAIL;
+ }
+ rettv->v_type = VAR_FLOAT;
+***************
+*** 4223,4229 ****
+ {
+ if (blob != NULL)
+ {
+! EMSG(_("E973: Blob literal should have an even number of hex characters"));
+ ga_clear(&blob->bv_ga);
+ VIM_CLEAR(blob);
+ }
+--- 4223,4229 ----
+ {
+ if (blob != NULL)
+ {
+! emsg(_("E973: Blob literal should have an even number of hex characters"));
+ ga_clear(&blob->bv_ga);
+ VIM_CLEAR(blob);
+ }
+***************
+*** 4314,4320 ****
+ ++*arg;
+ else if (ret == OK)
+ {
+! EMSG(_("E110: Missing ')'"));
+ clear_tv(rettv);
+ ret = FAIL;
+ }
+--- 4314,4320 ----
+ ++*arg;
+ else if (ret == OK)
+ {
+! emsg(_("E110: Missing ')'"));
+ clear_tv(rettv);
+ ret = FAIL;
+ }
+***************
+*** 4488,4506 ****
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+ if (verbose)
+! EMSG(_("E695: Cannot index a Funcref"));
+ return FAIL;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+ if (verbose)
+! EMSG(_(e_float_as_string));
+ return FAIL;
+ #endif
+ case VAR_SPECIAL:
+ case VAR_JOB:
+ case VAR_CHANNEL:
+ if (verbose)
+! EMSG(_("E909: Cannot index a special variable"));
+ return FAIL;
+ case VAR_UNKNOWN:
+ if (evaluate)
+--- 4488,4506 ----
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+ if (verbose)
+! emsg(_("E695: Cannot index a Funcref"));
+ return FAIL;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+ if (verbose)
+! emsg(_(e_float_as_string));
+ return FAIL;
+ #endif
+ case VAR_SPECIAL:
+ case VAR_JOB:
+ case VAR_CHANNEL:
+ if (verbose)
+! emsg(_("E909: Cannot index a special variable"));
+ return FAIL;
+ case VAR_UNKNOWN:
+ if (evaluate)
+***************
+*** 4577,4583 ****
+ if (**arg != ']')
+ {
+ if (verbose)
+! EMSG(_(e_missbrac));
+ clear_tv(&var1);
+ if (range)
+ clear_tv(&var2);
+--- 4577,4583 ----
+ if (**arg != ']')
+ {
+ if (verbose)
+! emsg(_(e_missbrac));
+ clear_tv(&var1);
+ if (range)
+ clear_tv(&var2);
+***************
+*** 4711,4717 ****
+ rettv->vval.v_number = v;
+ }
+ else
+! EMSGN(_(e_blobidx), n1);
+ }
+ break;
+
+--- 4711,4717 ----
+ rettv->vval.v_number = v;
+ }
+ else
+! semsg(_(e_blobidx), n1);
+ }
+ break;
+
+***************
+*** 4726,4732 ****
+ if (!range)
+ {
+ if (verbose)
+! EMSGN(_(e_listidx), n1);
+ return FAIL;
+ }
+ n1 = len;
+--- 4726,4732 ----
+ if (!range)
+ {
+ if (verbose)
+! semsg(_(e_listidx), n1);
+ return FAIL;
+ }
+ n1 = len;
+***************
+*** 4770,4776 ****
+ if (range)
+ {
+ if (verbose)
+! EMSG(_(e_dictrange));
+ if (len == -1)
+ clear_tv(&var1);
+ return FAIL;
+--- 4770,4776 ----
+ if (range)
+ {
+ if (verbose)
+! emsg(_(e_dictrange));
+ if (len == -1)
+ clear_tv(&var1);
+ return FAIL;
+***************
+*** 4791,4797 ****
+ item = dict_find(rettv->vval.v_dict, key, (int)len);
+
+ if (item == NULL && verbose)
+! EMSG2(_(e_dictkey), key);
+ if (len == -1)
+ clear_tv(&var1);
+ if (item == NULL)
+--- 4791,4797 ----
+ item = dict_find(rettv->vval.v_dict, key, (int)len);
+
+ if (item == NULL && verbose)
+! semsg(_(e_dictkey), key);
+ if (len == -1)
+ clear_tv(&var1);
+ if (item == NULL)
+***************
+*** 4836,4842 ****
+ if (option_end == NULL)
+ {
+ if (rettv != NULL)
+! EMSG2(_("E112: Option name missing: %s"), *arg);
+ return FAIL;
+ }
+
+--- 4836,4842 ----
+ if (option_end == NULL)
+ {
+ if (rettv != NULL)
+! semsg(_("E112: Option name missing: %s"), *arg);
+ return FAIL;
+ }
+
+***************
+*** 4854,4860 ****
+ if (opt_type == -3) /* invalid name */
+ {
+ if (rettv != NULL)
+! EMSG2(_("E113: Unknown option: %s"), *arg);
+ ret = FAIL;
+ }
+ else if (rettv != NULL)
+--- 4854,4860 ----
+ if (opt_type == -3) /* invalid name */
+ {
+ if (rettv != NULL)
+! semsg(_("E113: Unknown option: %s"), *arg);
+ ret = FAIL;
+ }
+ else if (rettv != NULL)
+***************
+*** 4917,4923 ****
+
+ if (*p != '"')
+ {
+! EMSG2(_("E114: Missing quote: %s"), *arg);
+ return FAIL;
+ }
+
+--- 4917,4923 ----
+
+ if (*p != '"')
+ {
+! semsg(_("E114: Missing quote: %s"), *arg);
+ return FAIL;
+ }
+
+***************
+*** 5054,5060 ****
+
+ if (*p != '\'')
+ {
+! EMSG2(_("E115: Missing quote: %s"), *arg);
+ return FAIL;
+ }
+
+--- 5054,5060 ----
+
+ if (*p != '\'')
+ {
+! semsg(_("E115: Missing quote: %s"), *arg);
+ return FAIL;
+ }
+
+***************
+*** 5798,5804 ****
+ * flooding the user with errors. And stop iterating over lists
+ * and dicts. */
+ did_echo_string_emsg = TRUE;
+! EMSG(_("E724: variable nested too deep for displaying"));
+ }
+ *tofree = NULL;
+ return (char_u *)"{E724}";
+--- 5798,5804 ----
+ * flooding the user with errors. And stop iterating over lists
+ * and dicts. */
+ did_echo_string_emsg = TRUE;
+! emsg(_("E724: variable nested too deep for displaying"));
+ }
+ *tofree = NULL;
+ return (char_u *)"{E724}";
+***************
+*** 6439,6445 ****
+ // Only give an error when there is something, otherwise it will be
+ // reported at a higher level.
+ if (len == 0 && verbose && **arg != NUL)
+! EMSG2(_(e_invexpr2), *arg);
+
+ return len;
+ }
+--- 6439,6445 ----
+ // Only give an error when there is something, otherwise it will be
+ // reported at a higher level.
+ if (len == 0 && verbose && **arg != NUL)
+! semsg(_(e_invexpr2), *arg);
+
+ return len;
+ }
+***************
+*** 6937,6943 ****
+ if (tv == NULL)
+ {
+ if (rettv != NULL && verbose)
+! EMSG2(_(e_undefvar), name);
+ ret = FAIL;
+ }
+ else if (rettv != NULL)
+--- 6937,6943 ----
+ if (tv == NULL)
+ {
+ if (rettv != NULL && verbose)
+! semsg(_(e_undefvar), name);
+ ret = FAIL;
+ }
+ else if (rettv != NULL)
+***************
+*** 7251,7262 ****
+ return varp->vval.v_number;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+! EMSG(_("E805: Using a Float as a Number"));
+ break;
+ #endif
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! EMSG(_("E703: Using a Funcref as a Number"));
+ break;
+ case VAR_STRING:
+ if (varp->vval.v_string != NULL)
+--- 7251,7262 ----
+ return varp->vval.v_number;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+! emsg(_("E805: Using a Float as a Number"));
+ break;
+ #endif
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! emsg(_("E703: Using a Funcref as a Number"));
+ break;
+ case VAR_STRING:
+ if (varp->vval.v_string != NULL)
+***************
+*** 7264,7289 ****
+ STR2NR_ALL, &n, NULL, 0);
+ return n;
+ case VAR_LIST:
+! EMSG(_("E745: Using a List as a Number"));
+ break;
+ case VAR_DICT:
+! EMSG(_("E728: Using a Dictionary as a Number"));
+ break;
+ case VAR_SPECIAL:
+ return varp->vval.v_number == VVAL_TRUE ? 1 : 0;
+ break;
+ case VAR_JOB:
+ #ifdef FEAT_JOB_CHANNEL
+! EMSG(_("E910: Using a Job as a Number"));
+ break;
+ #endif
+ case VAR_CHANNEL:
+ #ifdef FEAT_JOB_CHANNEL
+! EMSG(_("E913: Using a Channel as a Number"));
+ break;
+ #endif
+ case VAR_BLOB:
+! EMSG(_("E974: Using a Blob as a Number"));
+ break;
+ case VAR_UNKNOWN:
+ internal_error("tv_get_number(UNKNOWN)");
+--- 7264,7289 ----
+ STR2NR_ALL, &n, NULL, 0);
+ return n;
+ case VAR_LIST:
+! emsg(_("E745: Using a List as a Number"));
+ break;
+ case VAR_DICT:
+! emsg(_("E728: Using a Dictionary as a Number"));
+ break;
+ case VAR_SPECIAL:
+ return varp->vval.v_number == VVAL_TRUE ? 1 : 0;
+ break;
+ case VAR_JOB:
+ #ifdef FEAT_JOB_CHANNEL
+! emsg(_("E910: Using a Job as a Number"));
+ break;
+ #endif
+ case VAR_CHANNEL:
+ #ifdef FEAT_JOB_CHANNEL
+! emsg(_("E913: Using a Channel as a Number"));
+ break;
+ #endif
+ case VAR_BLOB:
+! emsg(_("E974: Using a Blob as a Number"));
+ break;
+ case VAR_UNKNOWN:
+ internal_error("tv_get_number(UNKNOWN)");
+***************
+*** 7308,7339 ****
+ return varp->vval.v_float;
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! EMSG(_("E891: Using a Funcref as a Float"));
+ break;
+ case VAR_STRING:
+! EMSG(_("E892: Using a String as a Float"));
+ break;
+ case VAR_LIST:
+! EMSG(_("E893: Using a List as a Float"));
+ break;
+ case VAR_DICT:
+! EMSG(_("E894: Using a Dictionary as a Float"));
+ break;
+ case VAR_SPECIAL:
+! EMSG(_("E907: Using a special value as a Float"));
+ break;
+ case VAR_JOB:
+ # ifdef FEAT_JOB_CHANNEL
+! EMSG(_("E911: Using a Job as a Float"));
+ break;
+ # endif
+ case VAR_CHANNEL:
+ # ifdef FEAT_JOB_CHANNEL
+! EMSG(_("E914: Using a Channel as a Float"));
+ break;
+ # endif
+ case VAR_BLOB:
+! EMSG(_("E975: Using a Blob as a Float"));
+ break;
+ case VAR_UNKNOWN:
+ internal_error("tv_get_float(UNKNOWN)");
+--- 7308,7339 ----
+ return varp->vval.v_float;
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! emsg(_("E891: Using a Funcref as a Float"));
+ break;
+ case VAR_STRING:
+! emsg(_("E892: Using a String as a Float"));
+ break;
+ case VAR_LIST:
+! emsg(_("E893: Using a List as a Float"));
+ break;
+ case VAR_DICT:
+! emsg(_("E894: Using a Dictionary as a Float"));
+ break;
+ case VAR_SPECIAL:
+! emsg(_("E907: Using a special value as a Float"));
+ break;
+ case VAR_JOB:
+ # ifdef FEAT_JOB_CHANNEL
+! emsg(_("E911: Using a Job as a Float"));
+ break;
+ # endif
+ case VAR_CHANNEL:
+ # ifdef FEAT_JOB_CHANNEL
+! emsg(_("E914: Using a Channel as a Float"));
+ break;
+ # endif
+ case VAR_BLOB:
+! emsg(_("E975: Using a Blob as a Float"));
+ break;
+ case VAR_UNKNOWN:
+ internal_error("tv_get_float(UNKNOWN)");
+***************
+*** 7391,7407 ****
+ return buf;
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! EMSG(_("E729: using Funcref as a String"));
+ break;
+ case VAR_LIST:
+! EMSG(_("E730: using List as a String"));
+ break;
+ case VAR_DICT:
+! EMSG(_("E731: using Dictionary as a String"));
+ break;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+! EMSG(_(e_float_as_string));
+ break;
+ #endif
+ case VAR_STRING:
+--- 7391,7407 ----
+ return buf;
+ case VAR_FUNC:
+ case VAR_PARTIAL:
+! emsg(_("E729: using Funcref as a String"));
+ break;
+ case VAR_LIST:
+! emsg(_("E730: using List as a String"));
+ break;
+ case VAR_DICT:
+! emsg(_("E731: using Dictionary as a String"));
+ break;
+ case VAR_FLOAT:
+ #ifdef FEAT_FLOAT
+! emsg(_(e_float_as_string));
+ break;
+ #endif
+ case VAR_STRING:
+***************
+*** 7412,7418 ****
+ STRCPY(buf, get_var_special_name(varp->vval.v_number));
+ return buf;
+ case VAR_BLOB:
+! EMSG(_("E976: using Blob as a String"));
+ break;
+ case VAR_JOB:
+ #ifdef FEAT_JOB_CHANNEL
+--- 7412,7418 ----
+ STRCPY(buf, get_var_special_name(varp->vval.v_number));
+ return buf;
+ case VAR_BLOB:
+! emsg(_("E976: using Blob as a String"));
+ break;
+ case VAR_JOB:
+ #ifdef FEAT_JOB_CHANNEL
+***************
+*** 7457,7463 ****
+ #endif
+ break;
+ case VAR_UNKNOWN:
+! EMSG(_("E908: using an invalid value as a String"));
+ break;
+ }
+ return NULL;
+--- 7457,7463 ----
+ #endif
+ break;
+ case VAR_UNKNOWN:
+! emsg(_("E908: using an invalid value as a String"));
+ break;
+ }
+ return NULL;
+***************
+*** 7839,7845 ****
+ ht = find_var_ht(name, &varname);
+ if (ht == NULL || *varname == NUL)
+ {
+! EMSG2(_(e_illvar), name);
+ return;
+ }
+ v = find_var_in_ht(ht, 0, varname, TRUE);
+--- 7839,7845 ----
+ ht = find_var_ht(name, &varname);
+ if (ht == NULL || *varname == NUL)
+ {
+! semsg(_(e_illvar), name);
+ return;
+ }
+ v = find_var_in_ht(ht, 0, varname, TRUE);
+***************
+*** 7894,7900 ****
+ }
+ else if (v->di_tv.v_type != tv->v_type)
+ {
+! EMSG2(_("E963: setting %s to value with wrong type"), name);
+ return;
+ }
+ }
+--- 7894,7900 ----
+ }
+ else if (v->di_tv.v_type != tv->v_type)
+ {
+! semsg(_("E963: setting %s to value with wrong type"), name);
+ return;
+ }
+ }
+***************
+*** 7906,7912 ****
+ /* Can't add "v:" variable. */
+ if (ht == &vimvarht)
+ {
+! EMSG2(_(e_illvar), name);
+ return;
+ }
+
+--- 7906,7912 ----
+ /* Can't add "v:" variable. */
+ if (ht == &vimvarht)
+ {
+! semsg(_(e_illvar), name);
+ return;
+ }
+
+***************
+*** 7946,7957 ****
+ {
+ if (flags & DI_FLAGS_RO)
+ {
+! EMSG2(_(e_readonlyvar), use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+ if ((flags & DI_FLAGS_RO_SBX) && sandbox)
+ {
+! EMSG2(_(e_readonlysbx), use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+ return FALSE;
+--- 7946,7957 ----
+ {
+ if (flags & DI_FLAGS_RO)
+ {
+! semsg(_(e_readonlyvar), use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+ if ((flags & DI_FLAGS_RO_SBX) && sandbox)
+ {
+! semsg(_(e_readonlysbx), use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 7966,7972 ****
+ {
+ if (flags & DI_FLAGS_FIX)
+ {
+! EMSG2(_("E795: Cannot delete variable %s"),
+ use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+--- 7966,7972 ----
+ {
+ if (flags & DI_FLAGS_FIX)
+ {
+! semsg(_("E795: Cannot delete variable %s"),
+ use_gettext ? (char_u *)_(name) : name);
+ return TRUE;
+ }
+***************
+*** 7987,7993 ****
+ && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
+ ? name[2] : name[0]))
+ {
+! EMSG2(_("E704: Funcref variable name must start with a capital: %s"),
+ name);
+ return TRUE;
+ }
+--- 7987,7993 ----
+ && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
+ ? name[2] : name[0]))
+ {
+! semsg(_("E704: Funcref variable name must start with a capital: %s"),
+ name);
+ return TRUE;
+ }
+***************
+*** 7996,8002 ****
+ * below. */
+ if (new_var && function_exists(name, FALSE))
+ {
+! EMSG2(_("E705: Variable name conflicts with existing function: %s"),
+ name);
+ return TRUE;
+ }
+--- 7996,8002 ----
+ * below. */
+ if (new_var && function_exists(name, FALSE))
+ {
+! semsg(_("E705: Variable name conflicts with existing function: %s"),
+ name);
+ return TRUE;
+ }
+***************
+*** 8016,8022 ****
+ if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
+ && *p != AUTOLOAD_CHAR)
+ {
+! EMSG2(_(e_illvar), varname);
+ return FALSE;
+ }
+ return TRUE;
+--- 8016,8022 ----
+ if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
+ && *p != AUTOLOAD_CHAR)
+ {
+! semsg(_(e_illvar), varname);
+ return FALSE;
+ }
+ return TRUE;
+***************
+*** 8032,8038 ****
+ {
+ if (lock & VAR_LOCKED)
+ {
+! EMSG2(_("E741: Value is locked: %s"),
+ name == NULL ? (char_u *)_("Unknown")
+ : use_gettext ? (char_u *)_(name)
+ : name);
+--- 8032,8038 ----
+ {
+ if (lock & VAR_LOCKED)
+ {
+! semsg(_("E741: Value is locked: %s"),
+ name == NULL ? (char_u *)_("Unknown")
+ : use_gettext ? (char_u *)_(name)
+ : name);
+***************
+*** 8040,8046 ****
+ }
+ if (lock & VAR_FIXED)
+ {
+! EMSG2(_("E742: Cannot change value of %s"),
+ name == NULL ? (char_u *)_("Unknown")
+ : use_gettext ? (char_u *)_(name)
+ : name);
+--- 8040,8046 ----
+ }
+ if (lock & VAR_FIXED)
+ {
+! semsg(_("E742: Cannot change value of %s"),
+ name == NULL ? (char_u *)_("Unknown")
+ : use_gettext ? (char_u *)_(name)
+ : name);
+***************
+*** 8158,8164 ****
+
+ if (recurse >= DICT_MAXNEST)
+ {
+! EMSG(_("E698: variable nested too deep for making a copy"));
+ return FAIL;
+ }
+ ++recurse;
+--- 8158,8164 ----
+
+ if (recurse >= DICT_MAXNEST)
+ {
+! emsg(_("E698: variable nested too deep for making a copy"));
+ return FAIL;
+ }
+ ++recurse;
+***************
+*** 8358,8364 ****
+ */
+ if (!aborting() && did_emsg == did_emsg_before
+ && called_emsg == called_emsg_before)
+! EMSG2(_(e_invexpr2), p);
+ need_clr_eos = FALSE;
+ break;
+ }
+--- 8358,8364 ----
+ */
+ if (!aborting() && did_emsg == did_emsg_before
+ && called_emsg == called_emsg_before)
+! semsg(_(e_invexpr2), p);
+ need_clr_eos = FALSE;
+ break;
+ }
+***************
+*** 8472,8478 ****
+ * exception.
+ */
+ if (!aborting() && did_emsg == save_did_emsg)
+! EMSG2(_(e_invexpr2), p);
+ ret = FAIL;
+ break;
+ }
+--- 8472,8478 ----
+ * exception.
+ */
+ if (!aborting() && did_emsg == save_did_emsg)
+! semsg(_(e_invexpr2), p);
+ ret = FAIL;
+ break;
+ }
+***************
+*** 8521,8527 ****
+ {
+ /* We don't want to abort following commands, restore did_emsg. */
+ save_did_emsg = did_emsg;
+! EMSG((char_u *)ga.ga_data);
+ if (!force_abort)
+ did_emsg = save_did_emsg;
+ }
+--- 8521,8527 ----
+ {
+ /* We don't want to abort following commands, restore did_emsg. */
+ save_did_emsg = did_emsg;
+! emsg(ga.ga_data);
+ if (!force_abort)
+ did_emsg = save_did_emsg;
+ }
+***************
+*** 9286,9292 ****
+ char_u *text = tv_get_string_buf_chk(&argvars[1], buf2);
+
+ if (pat == NULL || text == NULL)
+! EMSG(_(e_invarg));
+ else if (pattern_match(pat, text, FALSE) != (atype == ASSERT_MATCH))
+ {
+ prepare_assert_error(&ga);
+--- 9286,9292 ----
+ char_u *text = tv_get_string_buf_chk(&argvars[1], buf2);
+
+ if (pat == NULL || text == NULL)
+! emsg(_(e_invarg));
+ else if (pattern_match(pat, text, FALSE) != (atype == ASSERT_MATCH))
+ {
+ prepare_assert_error(&ga);
+***************
+*** 9602,9610 ****
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! EMSG(_("E977: Can only compare Blob with Blob"));
+ else
+! EMSG(_(e_invalblob));
+ clear_tv(typ1);
+ return FAIL;
+ }
+--- 9602,9610 ----
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! emsg(_("E977: Can only compare Blob with Blob"));
+ else
+! emsg(_(e_invalblob));
+ clear_tv(typ1);
+ return FAIL;
+ }
+***************
+*** 9629,9637 ****
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! EMSG(_("E691: Can only compare List with List"));
+ else
+! EMSG(_("E692: Invalid operation for List"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+--- 9629,9637 ----
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! emsg(_("E691: Can only compare List with List"));
+ else
+! emsg(_("E692: Invalid operation for List"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+***************
+*** 9658,9666 ****
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! EMSG(_("E735: Can only compare Dictionary with Dictionary"));
+ else
+! EMSG(_("E736: Invalid operation for Dictionary"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+--- 9658,9666 ----
+ || (type != TYPE_EQUAL && type != TYPE_NEQUAL))
+ {
+ if (typ1->v_type != typ2->v_type)
+! emsg(_("E735: Can only compare Dictionary with Dictionary"));
+ else
+! emsg(_("E736: Invalid operation for Dictionary"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+***************
+*** 9679,9685 ****
+ {
+ if (type != TYPE_EQUAL && type != TYPE_NEQUAL)
+ {
+! EMSG(_("E694: Invalid operation for Funcrefs"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+--- 9679,9685 ----
+ {
+ if (type != TYPE_EQUAL && type != TYPE_NEQUAL)
+ {
+! emsg(_("E694: Invalid operation for Funcrefs"));
+ clear_tv(typ1);
+ return FAIL;
+ }
+***************
+*** 10672,10678 ****
+ }
+ else
+ {
+! EMSG2(_(e_listdictarg), ermsg);
+ return;
+ }
+
+--- 10672,10678 ----
+ }
+ else
+ {
+! semsg(_(e_listdictarg), ermsg);
+ return;
+ }
+
+***************
+*** 10740,10746 ****
+ break;
+ if (tv.v_type != VAR_NUMBER)
+ {
+! EMSG(_(e_invalblob));
+ return;
+ }
+ tv.v_type = VAR_NUMBER;
+--- 10740,10746 ----
+ break;
+ if (tv.v_type != VAR_NUMBER)
+ {
+! emsg(_(e_invalblob));
+ return;
+ }
+ tv.v_type = VAR_NUMBER;
+*** ../vim-8.1.0742/src/evalfunc.c 2019-01-13 19:10:28.963419901 +0100
+--- src/evalfunc.c 2019-01-13 21:39:30.890113621 +0100
+***************
+*** 1188,1194 ****
+ *f = (float_T)argvars[0].vval.v_number;
+ return OK;
+ }
+! EMSG(_("E808: Number or Float required"));
+ return FAIL;
+ }
+
+--- 1188,1194 ----
+ *f = (float_T)argvars[0].vval.v_number;
+ return OK;
+ }
+! emsg(_("E808: Number or Float required"));
+ return FAIL;
+ }
+
+***************
+*** 1269,1275 ****
+ }
+ }
+ else
+! EMSG(_(e_listreq));
+ }
+
+ /*
+--- 1269,1275 ----
+ }
+ }
+ else
+! emsg(_(e_listreq));
+ }
+
+ /*
+***************
+*** 1954,1960 ****
+ buf = tv_get_buf(arg, FALSE);
+ --emsg_off;
+ if (buf == NULL)
+! EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(arg));
+ return buf;
+ }
+ #endif
+--- 1954,1960 ----
+ buf = tv_get_buf(arg, FALSE);
+ --emsg_off;
+ if (buf == NULL)
+! semsg(_("E158: Invalid buffer name: %s"), tv_get_string(arg));
+ return buf;
+ }
+ #endif
+***************
+*** 2130,2136 ****
+
+ if (argvars[1].v_type != VAR_LIST)
+ {
+! EMSG(_(e_listreq));
+ return;
+ }
+ if (argvars[1].vval.v_list == NULL)
+--- 2130,2136 ----
+
+ if (argvars[1].v_type != VAR_LIST)
+ {
+! emsg(_(e_listreq));
+ return;
+ }
+ if (argvars[1].vval.v_list == NULL)
+***************
+*** 2152,2158 ****
+ {
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ selfdict = argvars[2].vval.v_dict;
+--- 2152,2158 ----
+ {
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ selfdict = argvars[2].vval.v_dict;
+***************
+*** 2563,2569 ****
+
+ if ((State & INSERT) == 0)
+ {
+! EMSG(_("E785: complete() can only be used in Insert mode"));
+ return;
+ }
+
+--- 2563,2569 ----
+
+ if ((State & INSERT) == 0)
+ {
+! emsg(_("E785: complete() can only be used in Insert mode"));
+ return;
+ }
+
+***************
+*** 2574,2580 ****
+
+ if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 2574,2580 ----
+
+ if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 2770,2776 ****
+ {
+ li = list_find(l, idx);
+ if (li == NULL)
+! EMSGN(_(e_listidx), idx);
+ }
+ }
+ if (error)
+--- 2770,2776 ----
+ {
+ li = list_find(l, idx);
+ if (li == NULL)
+! semsg(_(e_listidx), idx);
+ }
+ }
+ if (error)
+***************
+*** 2793,2799 ****
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[3].v_type != VAR_UNKNOWN)
+! EMSG(_(e_invarg));
+ }
+
+ todo = error ? 0 : (int)d->dv_hashtab.ht_used;
+--- 2793,2799 ----
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[3].v_type != VAR_UNKNOWN)
+! emsg(_(e_invarg));
+ }
+
+ todo = error ? 0 : (int)d->dv_hashtab.ht_used;
+***************
+*** 2809,2815 ****
+ }
+ }
+ else
+! EMSG2(_(e_listdictarg), "count()");
+ rettv->vval.v_number = n;
+ }
+
+--- 2809,2815 ----
+ }
+ }
+ else
+! semsg(_(e_listdictarg), "count()");
+ rettv->vval.v_number = n;
+ }
+
+***************
+*** 2864,2870 ****
+
+ if (list2fpos(argvars, &pos, NULL, &curswant) == FAIL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ line = pos.lnum;
+--- 2864,2870 ----
+
+ if (list2fpos(argvars, &pos, NULL, &curswant) == FAIL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ line = pos.lnum;
+***************
+*** 2925,2931 ****
+ rettv->vval.v_number = FAIL;
+ pid = (int)tv_get_number(&argvars[0]);
+ if (pid == 0)
+! EMSG(_(e_invarg));
+ else
+ {
+ HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
+--- 2925,2931 ----
+ rettv->vval.v_number = FAIL;
+ pid = (int)tv_get_number(&argvars[0]);
+ if (pid == 0)
+! emsg(_(e_invarg));
+ else
+ {
+ HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
+***************
+*** 2952,2958 ****
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ noref = (int)tv_get_number_chk(&argvars[1], NULL);
+ if (noref < 0 || noref > 1)
+! EMSG(_(e_invarg));
+ else
+ {
+ copyID = get_copyID();
+--- 2952,2958 ----
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ noref = (int)tv_get_number_chk(&argvars[1], NULL);
+ if (noref < 0 || noref > 1)
+! emsg(_(e_invarg));
+ else
+ {
+ copyID = get_copyID();
+***************
+*** 2977,2983 ****
+ name = tv_get_string(&argvars[0]);
+ if (name == NULL || *name == NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 2977,2983 ----
+ name = tv_get_string(&argvars[0]);
+ if (name == NULL || *name == NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 2996,3002 ****
+ /* delete a directory recursively */
+ rettv->vval.v_number = delete_recursive(name);
+ else
+! EMSG2(_(e_invexpr2), flags);
+ }
+
+ /*
+--- 2996,3002 ----
+ /* delete a directory recursively */
+ rettv->vval.v_number = delete_recursive(name);
+ else
+! semsg(_(e_invexpr2), flags);
+ }
+
+ /*
+***************
+*** 3255,3267 ****
+ if (s == NULL || eval1(&s, rettv, TRUE) == FAIL)
+ {
+ if (p != NULL && !aborting())
+! EMSG2(_(e_invexpr2), p);
+ need_clr_eos = FALSE;
+ rettv->v_type = VAR_NUMBER;
+ rettv->vval.v_number = 0;
+ }
+ else if (*s != NUL)
+! EMSG(_(e_trailing));
+ }
+
+ /*
+--- 3255,3267 ----
+ if (s == NULL || eval1(&s, rettv, TRUE) == FAIL)
+ {
+ if (p != NULL && !aborting())
+! semsg(_(e_invexpr2), p);
+ need_clr_eos = FALSE;
+ rettv->v_type = VAR_NUMBER;
+ rettv->vval.v_number = 0;
+ }
+ else if (*s != NUL)
+! emsg(_(e_trailing));
+ }
+
+ /*
+***************
+*** 3528,3534 ****
+ {
+ char_u *s;
+ int len;
+! char_u *errormsg;
+ int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+ expand_T xpc;
+ int error = FALSE;
+--- 3528,3534 ----
+ {
+ char_u *s;
+ int len;
+! char *errormsg;
+ int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+ expand_T xpc;
+ int error = FALSE;
+***************
+*** 3624,3630 ****
+ item = list_find(l1, before);
+ if (item == NULL)
+ {
+! EMSGN(_(e_listidx), before);
+ return;
+ }
+ }
+--- 3624,3630 ----
+ item = list_find(l1, before);
+ if (item == NULL)
+ {
+! semsg(_(e_listidx), before);
+ return;
+ }
+ }
+***************
+*** 3660,3666 ****
+ break;
+ if (i == 3)
+ {
+! EMSG2(_(e_invarg2), action);
+ return;
+ }
+ }
+--- 3660,3666 ----
+ break;
+ if (i == 3)
+ {
+! semsg(_(e_invarg2), action);
+ return;
+ }
+ }
+***************
+*** 3673,3679 ****
+ }
+ }
+ else
+! EMSG2(_(e_listdictarg), "extend()");
+ }
+
+ /*
+--- 3673,3679 ----
+ }
+ }
+ else
+! semsg(_(e_listdictarg), "extend()");
+ }
+
+ /*
+***************
+*** 4197,4208 ****
+
+ if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s))
+ || (is_funcref && trans_name == NULL))
+! EMSG2(_(e_invarg2), use_string ? tv_get_string(&argvars[0]) : s);
+ /* Don't check an autoload name for existence here. */
+ else if (trans_name != NULL && (is_funcref
+ ? find_func(trans_name) == NULL
+ : !translated_function_exists(trans_name)))
+! EMSG2(_("E700: Unknown function: %s"), s);
+ else
+ {
+ int dict_idx = 0;
+--- 4197,4208 ----
+
+ if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s))
+ || (is_funcref && trans_name == NULL))
+! semsg(_(e_invarg2), use_string ? tv_get_string(&argvars[0]) : s);
+ /* Don't check an autoload name for existence here. */
+ else if (trans_name != NULL && (is_funcref
+ ? find_func(trans_name) == NULL
+ : !translated_function_exists(trans_name)))
+! semsg(_("E700: Unknown function: %s"), s);
+ else
+ {
+ int dict_idx = 0;
+***************
+*** 4247,4253 ****
+ {
+ if (argvars[dict_idx].v_type != VAR_DICT)
+ {
+! EMSG(_("E922: expected a dict"));
+ vim_free(name);
+ goto theend;
+ }
+--- 4247,4253 ----
+ {
+ if (argvars[dict_idx].v_type != VAR_DICT)
+ {
+! emsg(_("E922: expected a dict"));
+ vim_free(name);
+ goto theend;
+ }
+***************
+*** 4258,4264 ****
+ {
+ if (argvars[arg_idx].v_type != VAR_LIST)
+ {
+! EMSG(_("E923: Second argument of function() must be a list or a dict"));
+ vim_free(name);
+ goto theend;
+ }
+--- 4258,4264 ----
+ {
+ if (argvars[arg_idx].v_type != VAR_LIST)
+ {
+! emsg(_("E923: Second argument of function() must be a list or a dict"));
+ vim_free(name);
+ goto theend;
+ }
+***************
+*** 4409,4415 ****
+ {
+ rettv->v_type = VAR_NUMBER;
+ if (idx >= blob_len(argvars[0].vval.v_blob))
+! EMSGN(_(e_blobidx), idx);
+ else
+ rettv->vval.v_number = blob_get(argvars[0].vval.v_blob, idx);
+ }
+--- 4409,4415 ----
+ {
+ rettv->v_type = VAR_NUMBER;
+ if (idx >= blob_len(argvars[0].vval.v_blob))
+! semsg(_(e_blobidx), idx);
+ else
+ rettv->vval.v_number = blob_get(argvars[0].vval.v_blob, idx);
+ }
+***************
+*** 4480,4491 ****
+ }
+ }
+ else
+! EMSG2(_(e_invarg2), what);
+ return;
+ }
+ }
+ else
+! EMSG2(_(e_listdictarg), "get()");
+
+ if (tv == NULL)
+ {
+--- 4480,4491 ----
+ }
+ }
+ else
+! semsg(_(e_invarg2), what);
+ return;
+ }
+ }
+ else
+! semsg(_(e_listdictarg), "get()");
+
+ if (tv == NULL)
+ {
+***************
+*** 5029,5037 ****
+ if (xpc.xp_context == EXPAND_NOTHING)
+ {
+ if (argvars[1].v_type == VAR_STRING)
+! EMSG2(_(e_invarg2), argvars[1].vval.v_string);
+ else
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 5029,5037 ----
+ if (xpc.xp_context == EXPAND_NOTHING)
+ {
+ if (argvars[1].v_type == VAR_STRING)
+! semsg(_(e_invarg2), argvars[1].vval.v_string);
+ else
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 5363,5369 ****
+ qf_get_properties(wp, d, rettv->vval.v_dict);
+ }
+ else
+! EMSG(_(e_dictreq));
+ }
+ }
+ }
+--- 5363,5369 ----
+ qf_get_properties(wp, d, rettv->vval.v_dict);
+ }
+ else
+! emsg(_(e_dictreq));
+ }
+ }
+ }
+***************
+*** 6765,6771 ****
+ {
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ if (argvars[0].vval.v_dict == NULL)
+--- 6765,6771 ----
+ {
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ if (argvars[0].vval.v_dict == NULL)
+***************
+*** 7055,7061 ****
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+ {
+! EMSG(_(e_listreq));
+ return;
+ }
+
+--- 7055,7061 ----
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+ {
+! emsg(_(e_listreq));
+ return;
+ }
+
+***************
+*** 7155,7161 ****
+ #endif
+ if (argvars[0].v_type != VAR_LIST || argvars[0].vval.v_list == NULL)
+ {
+! EMSG2(_(e_listarg), "inputlist()");
+ return;
+ }
+
+--- 7155,7161 ----
+ #endif
+ if (argvars[0].v_type != VAR_LIST || argvars[0].vval.v_list == NULL)
+ {
+! semsg(_(e_listarg), "inputlist()");
+ return;
+ }
+
+***************
+*** 7256,7262 ****
+ return; // type error; errmsg already given
+ if (before < 0 || before > len)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[2]));
+ return;
+ }
+ }
+--- 7256,7262 ----
+ return; // type error; errmsg already given
+ if (before < 0 || before > len)
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[2]));
+ return;
+ }
+ }
+***************
+*** 7265,7271 ****
+ return;
+ if (val < 0 || val > 255)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[1]));
+ return;
+ }
+
+--- 7265,7271 ----
+ return;
+ if (val < 0 || val > 255)
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[1]));
+ return;
+ }
+
+***************
+*** 7279,7285 ****
+ copy_tv(&argvars[0], rettv);
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+! EMSG2(_(e_listarg), "insert()");
+ else if ((l = argvars[0].vval.v_list) != NULL && !tv_check_lock(l->lv_lock,
+ (char_u *)N_("insert() argument"), TRUE))
+ {
+--- 7279,7285 ----
+ copy_tv(&argvars[0], rettv);
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+! semsg(_(e_listarg), "insert()");
+ else if ((l = argvars[0].vval.v_list) != NULL && !tv_check_lock(l->lv_lock,
+ (char_u *)N_("insert() argument"), TRUE))
+ {
+***************
+*** 7295,7301 ****
+ item = list_find(l, before);
+ if (item == NULL)
+ {
+! EMSGN(_(e_listidx), before);
+ l = NULL;
+ }
+ }
+--- 7295,7301 ----
+ item = list_find(l, before);
+ if (item == NULL)
+ {
+! semsg(_(e_listidx), before);
+ l = NULL;
+ }
+ }
+***************
+*** 7357,7363 ****
+ if (end != NULL && lv.ll_name != NULL)
+ {
+ if (*end != NUL)
+! EMSG(_(e_trailing));
+ else
+ {
+ if (lv.ll_tv == NULL)
+--- 7357,7363 ----
+ if (end != NULL && lv.ll_name != NULL)
+ {
+ if (*end != NUL)
+! emsg(_(e_trailing));
+ else
+ {
+ if (lv.ll_tv == NULL)
+***************
+*** 7375,7383 ****
+ }
+ }
+ else if (lv.ll_range)
+! EMSG(_("E786: Range not allowed"));
+ else if (lv.ll_newkey != NULL)
+! EMSG2(_(e_dictkey), lv.ll_newkey);
+ else if (lv.ll_list != NULL)
+ /* List item. */
+ rettv->vval.v_number = tv_islocked(&lv.ll_li->li_tv);
+--- 7375,7383 ----
+ }
+ }
+ else if (lv.ll_range)
+! emsg(_("E786: Range not allowed"));
+ else if (lv.ll_newkey != NULL)
+! semsg(_(e_dictkey), lv.ll_newkey);
+ else if (lv.ll_list != NULL)
+ /* List item. */
+ rettv->vval.v_number = tv_islocked(&lv.ll_li->li_tv);
+***************
+*** 7423,7435 ****
+
+ if (tv->v_type != VAR_JOB)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(tv));
+ return NULL;
+ }
+ job = tv->vval.v_job;
+
+ if (job == NULL)
+! EMSG(_("E916: not a valid job"));
+ return job;
+ }
+
+--- 7423,7435 ----
+
+ if (tv->v_type != VAR_JOB)
+ {
+! semsg(_(e_invarg2), tv_get_string(tv));
+ return NULL;
+ }
+ job = tv->vval.v_job;
+
+ if (job == NULL)
+! emsg(_("E916: not a valid job"));
+ return job;
+ }
+
+***************
+*** 7535,7541 ****
+
+ if (argvars[0].v_type != VAR_LIST)
+ {
+! EMSG(_(e_listreq));
+ return;
+ }
+ if (argvars[0].vval.v_list == NULL)
+--- 7535,7541 ----
+
+ if (argvars[0].v_type != VAR_LIST)
+ {
+! emsg(_(e_listreq));
+ return;
+ }
+ if (argvars[0].vval.v_list == NULL)
+***************
+*** 7570,7576 ****
+ reader.js_fill = NULL;
+ reader.js_used = 0;
+ if (json_decode_all(&reader, rettv, JSON_JS) != OK)
+! EMSG(_(e_invarg));
+ }
+
+ /*
+--- 7570,7576 ----
+ reader.js_fill = NULL;
+ reader.js_used = 0;
+ if (json_decode_all(&reader, rettv, JSON_JS) != OK)
+! emsg(_(e_invarg));
+ }
+
+ /*
+***************
+*** 7661,7667 ****
+ case VAR_PARTIAL:
+ case VAR_JOB:
+ case VAR_CHANNEL:
+! EMSG(_("E701: Invalid type for len()"));
+ break;
+ }
+ }
+--- 7661,7667 ----
+ case VAR_PARTIAL:
+ case VAR_JOB:
+ case VAR_CHANNEL:
+! emsg(_("E701: Invalid type for len()"));
+ break;
+ }
+ }
+***************
+*** 8199,8205 ****
+
+ if (tv->v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return FAIL;
+ }
+
+--- 8199,8205 ----
+
+ if (tv->v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return FAIL;
+ }
+
+***************
+*** 8212,8218 ****
+ *win = find_win_by_nr_or_id(&di->di_tv);
+ if (*win == NULL)
+ {
+! EMSG(_("E957: Invalid window number"));
+ return FAIL;
+ }
+ }
+--- 8212,8218 ----
+ *win = find_win_by_nr_or_id(&di->di_tv);
+ if (*win == NULL)
+ {
+! emsg(_("E957: Invalid window number"));
+ return FAIL;
+ }
+ }
+***************
+*** 8256,8262 ****
+ return;
+ if (id >= 1 && id <= 3)
+ {
+! EMSGN(_("E798: ID is reserved for \":match\": %ld"), id);
+ return;
+ }
+
+--- 8256,8262 ----
+ return;
+ if (id >= 1 && id <= 3)
+ {
+! semsg(_("E798: ID is reserved for \":match\": %ld"), id);
+ return;
+ }
+
+***************
+*** 8289,8295 ****
+
+ if (argvars[1].v_type != VAR_LIST)
+ {
+! EMSG2(_(e_listarg), "matchaddpos()");
+ return;
+ }
+ l = argvars[1].vval.v_list;
+--- 8289,8295 ----
+
+ if (argvars[1].v_type != VAR_LIST)
+ {
+! semsg(_(e_listarg), "matchaddpos()");
+ return;
+ }
+ l = argvars[1].vval.v_list;
+***************
+*** 8314,8320 ****
+ /* id == 3 is ok because matchaddpos() is supposed to substitute :3match */
+ if (id == 1 || id == 2)
+ {
+! EMSGN(_("E798: ID is reserved for \":match\": %ld"), id);
+ return;
+ }
+
+--- 8314,8320 ----
+ /* id == 3 is ok because matchaddpos() is supposed to substitute :3match */
+ if (id == 1 || id == 2)
+ {
+! semsg(_("E798: ID is reserved for \":match\": %ld"), id);
+ return;
+ }
+
+***************
+*** 8461,8467 ****
+ }
+ }
+ else
+! EMSG2(_(e_listdictarg), domax ? "max()" : "min()");
+ rettv->vval.v_number = error ? 0 : n;
+ }
+
+--- 8461,8467 ----
+ }
+ }
+ else
+! semsg(_(e_listdictarg), domax ? "max()" : "min()");
+ rettv->vval.v_number = error ? 0 : n;
+ }
+
+***************
+*** 9027,9035 ****
+ if (error)
+ return; /* type error; errmsg already given */
+ if (stride == 0)
+! EMSG(_("E726: Stride is zero"));
+ else if (stride > 0 ? end + 1 < start : end - 1 > start)
+! EMSG(_("E727: Start past end"));
+ else
+ {
+ if (rettv_list_alloc(rettv) == OK)
+--- 9027,9035 ----
+ if (error)
+ return; /* type error; errmsg already given */
+ if (stride == 0)
+! emsg(_("E726: Stride is zero"));
+ else if (stride > 0 ? end + 1 < start : end - 1 > start)
+! emsg(_("E727: Start past end"));
+ else
+ {
+ if (rettv_list_alloc(rettv) == OK)
+***************
+*** 9089,9095 ****
+ fname = tv_get_string(&argvars[0]);
+ if (*fname == NUL || (fd = mch_fopen((char *)fname, READBIN)) == NULL)
+ {
+! EMSG2(_(e_notopen), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ return;
+ }
+
+--- 9089,9095 ----
+ fname = tv_get_string(&argvars[0]);
+ if (*fname == NUL || (fd = mch_fopen((char *)fname, READBIN)) == NULL)
+ {
+! semsg(_(e_notopen), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ return;
+ }
+
+***************
+*** 9097,9103 ****
+ {
+ if (read_blob(fd, rettv->vval.v_blob) == FAIL)
+ {
+! EMSG("cannot read file");
+ blob_free(rettv->vval.v_blob);
+ }
+ fclose(fd);
+--- 9097,9103 ----
+ {
+ if (read_blob(fd, rettv->vval.v_blob) == FAIL)
+ {
+! emsg("cannot read file");
+ blob_free(rettv->vval.v_blob);
+ }
+ fclose(fd);
+***************
+*** 9437,9443 ****
+ make_connection();
+ if (X_DISPLAY == NULL)
+ {
+! EMSG(_("E240: No connection to the X server"));
+ return FAIL;
+ }
+ return OK;
+--- 9437,9443 ----
+ make_connection();
+ if (X_DISPLAY == NULL)
+ {
+! emsg(_("E240: No connection to the X server"));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 9483,9493 ****
+ {
+ if (r != NULL)
+ {
+! EMSG(r); /* sending worked but evaluation failed */
+ vim_free(r);
+ }
+ else
+! EMSG2(_("E241: Unable to send to %s"), server_name);
+ return;
+ }
+
+--- 9483,9493 ----
+ {
+ if (r != NULL)
+ {
+! emsg((char *)r); // sending worked but evaluation failed
+ vim_free(r);
+ }
+ else
+! semsg(_("E241: Unable to send to %s"), server_name);
+ return;
+ }
+
+***************
+*** 9637,9643 ****
+ || serverReadReply(X_DISPLAY, serverStrToWin(serverid),
+ &r, FALSE, timeout) < 0)
+ # endif
+! EMSG(_("E277: Unable to read a server reply"));
+ }
+ #endif
+ rettv->v_type = VAR_STRING;
+--- 9637,9643 ----
+ || serverReadReply(X_DISPLAY, serverStrToWin(serverid),
+ &r, FALSE, timeout) < 0)
+ # endif
+! emsg(_("E277: Unable to read a server reply"));
+ }
+ #endif
+ rettv->v_type = VAR_STRING;
+***************
+*** 9669,9675 ****
+ if (server == NULL)
+ return; /* type error; errmsg already given */
+ if (serverName != NULL)
+! EMSG(_("E941: already started a server"));
+ else
+ {
+ # ifdef FEAT_X11
+--- 9669,9675 ----
+ if (server == NULL)
+ return; /* type error; errmsg already given */
+ if (serverName != NULL)
+! emsg(_("E941: already started a server"));
+ else
+ {
+ # ifdef FEAT_X11
+***************
+*** 9680,9686 ****
+ # endif
+ }
+ #else
+! EMSG(_("E942: +clientserver feature not available"));
+ #endif
+ }
+
+--- 9680,9686 ----
+ # endif
+ }
+ #else
+! emsg(_("E942: +clientserver feature not available"));
+ #endif
+ }
+
+***************
+*** 9704,9710 ****
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+! EMSG2(_(e_toomanyarg), "remove()");
+ else if ((d = argvars[0].vval.v_dict) != NULL
+ && !tv_check_lock(d->dv_lock, arg_errmsg, TRUE))
+ {
+--- 9704,9710 ----
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+! semsg(_(e_toomanyarg), "remove()");
+ else if ((d = argvars[0].vval.v_dict) != NULL
+ && !tv_check_lock(d->dv_lock, arg_errmsg, TRUE))
+ {
+***************
+*** 9713,9719 ****
+ {
+ di = dict_find(d, key, -1);
+ if (di == NULL)
+! EMSG2(_(e_dictkey), key);
+ else if (!var_check_fixed(di->di_flags, arg_errmsg, TRUE)
+ && !var_check_ro(di->di_flags, arg_errmsg, TRUE))
+ {
+--- 9713,9719 ----
+ {
+ di = dict_find(d, key, -1);
+ if (di == NULL)
+! semsg(_(e_dictkey), key);
+ else if (!var_check_fixed(di->di_flags, arg_errmsg, TRUE)
+ && !var_check_ro(di->di_flags, arg_errmsg, TRUE))
+ {
+***************
+*** 9738,9744 ****
+ idx = len + idx;
+ if (idx < 0 || idx >= len)
+ {
+! EMSGN(_(e_blobidx), idx);
+ return;
+ }
+ if (argvars[2].v_type == VAR_UNKNOWN)
+--- 9738,9744 ----
+ idx = len + idx;
+ if (idx < 0 || idx >= len)
+ {
+! semsg(_(e_blobidx), idx);
+ return;
+ }
+ if (argvars[2].v_type == VAR_UNKNOWN)
+***************
+*** 9762,9768 ****
+ end = len + end;
+ if (end >= len || idx > end)
+ {
+! EMSGN(_(e_blobidx), end);
+ return;
+ }
+ blob = blob_alloc();
+--- 9762,9768 ----
+ end = len + end;
+ if (end >= len || idx > end)
+ {
+! semsg(_(e_blobidx), end);
+ return;
+ }
+ blob = blob_alloc();
+***************
+*** 9787,9793 ****
+ }
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+! EMSG2(_(e_listdictarg), "remove()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+ && !tv_check_lock(l->lv_lock, arg_errmsg, TRUE))
+ {
+--- 9787,9793 ----
+ }
+ }
+ else if (argvars[0].v_type != VAR_LIST)
+! semsg(_(e_listdictarg), "remove()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+ && !tv_check_lock(l->lv_lock, arg_errmsg, TRUE))
+ {
+***************
+*** 9795,9801 ****
+ if (error)
+ ; // type error: do nothing, errmsg already given
+ else if ((item = list_find(l, idx)) == NULL)
+! EMSGN(_(e_listidx), idx);
+ else
+ {
+ if (argvars[2].v_type == VAR_UNKNOWN)
+--- 9795,9801 ----
+ if (error)
+ ; // type error: do nothing, errmsg already given
+ else if ((item = list_find(l, idx)) == NULL)
+! semsg(_(e_listidx), idx);
+ else
+ {
+ if (argvars[2].v_type == VAR_UNKNOWN)
+***************
+*** 9812,9818 ****
+ if (error)
+ ; // type error: do nothing
+ else if ((item2 = list_find(l, end)) == NULL)
+! EMSGN(_(e_listidx), end);
+ else
+ {
+ int cnt = 0;
+--- 9812,9818 ----
+ if (error)
+ ; // type error: do nothing
+ else if ((item2 = list_find(l, end)) == NULL)
+! semsg(_(e_listidx), end);
+ else
+ {
+ int cnt = 0;
+***************
+*** 9824,9830 ****
+ break;
+ }
+ if (li == NULL) /* didn't find "item2" after "item" */
+! EMSG(_(e_invrange));
+ else
+ {
+ vimlist_remove(l, item, item2);
+--- 9824,9830 ----
+ break;
+ }
+ if (li == NULL) /* didn't find "item2" after "item" */
+! emsg(_(e_invrange));
+ else
+ {
+ vimlist_remove(l, item, item2);
+***************
+*** 9976,9982 ****
+ {
+ vim_free(p);
+ vim_free(remain);
+! EMSG(_("E655: Too many symbolic links (cycle?)"));
+ rettv->vval.v_string = NULL;
+ goto fail;
+ }
+--- 9976,9982 ----
+ {
+ vim_free(p);
+ vim_free(remain);
+! emsg(_("E655: Too many symbolic links (cycle?)"));
+ rettv->vval.v_string = NULL;
+ goto fail;
+ }
+***************
+*** 10134,10140 ****
+ }
+
+ if (argvars[0].v_type != VAR_LIST)
+! EMSG2(_(e_listarg), "reverse()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+ && !tv_check_lock(l->lv_lock,
+ (char_u *)N_("reverse() argument"), TRUE))
+--- 10134,10140 ----
+ }
+
+ if (argvars[0].v_type != VAR_LIST)
+! semsg(_(e_listarg), "reverse()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+ && !tv_check_lock(l->lv_lock,
+ (char_u *)N_("reverse() argument"), TRUE))
+***************
+*** 10202,10208 ****
+ }
+ if (mask == 0)
+ {
+! EMSG2(_(e_invarg2), flags);
+ dir = 0;
+ }
+ else
+--- 10202,10208 ----
+ }
+ if (mask == 0)
+ {
+! semsg(_(e_invarg2), flags);
+ dir = 0;
+ }
+ else
+***************
+*** 10279,10285 ****
+ if (((flags & (SP_REPEAT | SP_RETCOUNT)) != 0)
+ || ((flags & SP_NOMOVE) && (flags & SP_SETPCMARK)))
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[1]));
+ goto theend;
+ }
+
+--- 10279,10285 ----
+ if (((flags & (SP_REPEAT | SP_RETCOUNT)) != 0)
+ || ((flags & SP_NOMOVE) && (flags & SP_SETPCMARK)))
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[1]));
+ goto theend;
+ }
+
+***************
+*** 10485,10491 ****
+ if ((flags & (SP_END | SP_SUBPAT)) != 0
+ || ((flags & SP_NOMOVE) && (flags & SP_SETPCMARK)))
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[3]));
+ goto theend;
+ }
+
+--- 10485,10491 ----
+ if ((flags & (SP_END | SP_SUBPAT)) != 0
+ || ((flags & SP_NOMOVE) && (flags & SP_SETPCMARK)))
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[3]));
+ goto theend;
+ }
+
+***************
+*** 10504,10510 ****
+ && skip->v_type != VAR_STRING)
+ {
+ /* Type error */
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[4]));
+ goto theend;
+ }
+ if (argvars[5].v_type != VAR_UNKNOWN)
+--- 10504,10510 ----
+ && skip->v_type != VAR_STRING)
+ {
+ /* Type error */
+! semsg(_(e_invarg2), tv_get_string(&argvars[4]));
+ goto theend;
+ }
+ if (argvars[5].v_type != VAR_UNKNOWN)
+***************
+*** 10512,10518 ****
+ lnum_stop = (long)tv_get_number_chk(&argvars[5], NULL);
+ if (lnum_stop < 0)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[5]));
+ goto theend;
+ }
+ #ifdef FEAT_RELTIME
+--- 10512,10518 ----
+ lnum_stop = (long)tv_get_number_chk(&argvars[5], NULL);
+ if (lnum_stop < 0)
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[5]));
+ goto theend;
+ }
+ #ifdef FEAT_RELTIME
+***************
+*** 10521,10527 ****
+ time_limit = (long)tv_get_number_chk(&argvars[6], NULL);
+ if (time_limit < 0)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[6]));
+ goto theend;
+ }
+ }
+--- 10521,10527 ----
+ time_limit = (long)tv_get_number_chk(&argvars[6], NULL);
+ if (time_limit < 0)
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[6]));
+ goto theend;
+ }
+ }
+***************
+*** 10786,10792 ****
+
+ if (serverSendReply(server, reply) < 0)
+ {
+! EMSG(_("E258: Unable to send to client"));
+ return;
+ }
+ rettv->vval.v_number = 0;
+--- 10786,10792 ----
+
+ if (serverSendReply(server, reply) < 0)
+ {
+! emsg(_("E258: Unable to send to client"));
+ return;
+ }
+ rettv->vval.v_number = 0;
+***************
+*** 10898,10904 ****
+
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+
+--- 10898,10904 ----
+
+ if (argvars[0].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+
+***************
+*** 10966,10972 ****
+ return;
+ if (STRLEN(mode_str) != 9)
+ {
+! EMSG2(_(e_invarg2), mode_str);
+ return;
+ }
+
+--- 10966,10972 ----
+ return;
+ if (STRLEN(mode_str) != 9)
+ {
+! semsg(_(e_invarg2), mode_str);
+ return;
+ }
+
+***************
+*** 11013,11021 ****
+
+ #ifdef FEAT_QUICKFIX
+ if (list_arg->v_type != VAR_LIST)
+! EMSG(_(e_listreq));
+ else if (recursive != 0)
+! EMSG(_(e_au_recursive));
+ else
+ {
+ list_T *l = list_arg->vval.v_list;
+--- 11013,11021 ----
+
+ #ifdef FEAT_QUICKFIX
+ if (list_arg->v_type != VAR_LIST)
+! emsg(_(e_listreq));
+ else if (recursive != 0)
+! emsg(_(e_au_recursive));
+ else
+ {
+ list_T *l = list_arg->vval.v_list;
+***************
+*** 11031,11042 ****
+ act[1] == NUL)
+ action = *act;
+ else
+! EMSG2(_(e_invact), act);
+ }
+ else if (action_arg->v_type == VAR_UNKNOWN)
+ action = ' ';
+ else
+! EMSG(_(e_stringreq));
+
+ if (action_arg->v_type != VAR_UNKNOWN
+ && what_arg->v_type != VAR_UNKNOWN)
+--- 11031,11042 ----
+ act[1] == NUL)
+ action = *act;
+ else
+! semsg(_(e_invact), act);
+ }
+ else if (action_arg->v_type == VAR_UNKNOWN)
+ action = ' ';
+ else
+! emsg(_(e_stringreq));
+
+ if (action_arg->v_type != VAR_UNKNOWN
+ && what_arg->v_type != VAR_UNKNOWN)
+***************
+*** 11045,11051 ****
+ d = what_arg->vval.v_dict;
+ else
+ {
+! EMSG(_(e_dictreq));
+ valid_dict = FALSE;
+ }
+ }
+--- 11045,11051 ----
+ d = what_arg->vval.v_dict;
+ else
+ {
+! emsg(_(e_dictreq));
+ valid_dict = FALSE;
+ }
+ }
+***************
+*** 11090,11096 ****
+ rettv->vval.v_number = -1;
+ if (argvars[0].v_type != VAR_LIST)
+ {
+! EMSG(_(e_listreq));
+ return;
+ }
+ if ((l = argvars[0].vval.v_list) != NULL)
+--- 11090,11096 ----
+ rettv->vval.v_number = -1;
+ if (argvars[0].v_type != VAR_LIST)
+ {
+! emsg(_(e_listreq));
+ return;
+ }
+ if ((l = argvars[0].vval.v_list) != NULL)
+***************
+*** 11104,11110 ****
+ if (li->li_tv.v_type != VAR_DICT
+ || (d = li->li_tv.vval.v_dict) == NULL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ if (!(dict_find(d, (char_u *)"group", -1) != NULL
+--- 11104,11110 ----
+ if (li->li_tv.v_type != VAR_DICT
+ || (d = li->li_tv.vval.v_dict) == NULL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ if (!(dict_find(d, (char_u *)"group", -1) != NULL
+***************
+*** 11113,11119 ****
+ && dict_find(d, (char_u *)"priority", -1) != NULL
+ && dict_find(d, (char_u *)"id", -1) != NULL))
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ li = li->li_next;
+--- 11113,11119 ----
+ && dict_find(d, (char_u *)"priority", -1) != NULL
+ && dict_find(d, (char_u *)"id", -1) != NULL))
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ li = li->li_next;
+***************
+*** 11224,11230 ****
+ rettv->vval.v_number = 0;
+ }
+ else
+! EMSG(_(e_invarg));
+ }
+ }
+ }
+--- 11224,11230 ----
+ rettv->vval.v_number = 0;
+ }
+ else
+! emsg(_(e_invarg));
+ }
+ }
+ }
+***************
+*** 11424,11430 ****
+ // second argument: dict with items to set in the tag stack
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ d = argvars[1].vval.v_dict;
+--- 11424,11430 ----
+ // second argument: dict with items to set in the tag stack
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ d = argvars[1].vval.v_dict;
+***************
+*** 11445,11457 ****
+ action = *actstr;
+ else
+ {
+! EMSG2(_(e_invact2), actstr);
+ return;
+ }
+ }
+ else
+ {
+! EMSG(_(e_stringreq));
+ return;
+ }
+
+--- 11445,11457 ----
+ action = *actstr;
+ else
+ {
+! semsg(_(e_invact2), actstr);
+ return;
+ }
+ }
+ else
+ {
+! emsg(_(e_stringreq));
+ return;
+ }
+
+***************
+*** 11545,11551 ****
+ {
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+
+--- 11545,11551 ----
+ {
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+
+***************
+*** 11616,11622 ****
+ if (argvars[1].v_type != VAR_DICT ||
+ ((dict = argvars[1].vval.v_dict) == NULL))
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ if ((di = dict_find(dict, (char_u *)"lnum", -1)) != NULL)
+--- 11616,11622 ----
+ if (argvars[1].v_type != VAR_DICT ||
+ ((dict = argvars[1].vval.v_dict) == NULL))
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ if ((di = dict_find(dict, (char_u *)"lnum", -1)) != NULL)
+***************
+*** 11667,11673 ****
+ return;
+ if (sign_id <= 0)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 11667,11673 ----
+ return;
+ if (sign_id <= 0)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 11719,11725 ****
+ return;
+ if (sign_id < 0)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 11719,11725 ----
+ return;
+ if (sign_id < 0)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 11751,11757 ****
+ if (argvars[4].v_type != VAR_DICT ||
+ ((dict = argvars[4].vval.v_dict) == NULL))
+ {
+! EMSG(_(e_dictreq));
+ goto cleanup;
+ }
+
+--- 11751,11757 ----
+ if (argvars[4].v_type != VAR_DICT ||
+ ((dict = argvars[4].vval.v_dict) == NULL))
+ {
+! emsg(_(e_dictreq));
+ goto cleanup;
+ }
+
+***************
+*** 11823,11829 ****
+
+ if (argvars[0].v_type != VAR_STRING)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 11823,11829 ----
+
+ if (argvars[0].v_type != VAR_STRING)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 11841,11847 ****
+ {
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ goto cleanup;
+ }
+ dict = argvars[1].vval.v_dict;
+--- 11841,11847 ----
+ {
+ if (argvars[1].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ goto cleanup;
+ }
+ dict = argvars[1].vval.v_dict;
+***************
+*** 12120,12126 ****
+ sortinfo = &info;
+
+ if (argvars[0].v_type != VAR_LIST)
+! EMSG2(_(e_listarg), sort ? "sort()" : "uniq()");
+ else
+ {
+ l = argvars[0].vval.v_list;
+--- 12120,12126 ----
+ sortinfo = &info;
+
+ if (argvars[0].v_type != VAR_LIST)
+! semsg(_(e_listarg), sort ? "sort()" : "uniq()");
+ else
+ {
+ l = argvars[0].vval.v_list;
+***************
+*** 12163,12169 ****
+ info.item_compare_func = tv_get_string(&argvars[1]);
+ else if (i != 0)
+ {
+! EMSG(_(e_invarg));
+ goto theend;
+ }
+ if (info.item_compare_func != NULL)
+--- 12163,12169 ----
+ info.item_compare_func = tv_get_string(&argvars[1]);
+ else if (i != 0)
+ {
+! emsg(_(e_invarg));
+ goto theend;
+ }
+ if (info.item_compare_func != NULL)
+***************
+*** 12203,12209 ****
+ /* optional third argument: {dict} */
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ goto theend;
+ }
+ info.item_compare_selfdict = argvars[2].vval.v_dict;
+--- 12203,12209 ----
+ /* optional third argument: {dict} */
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ goto theend;
+ }
+ info.item_compare_selfdict = argvars[2].vval.v_dict;
+***************
+*** 12233,12239 ****
+ || info.item_compare_partial != NULL)
+ && item_compare2((void *)&ptrs[0], (void *)&ptrs[1])
+ == ITEM_COMPARE_FAIL)
+! EMSG(_("E702: Sort compare function failed"));
+ else
+ {
+ /* Sort the array with item pointers. */
+--- 12233,12239 ----
+ || info.item_compare_partial != NULL)
+ && item_compare2((void *)&ptrs[0], (void *)&ptrs[1])
+ == ITEM_COMPARE_FAIL)
+! emsg(_("E702: Sort compare function failed"));
+ else
+ {
+ /* Sort the array with item pointers. */
+***************
+*** 12271,12277 ****
+ ptrs[i++].item = li;
+ if (info.item_compare_func_err)
+ {
+! EMSG(_("E882: Uniq compare function failed"));
+ break;
+ }
+ }
+--- 12271,12277 ----
+ ptrs[i++].item = li;
+ if (info.item_compare_func_err)
+ {
+! emsg(_("E882: Uniq compare function failed"));
+ break;
+ }
+ }
+***************
+*** 12580,12586 ****
+ base = (int)tv_get_number(&argvars[1]);
+ if (base != 2 && base != 8 && base != 10 && base != 16)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ }
+--- 12580,12586 ----
+ base = (int)tv_get_number(&argvars[1]);
+ if (base != 2 && base != 8 && base != 10 && base != 16)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ }
+***************
+*** 12782,12788 ****
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ skipcc = (int)tv_get_number_chk(&argvars[1], NULL);
+ if (skipcc < 0 || skipcc > 1)
+! EMSG(_(e_invarg));
+ else
+ {
+ #ifdef FEAT_MBYTE
+--- 12782,12788 ----
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ skipcc = (int)tv_get_number_chk(&argvars[1], NULL);
+ if (skipcc < 0 || skipcc > 1)
+! emsg(_(e_invarg));
+ else
+ {
+ #ifdef FEAT_MBYTE
+***************
+*** 13022,13028 ****
+ return;
+ if (no < 0 || no >= NSUBEXP)
+ {
+! EMSGN(_("E935: invalid submatch number: %d"), no);
+ return;
+ }
+ if (argvars[1].v_type != VAR_UNKNOWN)
+--- 13022,13028 ----
+ return;
+ if (no < 0 || no >= NSUBEXP)
+ {
+! semsg(_("E935: invalid submatch number: %d"), no);
+ return;
+ }
+ if (argvars[1].v_type != VAR_UNKNOWN)
+***************
+*** 13357,13370 ****
+ */
+ if ((infile = vim_tempname('i', TRUE)) == NULL)
+ {
+! EMSG(_(e_notmp));
+ goto errret;
+ }
+
+ fd = mch_fopen((char *)infile, WRITEBIN);
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), infile);
+ goto errret;
+ }
+ if (argvars[1].v_type == VAR_NUMBER)
+--- 13357,13370 ----
+ */
+ if ((infile = vim_tempname('i', TRUE)) == NULL)
+ {
+! emsg(_(e_notmp));
+ goto errret;
+ }
+
+ fd = mch_fopen((char *)infile, WRITEBIN);
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), infile);
+ goto errret;
+ }
+ if (argvars[1].v_type == VAR_NUMBER)
+***************
+*** 13375,13381 ****
+ buf = buflist_findnr(argvars[1].vval.v_number);
+ if (buf == NULL)
+ {
+! EMSGN(_(e_nobufnr), argvars[1].vval.v_number);
+ fclose(fd);
+ goto errret;
+ }
+--- 13375,13381 ----
+ buf = buflist_findnr(argvars[1].vval.v_number);
+ if (buf == NULL)
+ {
+! semsg(_(e_nobufnr), argvars[1].vval.v_number);
+ fclose(fd);
+ goto errret;
+ }
+***************
+*** 13419,13425 ****
+ err = TRUE;
+ if (err)
+ {
+! EMSG(_("E677: Error writing temp file"));
+ goto errret;
+ }
+ }
+--- 13419,13425 ----
+ err = TRUE;
+ if (err)
+ {
+! emsg(_("E677: Error writing temp file"));
+ goto errret;
+ }
+ }
+***************
+*** 13587,13593 ****
+ if (STRCMP(arg, "$") == 0)
+ nr = tabpage_index(NULL) - 1;
+ else
+! EMSG2(_(e_invexpr2), arg);
+ }
+ }
+ else
+--- 13587,13593 ----
+ if (STRCMP(arg, "$") == 0)
+ nr = tabpage_index(NULL) - 1;
+ else
+! semsg(_(e_invexpr2), arg);
+ }
+ }
+ else
+***************
+*** 13623,13629 ****
+ }
+ else
+ {
+! EMSG2(_(e_invexpr2), arg);
+ nr = 0;
+ }
+ }
+--- 13623,13629 ----
+ }
+ else
+ {
+! semsg(_(e_invexpr2), arg);
+ nr = 0;
+ }
+ }
+***************
+*** 13781,13792 ****
+ || argvars[1].v_type != VAR_NUMBER
+ || argvars[1].vval.v_number < 0
+ || argvars[2].v_type != VAR_NUMBER)
+! EMSG(_(e_invarg));
+ else
+ {
+ alloc_fail_id = argvars[0].vval.v_number;
+ if (alloc_fail_id >= aid_last)
+! EMSG(_(e_invarg));
+ alloc_fail_countdown = argvars[1].vval.v_number;
+ alloc_fail_repeat = argvars[2].vval.v_number;
+ did_outofmem_msg = FALSE;
+--- 13781,13792 ----
+ || argvars[1].v_type != VAR_NUMBER
+ || argvars[1].vval.v_number < 0
+ || argvars[2].v_type != VAR_NUMBER)
+! emsg(_(e_invarg));
+ else
+ {
+ alloc_fail_id = argvars[0].vval.v_number;
+ if (alloc_fail_id >= aid_last)
+! emsg(_(e_invarg));
+ alloc_fail_countdown = argvars[1].vval.v_number;
+ alloc_fail_repeat = argvars[2].vval.v_number;
+ did_outofmem_msg = FALSE;
+***************
+*** 13830,13841 ****
+ char_u *name = (char_u *)"";
+
+ if (argvars[0].v_type != VAR_STRING)
+! EMSG(_(e_invarg));
+ else
+ {
+ name = tv_get_string(&argvars[0]);
+ if (reset_option_was_set(name) == FAIL)
+! EMSG2(_(e_invarg2), name);
+ }
+ }
+
+--- 13830,13841 ----
+ char_u *name = (char_u *)"";
+
+ if (argvars[0].v_type != VAR_STRING)
+! emsg(_(e_invarg));
+ else
+ {
+ name = tv_get_string(&argvars[0]);
+ if (reset_option_was_set(name) == FAIL)
+! semsg(_(e_invarg2), name);
+ }
+ }
+
+***************
+*** 13851,13857 ****
+
+ if (argvars[0].v_type != VAR_STRING
+ || (argvars[1].v_type) != VAR_NUMBER)
+! EMSG(_(e_invarg));
+ else
+ {
+ name = tv_get_string(&argvars[0]);
+--- 13851,13857 ----
+
+ if (argvars[0].v_type != VAR_STRING
+ || (argvars[1].v_type) != VAR_NUMBER)
+! emsg(_(e_invarg));
+ else
+ {
+ name = tv_get_string(&argvars[0]);
+***************
+*** 13892,13898 ****
+ }
+ }
+ else
+! EMSG2(_(e_invarg2), name);
+ }
+ }
+
+--- 13892,13898 ----
+ }
+ }
+ else
+! semsg(_(e_invarg2), name);
+ }
+ }
+
+***************
+*** 13980,13986 ****
+ || (argvars[1].v_type) != VAR_NUMBER
+ || (argvars[2].v_type) != VAR_NUMBER)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ which = tv_get_string(&argvars[0]);
+--- 13980,13986 ----
+ || (argvars[1].v_type) != VAR_NUMBER
+ || (argvars[2].v_type) != VAR_NUMBER)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ which = tv_get_string(&argvars[0]);
+***************
+*** 13995,14001 ****
+ sb = &gui.bottom_sbar;
+ if (sb == NULL)
+ {
+! EMSG2(_(e_invarg2), which);
+ return;
+ }
+ gui_drag_scrollbar(sb, value, dragging);
+--- 13995,14001 ----
+ sb = &gui.bottom_sbar;
+ if (sb == NULL)
+ {
+! semsg(_(e_invarg2), which);
+ return;
+ }
+ gui_drag_scrollbar(sb, value, dragging);
+***************
+*** 14035,14041 ****
+ }
+ if (arg->v_type == VAR_NUMBER && arg->vval.v_number == 0)
+ return (char_u *)"";
+! EMSG(_("E921: Invalid callback argument"));
+ return NULL;
+ }
+
+--- 14035,14041 ----
+ }
+ if (arg->v_type == VAR_NUMBER && arg->vval.v_number == 0)
+ return (char_u *)"";
+! emsg(_("E921: Invalid callback argument"));
+ return NULL;
+ }
+
+***************
+*** 14069,14075 ****
+ if (argvars[0].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[0].v_type != VAR_NUMBER)
+! EMSG(_(e_number_exp));
+ else
+ {
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+--- 14069,14075 ----
+ if (argvars[0].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[0].v_type != VAR_NUMBER)
+! emsg(_(e_number_exp));
+ else
+ {
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+***************
+*** 14091,14097 ****
+ int paused = (int)tv_get_number(&argvars[1]);
+
+ if (argvars[0].v_type != VAR_NUMBER)
+! EMSG(_(e_number_exp));
+ else
+ {
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+--- 14091,14097 ----
+ int paused = (int)tv_get_number(&argvars[1]);
+
+ if (argvars[0].v_type != VAR_NUMBER)
+! emsg(_(e_number_exp));
+ else
+ {
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+***************
+*** 14121,14127 ****
+ if (argvars[2].v_type != VAR_DICT
+ || (dict = argvars[2].vval.v_dict) == NULL)
+ {
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[2]));
+ return;
+ }
+ if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
+--- 14121,14127 ----
+ if (argvars[2].v_type != VAR_DICT
+ || (dict = argvars[2].vval.v_dict) == NULL)
+ {
+! semsg(_(e_invarg2), tv_get_string(&argvars[2]));
+ return;
+ }
+ if (dict_find(dict, (char_u *)"repeat", -1) != NULL)
+***************
+*** 14157,14163 ****
+
+ if (argvars[0].v_type != VAR_NUMBER)
+ {
+! EMSG(_(e_number_exp));
+ return;
+ }
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+--- 14157,14163 ----
+
+ if (argvars[0].v_type != VAR_NUMBER)
+ {
+! emsg(_(e_number_exp));
+ return;
+ }
+ timer = find_timer((int)tv_get_number(&argvars[0]));
+***************
+*** 14238,14244 ****
+ #ifdef FEAT_MBYTE
+ error:
+ #endif
+! EMSG2(_(e_invarg2), fromstr);
+ ga_clear(&ga);
+ return;
+ }
+--- 14238,14244 ----
+ #ifdef FEAT_MBYTE
+ error:
+ #endif
+! semsg(_(e_invarg2), fromstr);
+ ga_clear(&ga);
+ return;
+ }
+***************
+*** 14673,14679 ****
+
+ if (argvars[0].v_type != VAR_DICT
+ || (dict = argvars[0].vval.v_dict) == NULL)
+! EMSG(_(e_invarg));
+ else
+ {
+ if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
+--- 14673,14679 ----
+
+ if (argvars[0].v_type != VAR_DICT
+ || (dict = argvars[0].vval.v_dict) == NULL)
+! emsg(_(e_invarg));
+ else
+ {
+ if (dict_find(dict, (char_u *)"lnum", -1) != NULL)
+***************
+*** 14809,14815 ****
+ }
+ else
+ {
+! EMSG2(_(e_invarg2), "writefile()");
+ return;
+ }
+
+--- 14809,14815 ----
+ }
+ else
+ {
+! semsg(_(e_invarg2), "writefile()");
+ return;
+ }
+
+***************
+*** 14840,14846 ****
+ if (*fname == NUL || (fd = mch_fopen((char *)fname,
+ append ? APPENDBIN : WRITEBIN)) == NULL)
+ {
+! EMSG2(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ ret = -1;
+ }
+ else if (blob)
+--- 14840,14846 ----
+ if (*fname == NUL || (fd = mch_fopen((char *)fname,
+ append ? APPENDBIN : WRITEBIN)) == NULL)
+ {
+! semsg(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ ret = -1;
+ }
+ else if (blob)
+*** ../vim-8.1.0742/src/ex_cmds.c 2019-01-04 23:09:45.249360567 +0100
+--- src/ex_cmds.c 2019-01-13 20:01:49.527319274 +0100
+***************
+*** 467,473 ****
+ s = skip_regexp(p + 1, *p, TRUE, NULL);
+ if (*s != *p)
+ {
+! EMSG(_(e_invalpat));
+ goto sortend;
+ }
+ *s = NUL;
+--- 467,473 ----
+ s = skip_regexp(p + 1, *p, TRUE, NULL);
+ if (*s != *p)
+ {
+! emsg(_(e_invalpat));
+ goto sortend;
+ }
+ *s = NUL;
+***************
+*** 476,482 ****
+ {
+ if (last_search_pat() == NULL)
+ {
+! EMSG(_(e_noprevre));
+ goto sortend;
+ }
+ regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+--- 476,482 ----
+ {
+ if (last_search_pat() == NULL)
+ {
+! emsg(_(e_noprevre));
+ goto sortend;
+ }
+ regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+***************
+*** 490,496 ****
+ }
+ else
+ {
+! EMSG2(_(e_invarg2), p);
+ goto sortend;
+ }
+ }
+--- 490,496 ----
+ }
+ else
+ {
+! semsg(_(e_invarg2), p);
+ goto sortend;
+ }
+ }
+***************
+*** 498,504 ****
+ /* Can only have one of 'n', 'b', 'o' and 'x'. */
+ if (format_found > 1)
+ {
+! EMSG(_(e_invarg));
+ goto sortend;
+ }
+
+--- 498,504 ----
+ /* Can only have one of 'n', 'b', 'o' and 'x'. */
+ if (format_found > 1)
+ {
+! emsg(_(e_invarg));
+ goto sortend;
+ }
+
+***************
+*** 668,674 ****
+ vim_free(sortbuf2);
+ vim_regfree(regmatch.regprog);
+ if (got_int)
+! EMSG(_(e_interr));
+ }
+
+ /*
+--- 668,674 ----
+ vim_free(sortbuf2);
+ vim_regfree(regmatch.regprog);
+ if (got_int)
+! emsg(_(e_interr));
+ }
+
+ /*
+***************
+*** 725,731 ****
+ new_ts = getdigits(&(eap->arg));
+ if (new_ts < 0)
+ {
+! EMSG(_(e_positive));
+ return;
+ }
+ if (new_ts == 0)
+--- 725,731 ----
+ new_ts = getdigits(&(eap->arg));
+ if (new_ts < 0)
+ {
+! emsg(_(e_positive));
+ return;
+ }
+ if (new_ts == 0)
+***************
+*** 835,841 ****
+ line_breakcheck();
+ }
+ if (got_int)
+! EMSG(_(e_interr));
+
+ #ifdef FEAT_VARTABS
+ // If a single value was given then it can be considered equal to
+--- 835,841 ----
+ line_breakcheck();
+ }
+ if (got_int)
+! emsg(_(e_interr));
+
+ #ifdef FEAT_VARTABS
+ // If a single value was given then it can be considered equal to
+***************
+*** 909,915 ****
+
+ if (dest >= line1 && dest < line2)
+ {
+! EMSG(_("E134: Cannot move a range of lines into itself"));
+ return FAIL;
+ }
+
+--- 909,915 ----
+
+ if (dest >= line1 && dest < line2)
+ {
+! emsg(_("E134: Cannot move a range of lines into itself"));
+ return FAIL;
+ }
+
+***************
+*** 1002,1008 ****
+ ml_delete(line1 + extra, TRUE);
+
+ if (!global_busy && num_lines > p_report)
+! smsg((char_u *)NGETTEXT("%ld line moved", "%ld lines moved", num_lines),
+ (long)num_lines);
+
+ /*
+--- 1002,1008 ----
+ ml_delete(line1 + extra, TRUE);
+
+ if (!global_busy && num_lines > p_report)
+! smsg(NGETTEXT("%ld line moved", "%ld lines moved", num_lines),
+ (long)num_lines);
+
+ /*
+***************
+*** 1147,1153 ****
+ {
+ if (prevcmd == NULL)
+ {
+! EMSG(_(e_noprev));
+ vim_free(newcmd);
+ return;
+ }
+--- 1147,1153 ----
+ {
+ if (prevcmd == NULL)
+ {
+! emsg(_(e_noprev));
+ vim_free(newcmd);
+ return;
+ }
+***************
+*** 1334,1340 ****
+ if ((do_in && (itmp = vim_tempname('i', FALSE)) == NULL)
+ || (do_out && (otmp = vim_tempname('o', FALSE)) == NULL))
+ {
+! EMSG(_(e_notmp));
+ goto filterend;
+ }
+
+--- 1334,1340 ----
+ if ((do_in && (itmp = vim_tempname('i', FALSE)) == NULL)
+ || (do_out && (otmp = vim_tempname('o', FALSE)) == NULL))
+ {
+! emsg(_(e_notmp));
+ goto filterend;
+ }
+
+***************
+*** 1351,1357 ****
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! (void)EMSG2(_(e_notcreate), itmp); /* will call wait_return */
+ goto filterend;
+ }
+ if (curbuf != old_curbuf)
+--- 1351,1357 ----
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! (void)semsg(_(e_notcreate), itmp); /* will call wait_return */
+ goto filterend;
+ }
+ if (curbuf != old_curbuf)
+***************
+*** 1426,1432 ****
+ #endif
+ {
+ msg_putchar('\n');
+! EMSG2(_(e_notread), otmp);
+ }
+ goto error;
+ }
+--- 1426,1432 ----
+ #endif
+ {
+ msg_putchar('\n');
+! semsg(_(e_notread), otmp);
+ }
+ goto error;
+ }
+***************
+*** 1514,1520 ****
+ if (curbuf != old_curbuf)
+ {
+ --no_wait_return;
+! EMSG(_("E135: *Filter* Autocommands must not change current buffer"));
+ }
+ if (itmp != NULL)
+ mch_remove(itmp);
+--- 1514,1520 ----
+ if (curbuf != old_curbuf)
+ {
+ --no_wait_return;
+! emsg(_("E135: *Filter* Autocommands must not change current buffer"));
+ }
+ if (itmp != NULL)
+ mch_remove(itmp);
+***************
+*** 1871,1880 ****
+ STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff) - 1);
+ if (IObuff[STRLEN(IObuff) - 1] == '\n')
+ IObuff[STRLEN(IObuff) - 1] = NUL;
+! emsg(IObuff);
+ if (++viminfo_errcnt >= 10)
+ {
+! EMSG(_("E136: viminfo: Too many errors, skipping rest of file"));
+ return TRUE;
+ }
+ return FALSE;
+--- 1871,1880 ----
+ STRNCAT(IObuff, line, IOSIZE - STRLEN(IObuff) - 1);
+ if (IObuff[STRLEN(IObuff) - 1] == '\n')
+ IObuff[STRLEN(IObuff) - 1] = NUL;
+! emsg((char *)IObuff);
+ if (++viminfo_errcnt >= 10)
+ {
+! emsg(_("E136: viminfo: Too many errors, skipping rest of file"));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 1903,1909 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
+ fname,
+ (flags & VIF_WANT_INFO) ? _(" info") : "",
+ (flags & VIF_WANT_MARKS) ? _(" marks") : "",
+--- 1903,1909 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Reading viminfo file \"%s\"%s%s%s"),
+ fname,
+ (flags & VIF_WANT_INFO) ? _(" info") : "",
+ (flags & VIF_WANT_MARKS) ? _(" marks") : "",
+***************
+*** 2003,2009 ****
+ int tt = msg_didany;
+
+ /* avoid a wait_return for this message, it's annoying */
+! EMSG2(_("E137: Viminfo file is not writable: %s"), fname);
+ msg_didany = tt;
+ fclose(fp_in);
+ goto end;
+--- 2003,2009 ----
+ int tt = msg_didany;
+
+ /* avoid a wait_return for this message, it's annoying */
+! semsg(_("E137: Viminfo file is not writable: %s"), fname);
+ msg_didany = tt;
+ fclose(fp_in);
+ goto end;
+***************
+*** 2126,2132 ****
+ {
+ /* They all exist? Must be something wrong! Don't write
+ * the viminfo file then. */
+! EMSG2(_("E929: Too many viminfo temp files, like %s!"),
+ tempname);
+ break;
+ }
+--- 2126,2132 ----
+ {
+ /* They all exist? Must be something wrong! Don't write
+ * the viminfo file then. */
+! semsg(_("E929: Too many viminfo temp files, like %s!"),
+ tempname);
+ break;
+ }
+***************
+*** 2172,2178 ****
+ */
+ if (fp_out == NULL)
+ {
+! EMSG2(_("E138: Can't write viminfo file %s!"),
+ (fp_in == NULL || tempname == NULL) ? fname : tempname);
+ if (fp_in != NULL)
+ fclose(fp_in);
+--- 2172,2178 ----
+ */
+ if (fp_out == NULL)
+ {
+! semsg(_("E138: Can't write viminfo file %s!"),
+ (fp_in == NULL || tempname == NULL) ? fname : tempname);
+ if (fp_in != NULL)
+ fclose(fp_in);
+***************
+*** 2182,2188 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Writing viminfo file \"%s\""), fname);
+ verbose_leave();
+ }
+
+--- 2182,2188 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Writing viminfo file \"%s\""), fname);
+ verbose_leave();
+ }
+
+***************
+*** 2203,2209 ****
+ if (vim_rename(tempname, fname) == -1)
+ {
+ ++viminfo_errcnt;
+! EMSG2(_("E886: Can't rename viminfo file to %s!"), fname);
+ }
+ # ifdef WIN3264
+ /* If the viminfo file was hidden then also hide the new file. */
+--- 2203,2209 ----
+ if (vim_rename(tempname, fname) == -1)
+ {
+ ++viminfo_errcnt;
+! semsg(_("E886: Can't rename viminfo file to %s!"), fname);
+ }
+ # ifdef WIN3264
+ /* If the viminfo file was hidden then also hide the new file. */
+***************
+*** 3127,3133 ****
+ || eap->line2 > 0
+ || eap->addr_count > 1))
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 3127,3133 ----
+ || eap->line2 > 0
+ || eap->addr_count > 1))
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 3205,3211 ****
+ {
+ if (eap->cmdidx == CMD_saveas)
+ {
+! EMSG(_(e_argreq));
+ goto theend;
+ }
+ other = FALSE;
+--- 3205,3211 ----
+ {
+ if (eap->cmdidx == CMD_saveas)
+ {
+! emsg(_(e_argreq));
+ goto theend;
+ }
+ other = FALSE;
+***************
+*** 3237,3243 ****
+ {
+ /* Overwriting a file that is loaded in another buffer is not a
+ * good idea. */
+! EMSG(_(e_bufloaded));
+ goto theend;
+ }
+ }
+--- 3237,3243 ----
+ {
+ /* Overwriting a file that is loaded in another buffer is not a
+ * good idea. */
+! emsg(_(e_bufloaded));
+ goto theend;
+ }
+ }
+***************
+*** 3278,3284 ****
+ else
+ #endif
+ {
+! EMSG(_("E140: Use ! to write partial buffer"));
+ goto theend;
+ }
+ }
+--- 3278,3284 ----
+ else
+ #endif
+ {
+! emsg(_("E140: Use ! to write partial buffer"));
+ goto theend;
+ }
+ }
+***************
+*** 3417,3423 ****
+ /* with UNIX it is possible to open a directory */
+ if (mch_isdir(ffname))
+ {
+! EMSG2(_(e_isadir2), ffname);
+ return FAIL;
+ }
+ #endif
+--- 3417,3423 ----
+ /* with UNIX it is possible to open a directory */
+ if (mch_isdir(ffname))
+ {
+! semsg(_(e_isadir2), ffname);
+ return FAIL;
+ }
+ #endif
+***************
+*** 3434,3440 ****
+ else
+ #endif
+ {
+! EMSG(_(e_exists));
+ return FAIL;
+ }
+ }
+--- 3434,3440 ----
+ else
+ #endif
+ {
+! emsg(_(e_exists));
+ return FAIL;
+ }
+ }
+***************
+*** 3491,3497 ****
+ else
+ #endif
+ {
+! EMSG2(_("E768: Swap file exists: %s (:silent! overrides)"),
+ swapname);
+ vim_free(swapname);
+ return FAIL;
+--- 3491,3497 ----
+ else
+ #endif
+ {
+! semsg(_("E768: Swap file exists: %s (:silent! overrides)"),
+ swapname);
+ vim_free(swapname);
+ return FAIL;
+***************
+*** 3565,3571 ****
+ #endif
+ if (buf->b_ffname == NULL)
+ {
+! EMSGN(_("E141: No file name for buffer %ld"), (long)buf->b_fnum);
+ ++error;
+ }
+ else if (check_readonly(&eap->forceit, buf)
+--- 3565,3571 ----
+ #endif
+ if (buf->b_ffname == NULL)
+ {
+! semsg(_("E141: No file name for buffer %ld"), (long)buf->b_fnum);
+ ++error;
+ }
+ else if (check_readonly(&eap->forceit, buf)
+***************
+*** 3605,3611 ****
+ {
+ if (p_write)
+ return FALSE;
+! EMSG(_("E142: File not written: Writing is disabled by 'write' option"));
+ return TRUE;
+ }
+
+--- 3605,3611 ----
+ {
+ if (p_write)
+ return FALSE;
+! emsg(_("E142: File not written: Writing is disabled by 'write' option"));
+ return TRUE;
+ }
+
+***************
+*** 3651,3659 ****
+ else
+ #endif
+ if (buf->b_p_ro)
+! EMSG(_(e_readonly));
+ else
+! EMSG2(_("E505: \"%s\" is read-only (add ! to override)"),
+ buf->b_fname);
+ return TRUE;
+ }
+--- 3651,3659 ----
+ else
+ #endif
+ if (buf->b_p_ro)
+! emsg(_(e_readonly));
+ else
+! semsg(_("E505: \"%s\" is read-only (add ! to override)"),
+ buf->b_fname);
+ return TRUE;
+ }
+***************
+*** 4488,4494 ****
+ static void
+ delbuf_msg(char_u *name)
+ {
+! EMSG2(_("E143: Autocommands unexpectedly deleted new buffer %s"),
+ name == NULL ? (char_u *)"" : name);
+ vim_free(name);
+ au_new_curbuf.br_buf = NULL;
+--- 4488,4494 ----
+ static void
+ delbuf_msg(char_u *name)
+ {
+! semsg(_("E143: Autocommands unexpectedly deleted new buffer %s"),
+ name == NULL ? (char_u *)"" : name);
+ vim_free(name);
+ au_new_curbuf.br_buf = NULL;
+***************
+*** 4707,4713 ****
+ {
+ if (!VIM_ISDIGIT(*x))
+ {
+! EMSG(_("E144: non-numeric argument to :z"));
+ return;
+ }
+ else
+--- 4707,4713 ----
+ {
+ if (!VIM_ISDIGIT(*x))
+ {
+! emsg(_("E144: non-numeric argument to :z"));
+ return;
+ }
+ else
+***************
+*** 4817,4823 ****
+ {
+ if (restricted)
+ {
+! EMSG(_("E145: Shell commands not allowed in rvim"));
+ return TRUE;
+ }
+ return FALSE;
+--- 4817,4823 ----
+ {
+ if (restricted)
+ {
+! emsg(_("E145: Shell commands not allowed in rvim"));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 4834,4840 ****
+ if (secure)
+ {
+ secure = 2;
+! EMSG(_(e_curdir));
+ return TRUE;
+ }
+ #ifdef HAVE_SANDBOX
+--- 4834,4840 ----
+ if (secure)
+ {
+ secure = 2;
+! emsg(_(e_curdir));
+ return TRUE;
+ }
+ #ifdef HAVE_SANDBOX
+***************
+*** 4844,4850 ****
+ */
+ if (sandbox != 0)
+ {
+! EMSG(_(e_sandbox));
+ return TRUE;
+ }
+ #endif
+--- 4844,4850 ----
+ */
+ if (sandbox != 0)
+ {
+! emsg(_(e_sandbox));
+ return TRUE;
+ }
+ #endif
+***************
+*** 4933,4939 ****
+ /* don't accept alphanumeric for separator */
+ if (isalpha(*cmd))
+ {
+! EMSG(_("E146: Regular expressions can't be delimited by letters"));
+ return;
+ }
+ /*
+--- 4933,4939 ----
+ /* don't accept alphanumeric for separator */
+ if (isalpha(*cmd))
+ {
+! emsg(_("E146: Regular expressions can't be delimited by letters"));
+ return;
+ }
+ /*
+***************
+*** 4946,4952 ****
+ ++cmd;
+ if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
+ {
+! EMSG(_(e_backslash));
+ return;
+ }
+ if (*cmd != '&')
+--- 4946,4952 ----
+ ++cmd;
+ if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
+ {
+! emsg(_(e_backslash));
+ return;
+ }
+ if (*cmd != '&')
+***************
+*** 4994,5000 ****
+ {
+ if (old_sub == NULL) /* there is no previous command */
+ {
+! EMSG(_(e_nopresub));
+ return;
+ }
+ sub = old_sub;
+--- 4994,5000 ----
+ {
+ if (old_sub == NULL) /* there is no previous command */
+ {
+! emsg(_(e_nopresub));
+ return;
+ }
+ sub = old_sub;
+***************
+*** 5010,5016 ****
+ {
+ if (old_sub == NULL) /* there is no previous command */
+ {
+! EMSG(_(e_nopresub));
+ return;
+ }
+ pat = NULL; /* search_regcomp() will use previous pattern */
+--- 5010,5016 ----
+ {
+ if (old_sub == NULL) /* there is no previous command */
+ {
+! emsg(_(e_nopresub));
+ return;
+ }
+ pat = NULL; /* search_regcomp() will use previous pattern */
+***************
+*** 5137,5143 ****
+ i = getdigits(&cmd);
+ if (i <= 0 && !eap->skip && subflags.do_error)
+ {
+! EMSG(_(e_zerocount));
+ return;
+ }
+ eap->line1 = eap->line2;
+--- 5137,5143 ----
+ i = getdigits(&cmd);
+ if (i <= 0 && !eap->skip && subflags.do_error)
+ {
+! emsg(_(e_zerocount));
+ return;
+ }
+ eap->line1 = eap->line2;
+***************
+*** 5155,5161 ****
+ eap->nextcmd = check_nextcmd(cmd);
+ if (eap->nextcmd == NULL)
+ {
+! EMSG(_(e_trailing));
+ return;
+ }
+ }
+--- 5155,5161 ----
+ eap->nextcmd = check_nextcmd(cmd);
+ if (eap->nextcmd == NULL)
+ {
+! emsg(_(e_trailing));
+ return;
+ }
+ }
+***************
+*** 5166,5179 ****
+ if (!subflags.do_count && !curbuf->b_p_ma)
+ {
+ /* Substitution is not allowed in non-'modifiable' buffer */
+! EMSG(_(e_modifiable));
+ return;
+ }
+
+ if (search_regcomp(pat, RE_SUBST, which_pat, SEARCH_HIS, &regmatch) == FAIL)
+ {
+ if (subflags.do_error)
+! EMSG(_(e_invcmd));
+ return;
+ }
+
+--- 5166,5179 ----
+ if (!subflags.do_count && !curbuf->b_p_ma)
+ {
+ /* Substitution is not allowed in non-'modifiable' buffer */
+! emsg(_(e_modifiable));
+ return;
+ }
+
+ if (search_regcomp(pat, RE_SUBST, which_pat, SEARCH_HIS, &regmatch) == FAIL)
+ {
+ if (subflags.do_error)
+! emsg(_(e_invcmd));
+ return;
+ }
+
+***************
+*** 5496,5502 ****
+ /* write message same highlighting as for
+ * wait_return */
+ smsg_attr(HL_ATTR(HLF_R),
+! (char_u *)_("replace with %s (y/n/a/q/l/^E/^Y)?"), sub);
+ msg_no_more = FALSE;
+ msg_scroll = i;
+ showruler(TRUE);
+--- 5496,5502 ----
+ /* write message same highlighting as for
+ * wait_return */
+ smsg_attr(HL_ATTR(HLF_R),
+! _("replace with %s (y/n/a/q/l/^E/^Y)?"), sub);
+ msg_no_more = FALSE;
+ msg_scroll = i;
+ showruler(TRUE);
+***************
+*** 5949,5959 ****
+ else if (!global_busy)
+ {
+ if (got_int) /* interrupted */
+! EMSG(_(e_interr));
+ else if (got_match) /* did find something but nothing substituted */
+ MSG("");
+ else if (subflags.do_error) /* nothing found */
+! EMSG2(_(e_patnotf2), get_search_pat());
+ }
+
+ #ifdef FEAT_FOLDING
+--- 5949,5959 ----
+ else if (!global_busy)
+ {
+ if (got_int) /* interrupted */
+! emsg(_(e_interr));
+ else if (got_match) /* did find something but nothing substituted */
+ MSG("");
+ else if (subflags.do_error) /* nothing found */
+! semsg(_(e_patnotf2), get_search_pat());
+ }
+
+ #ifdef FEAT_FOLDING
+***************
+*** 6018,6024 ****
+ }
+ if (got_int)
+ {
+! EMSG(_(e_interr));
+ return TRUE;
+ }
+ return FALSE;
+--- 6018,6024 ----
+ }
+ if (got_int)
+ {
+! emsg(_(e_interr));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 6071,6077 ****
+ || eap->line2 != curbuf->b_ml.ml_line_count))
+ {
+ /* will increment global_busy to break out of the loop */
+! EMSG(_("E147: Cannot do :global recursive with a range"));
+ return;
+ }
+
+--- 6071,6077 ----
+ || eap->line2 != curbuf->b_ml.ml_line_count))
+ {
+ /* will increment global_busy to break out of the loop */
+! emsg(_("E147: Cannot do :global recursive with a range"));
+ return;
+ }
+
+***************
+*** 6092,6098 ****
+ ++cmd;
+ if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
+ {
+! EMSG(_(e_backslash));
+ return;
+ }
+ if (*cmd == '&')
+--- 6092,6098 ----
+ ++cmd;
+ if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
+ {
+! emsg(_(e_backslash));
+ return;
+ }
+ if (*cmd == '&')
+***************
+*** 6104,6110 ****
+ }
+ else if (*cmd == NUL)
+ {
+! EMSG(_("E148: Regular expression missing from global"));
+ return;
+ }
+ else
+--- 6104,6110 ----
+ }
+ else if (*cmd == NUL)
+ {
+! emsg(_("E148: Regular expression missing from global"));
+ return;
+ }
+ else
+***************
+*** 6125,6131 ****
+
+ if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, &regmatch) == FAIL)
+ {
+! EMSG(_(e_invcmd));
+ return;
+ }
+
+--- 6125,6131 ----
+
+ if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, &regmatch) == FAIL)
+ {
+! emsg(_(e_invcmd));
+ return;
+ }
+
+***************
+*** 6163,6171 ****
+ else if (ndone == 0)
+ {
+ if (type == 'v')
+! smsg((char_u *)_("Pattern found in every line: %s"), pat);
+ else
+! smsg((char_u *)_("Pattern not found: %s"), pat);
+ }
+ else
+ {
+--- 6163,6171 ----
+ else if (ndone == 0)
+ {
+ if (type == 'v')
+! smsg(_("Pattern found in every line: %s"), pat);
+ else
+! smsg(_("Pattern not found: %s"), pat);
+ }
+ else
+ {
+***************
+*** 6366,6372 ****
+
+ if (eap->forceit && *arg == NUL && !curbuf->b_help)
+ {
+! EMSG(_("E478: Don't panic!"));
+ return;
+ }
+
+--- 6366,6372 ----
+
+ if (eap->forceit && *arg == NUL && !curbuf->b_help)
+ {
+! emsg(_("E478: Don't panic!"));
+ return;
+ }
+
+***************
+*** 6412,6421 ****
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (lang != NULL)
+! EMSG3(_("E661: Sorry, no '%s' help for %s"), lang, arg);
+ else
+ #endif
+! EMSG2(_("E149: Sorry, no help for %s"), arg);
+ if (n != FAIL)
+ FreeWild(num_matches, matches);
+ return;
+--- 6412,6421 ----
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (lang != NULL)
+! semsg(_("E661: Sorry, no '%s' help for %s"), lang, arg);
+ else
+ #endif
+! semsg(_("E149: Sorry, no help for %s"), arg);
+ if (n != FAIL)
+ FreeWild(num_matches, matches);
+ return;
+***************
+*** 6451,6457 ****
+ */
+ if ((helpfd = mch_fopen((char *)p_hf, READBIN)) == NULL)
+ {
+! smsg((char_u *)_("Sorry, help file \"%s\" not found"), p_hf);
+ goto erret;
+ }
+ fclose(helpfd);
+--- 6451,6457 ----
+ */
+ if ((helpfd = mch_fopen((char *)p_hf, READBIN)) == NULL)
+ {
+! smsg(_("Sorry, help file \"%s\" not found"), p_hf);
+ goto erret;
+ }
+ fclose(helpfd);
+***************
+*** 7230,7236 ****
+ || filecount == 0)
+ {
+ if (!got_int)
+! EMSG2(_("E151: No match: %s"), NameBuff);
+ return;
+ }
+
+--- 7230,7236 ----
+ || filecount == 0)
+ {
+ if (!got_int)
+! semsg(_("E151: No match: %s"), NameBuff);
+ return;
+ }
+
+***************
+*** 7244,7250 ****
+ fd_tags = mch_fopen((char *)NameBuff, "w");
+ if (fd_tags == NULL)
+ {
+! EMSG2(_("E152: Cannot open %s for writing"), NameBuff);
+ FreeWild(filecount, files);
+ return;
+ }
+--- 7244,7250 ----
+ fd_tags = mch_fopen((char *)NameBuff, "w");
+ if (fd_tags == NULL)
+ {
+! semsg(_("E152: Cannot open %s for writing"), NameBuff);
+ FreeWild(filecount, files);
+ return;
+ }
+***************
+*** 7281,7287 ****
+ fd = mch_fopen((char *)files[fi], "r");
+ if (fd == NULL)
+ {
+! EMSG2(_("E153: Unable to open %s for reading"), files[fi]);
+ continue;
+ }
+ fname = files[fi] + dirlen + 1;
+--- 7281,7287 ----
+ fd = mch_fopen((char *)files[fi], "r");
+ if (fd == NULL)
+ {
+! semsg(_("E153: Unable to open %s for reading"), files[fi]);
+ continue;
+ }
+ fname = files[fi] + dirlen + 1;
+***************
+*** 7317,7323 ****
+ utf8 = this_utf8;
+ else if (utf8 != this_utf8)
+ {
+! EMSG2(_("E670: Mix of help file encodings within a language: %s"), files[fi]);
+ mix = !got_int;
+ got_int = TRUE;
+ }
+--- 7317,7323 ----
+ utf8 = this_utf8;
+ else if (utf8 != this_utf8)
+ {
+! semsg(_("E670: Mix of help file encodings within a language: %s"), files[fi]);
+ mix = !got_int;
+ got_int = TRUE;
+ }
+***************
+*** 7401,7407 ****
+ vim_snprintf((char *)NameBuff, MAXPATHL,
+ _("E154: Duplicate tag \"%s\" in file %s/%s"),
+ ((char_u **)ga.ga_data)[i], dir, p2 + 1);
+! EMSG(NameBuff);
+ *p2 = '\t';
+ break;
+ }
+--- 7401,7407 ----
+ vim_snprintf((char *)NameBuff, MAXPATHL,
+ _("E154: Duplicate tag \"%s\" in file %s/%s"),
+ ((char_u **)ga.ga_data)[i], dir, p2 + 1);
+! emsg((char *)NameBuff);
+ *p2 = '\t';
+ break;
+ }
+***************
+*** 7473,7479 ****
+ EW_FILE|EW_SILENT) == FAIL
+ || filecount == 0)
+ {
+! EMSG2(_("E151: No match: %s"), NameBuff);
+ return;
+ }
+
+--- 7473,7479 ----
+ EW_FILE|EW_SILENT) == FAIL
+ || filecount == 0)
+ {
+! semsg(_("E151: No match: %s"), NameBuff);
+ return;
+ }
+
+***************
+*** 7586,7592 ****
+ dirname = ExpandOne(&xpc, eap->arg, NULL,
+ WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
+ if (dirname == NULL || !mch_isdir(dirname))
+! EMSG2(_("E150: Not a directory: %s"), eap->arg);
+ else
+ do_helptags(dirname, add_help_tags);
+ vim_free(dirname);
+--- 7586,7592 ----
+ dirname = ExpandOne(&xpc, eap->arg, NULL,
+ WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
+ if (dirname == NULL || !mch_isdir(dirname))
+! semsg(_("E150: Not a directory: %s"), eap->arg);
+ else
+ do_helptags(dirname, add_help_tags);
+ vim_free(dirname);
+*** ../vim-8.1.0742/src/ex_cmds.h 2019-01-08 22:02:36.044297306 +0100
+--- src/ex_cmds.h 2019-01-13 20:24:01.272847911 +0100
+***************
+*** 1799,1805 ****
+ #ifdef FEAT_USR_CMDS
+ int useridx; /* user command index */
+ #endif
+! char_u *errmsg; /* returned error message */
+ char_u *(*getline)(int, void *, int);
+ void *cookie; /* argument for getline() */
+ #ifdef FEAT_EVAL
+--- 1799,1805 ----
+ #ifdef FEAT_USR_CMDS
+ int useridx; /* user command index */
+ #endif
+! char *errmsg; /* returned error message */
+ char_u *(*getline)(int, void *, int);
+ void *cookie; /* argument for getline() */
+ #ifdef FEAT_EVAL
+*** ../vim-8.1.0742/src/ex_cmds2.c 2019-01-12 15:15:34.089783011 +0100
+--- src/ex_cmds2.c 2019-01-13 19:48:43.978119627 +0100
+***************
+*** 146,167 ****
+ MSG(_("Entering Debug mode. Type \"cont\" to continue."));
+ if (debug_oldval != NULL)
+ {
+! smsg((char_u *)_("Oldval = \"%s\""), debug_oldval);
+ vim_free(debug_oldval);
+ debug_oldval = NULL;
+ }
+ if (debug_newval != NULL)
+ {
+! smsg((char_u *)_("Newval = \"%s\""), debug_newval);
+ vim_free(debug_newval);
+ debug_newval = NULL;
+ }
+ if (sourcing_name != NULL)
+ msg(sourcing_name);
+ if (sourcing_lnum != 0)
+! smsg((char_u *)_("line %ld: %s"), (long)sourcing_lnum, cmd);
+ else
+! smsg((char_u *)_("cmd: %s"), cmd);
+ /*
+ * Repeat getting a command and executing it.
+ */
+--- 146,167 ----
+ MSG(_("Entering Debug mode. Type \"cont\" to continue."));
+ if (debug_oldval != NULL)
+ {
+! smsg(_("Oldval = \"%s\""), debug_oldval);
+ vim_free(debug_oldval);
+ debug_oldval = NULL;
+ }
+ if (debug_newval != NULL)
+ {
+! smsg(_("Newval = \"%s\""), debug_newval);
+ vim_free(debug_newval);
+ debug_newval = NULL;
+ }
+ if (sourcing_name != NULL)
+ msg(sourcing_name);
+ if (sourcing_lnum != 0)
+! smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd);
+ else
+! smsg(_("cmd: %s"), cmd);
+ /*
+ * Repeat getting a command and executing it.
+ */
+***************
+*** 399,405 ****
+ if (debug_backtrace_level > max)
+ {
+ debug_backtrace_level = max;
+! smsg((char_u *)_("frame at highest level: %d"), max);
+ }
+ }
+ }
+--- 399,405 ----
+ if (debug_backtrace_level > max)
+ {
+ debug_backtrace_level = max;
+! smsg(_("frame at highest level: %d"), max);
+ }
+ }
+ }
+***************
+*** 421,429 ****
+ if (next != NULL)
+ *next = NUL;
+ if (i == max - debug_backtrace_level)
+! smsg((char_u *)"->%d %s", max - i, cur);
+ else
+! smsg((char_u *)" %d %s", max - i, cur);
+ ++i;
+ if (next == NULL)
+ break;
+--- 421,429 ----
+ if (next != NULL)
+ *next = NUL;
+ if (i == max - debug_backtrace_level)
+! smsg("->%d %s", max - i, cur);
+ else
+! smsg(" %d %s", max - i, cur);
+ ++i;
+ if (next == NULL)
+ break;
+***************
+*** 432,440 ****
+ }
+ }
+ if (sourcing_lnum != 0)
+! smsg((char_u *)_("line %ld: %s"), (long)sourcing_lnum, cmd);
+ else
+! smsg((char_u *)_("cmd: %s"), cmd);
+ }
+
+ /*
+--- 432,440 ----
+ }
+ }
+ if (sourcing_lnum != 0)
+! smsg(_("line %ld: %s"), (long)sourcing_lnum, cmd);
+ else
+! smsg(_("cmd: %s"), cmd);
+ }
+
+ /*
+***************
+*** 487,493 ****
+ p = (char_u *)"<SNR>";
+ else
+ p = (char_u *)"";
+! smsg((char_u *)_("Breakpoint in \"%s%s\" line %ld"),
+ p,
+ debug_breakpoint_name + (*p == NUL ? 0 : 3),
+ (long)debug_breakpoint_lnum);
+--- 487,493 ----
+ p = (char_u *)"<SNR>";
+ else
+ p = (char_u *)"";
+! smsg(_("Breakpoint in \"%s%s\" line %ld"),
+ p,
+ debug_breakpoint_name + (*p == NUL ? 0 : 3),
+ (long)debug_breakpoint_lnum);
+***************
+*** 607,613 ****
+ {
+ if (curbuf->b_ffname == NULL)
+ {
+! EMSG(_(e_noname));
+ return FAIL;
+ }
+ bp->dbg_type = DBG_FILE;
+--- 607,613 ----
+ {
+ if (curbuf->b_ffname == NULL)
+ {
+! emsg(_(e_noname));
+ return FAIL;
+ }
+ bp->dbg_type = DBG_FILE;
+***************
+*** 621,627 ****
+ bp->dbg_type = DBG_EXPR;
+ else
+ {
+! EMSG2(_(e_invarg2), p);
+ return FAIL;
+ }
+ p = skipwhite(p + 4);
+--- 621,627 ----
+ bp->dbg_type = DBG_EXPR;
+ else
+ {
+! semsg(_(e_invarg2), p);
+ return FAIL;
+ }
+ p = skipwhite(p + 4);
+***************
+*** 646,652 ****
+ || (here && *p != NUL)
+ || (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL))
+ {
+! EMSG2(_(e_invarg2), arg);
+ return FAIL;
+ }
+
+--- 646,652 ----
+ || (here && *p != NUL)
+ || (bp->dbg_type == DBG_FUNC && strstr((char *)p, "()") != NULL))
+ {
+! semsg(_(e_invarg2), arg);
+ return FAIL;
+ }
+
+***************
+*** 817,823 ****
+ }
+
+ if (todel < 0)
+! EMSG2(_("E161: Breakpoint not found: %s"), eap->arg);
+ else
+ {
+ while (gap->ga_len > 0)
+--- 817,823 ----
+ }
+
+ if (todel < 0)
+! semsg(_("E161: Breakpoint not found: %s"), eap->arg);
+ else
+ {
+ while (gap->ga_len > 0)
+***************
+*** 865,877 ****
+ if (bp->dbg_type == DBG_FILE)
+ home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
+ if (bp->dbg_type != DBG_EXPR)
+! smsg((char_u *)_("%3d %s %s line %ld"),
+ bp->dbg_nr,
+ bp->dbg_type == DBG_FUNC ? "func" : "file",
+ bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
+ (long)bp->dbg_lnum);
+ else
+! smsg((char_u *)_("%3d expr %s"),
+ bp->dbg_nr, bp->dbg_name);
+ }
+ }
+--- 865,877 ----
+ if (bp->dbg_type == DBG_FILE)
+ home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
+ if (bp->dbg_type != DBG_EXPR)
+! smsg(_("%3d %s %s line %ld"),
+ bp->dbg_nr,
+ bp->dbg_type == DBG_FUNC ? "func" : "file",
+ bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
+ (long)bp->dbg_lnum);
+ else
+! smsg(_("%3d expr %s"),
+ bp->dbg_nr, bp->dbg_name);
+ }
+ }
+***************
+*** 1726,1732 ****
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! EMSG(_("E750: First use \":profile start {fname}\""));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+--- 1726,1732 ----
+ set_vim_var_nr(VV_PROFILING, 1L);
+ }
+ else if (do_profiling == PROF_NONE)
+! emsg(_("E750: First use \":profile start {fname}\""));
+ else if (STRCMP(eap->arg, "pause") == 0)
+ {
+ if (do_profiling == PROF_YES)
+***************
+*** 1828,1834 ****
+ {
+ fd = mch_fopen((char *)profile_fname, "w");
+ if (fd == NULL)
+! EMSG2(_(e_notopen), profile_fname);
+ else
+ {
+ script_dump_profile(fd);
+--- 1828,1834 ----
+ {
+ fd = mch_fopen((char *)profile_fname, "w");
+ if (fd == NULL)
+! semsg(_(e_notopen), profile_fname);
+ else
+ {
+ script_dump_profile(fd);
+***************
+*** 2357,2367 ****
+ if (
+ #ifdef FEAT_TERMINAL
+ term_job_running(buf->b_term)
+! ? EMSG2(_("E947: Job still running in buffer \"%s\""),
+ buf->b_fname)
+ :
+ #endif
+! EMSG2(_("E162: No write since last change for buffer \"%s\""),
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
+ {
+ save = no_wait_return;
+--- 2357,2367 ----
+ if (
+ #ifdef FEAT_TERMINAL
+ term_job_running(buf->b_term)
+! ? semsg(_("E947: Job still running in buffer \"%s\""),
+ buf->b_fname)
+ :
+ #endif
+! semsg(_("E162: No write since last change for buffer \"%s\""),
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
+ {
+ save = no_wait_return;
+***************
+*** 2407,2413 ****
+ {
+ if (curbuf->b_ffname == NULL)
+ {
+! EMSG(_(e_noname));
+ return FAIL;
+ }
+ return OK;
+--- 2407,2413 ----
+ {
+ if (curbuf->b_ffname == NULL)
+ {
+! emsg(_(e_noname));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 2629,2635 ****
+ vim_regfree(regmatch.regprog);
+ vim_free(p);
+ if (!didone)
+! EMSG2(_(e_nomatch2), ((char_u **)new_ga.ga_data)[i]);
+ }
+ ga_clear(&new_ga);
+ }
+--- 2629,2635 ----
+ vim_regfree(regmatch.regprog);
+ vim_free(p);
+ if (!didone)
+! semsg(_(e_nomatch2), ((char_u **)new_ga.ga_data)[i]);
+ }
+ ga_clear(&new_ga);
+ }
+***************
+*** 2640,2646 ****
+ ga_clear(&new_ga);
+ if (i == FAIL || exp_count == 0)
+ {
+! EMSG(_(e_nomatch));
+ return FAIL;
+ }
+
+--- 2640,2646 ----
+ ga_clear(&new_ga);
+ if (i == FAIL || exp_count == 0)
+ {
+! emsg(_(e_nomatch));
+ return FAIL;
+ }
+
+***************
+*** 2847,2857 ****
+ if (argn < 0 || argn >= ARGCOUNT)
+ {
+ if (ARGCOUNT <= 1)
+! EMSG(_("E163: There is only one file to edit"));
+ else if (argn < 0)
+! EMSG(_("E164: Cannot go before first file"));
+ else
+! EMSG(_("E165: Cannot go beyond last file"));
+ }
+ else
+ {
+--- 2847,2857 ----
+ if (argn < 0 || argn >= ARGCOUNT)
+ {
+ if (ARGCOUNT <= 1)
+! emsg(_("E163: There is only one file to edit"));
+ else if (argn < 0)
+! emsg(_("E164: Cannot go before first file"));
+ else
+! emsg(_("E165: Cannot go beyond last file"));
+ }
+ else
+ {
+***************
+*** 2992,3003 ****
+ n = eap->line2 - eap->line1 + 1;
+ if (*eap->arg != NUL)
+ /* Can't have both a range and an argument. */
+! EMSG(_(e_invarg));
+ else if (n <= 0)
+ {
+ /* Don't give an error for ":%argdel" if the list is empty. */
+ if (eap->line1 != 1 || eap->line2 != 0)
+! EMSG(_(e_invrange));
+ }
+ else
+ {
+--- 2992,3003 ----
+ n = eap->line2 - eap->line1 + 1;
+ if (*eap->arg != NUL)
+ /* Can't have both a range and an argument. */
+! emsg(_(e_invarg));
+ else if (n <= 0)
+ {
+ /* Don't give an error for ":%argdel" if the list is empty. */
+ if (eap->line1 != 1 || eap->line2 != 0)
+! emsg(_(e_invrange));
+ }
+ else
+ {
+***************
+*** 3017,3023 ****
+ }
+ }
+ else if (*eap->arg == NUL)
+! EMSG(_(e_argreq));
+ else
+ do_arglist(eap->arg, AL_DEL, 0, FALSE);
+ #ifdef FEAT_TITLE
+--- 3017,3023 ----
+ }
+ }
+ else if (*eap->arg == NUL)
+! emsg(_(e_argreq));
+ else
+ do_arglist(eap->arg, AL_DEL, 0, FALSE);
+ #ifdef FEAT_TITLE
+***************
+*** 3364,3370 ****
+
+ sprintf((char *)buf, "compiler/%s.vim", eap->arg);
+ if (source_runtime(buf, DIP_ALL) == FAIL)
+! EMSG2(_("E666: compiler not supported: %s"), eap->arg);
+ vim_free(buf);
+
+ do_cmdline_cmd((char_u *)":delcommand CompilerSet");
+--- 3364,3370 ----
+
+ sprintf((char *)buf, "compiler/%s.vim", eap->arg);
+ if (source_runtime(buf, DIP_ALL) == FAIL)
+! semsg(_("E666: compiler not supported: %s"), eap->arg);
+ vim_free(buf);
+
+ do_cmdline_cmd((char_u *)":delcommand CompilerSet");
+***************
+*** 3476,3482 ****
+ if (p_verbose > 1 && name != NULL)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Searching for \"%s\" in \"%s\""),
+ (char *)name, (char *)path);
+ verbose_leave();
+ }
+--- 3476,3482 ----
+ if (p_verbose > 1 && name != NULL)
+ {
+ verbose_enter();
+! smsg(_("Searching for \"%s\" in \"%s\""),
+ (char *)name, (char *)path);
+ verbose_leave();
+ }
+***************
+*** 3524,3530 ****
+ if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Searching for \"%s\""), buf);
+ verbose_leave();
+ }
+
+--- 3524,3530 ----
+ if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg(_("Searching for \"%s\""), buf);
+ verbose_leave();
+ }
+
+***************
+*** 3552,3562 ****
+ char *basepath = path == p_rtp ? "runtimepath" : "packpath";
+
+ if (flags & DIP_ERR)
+! EMSG3(_(e_dirnotf), basepath, name);
+ else if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("not found in '%s': \"%s\""), basepath, name);
+ verbose_leave();
+ }
+ }
+--- 3552,3562 ----
+ char *basepath = path == p_rtp ? "runtimepath" : "packpath";
+
+ if (flags & DIP_ERR)
+! semsg(_(e_dirnotf), basepath, name);
+ else if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("not found in '%s': \"%s\""), basepath, name);
+ verbose_leave();
+ }
+ }
+***************
+*** 4208,4214 ****
+ cmd_source(char_u *fname, exarg_T *eap)
+ {
+ if (*fname == NUL)
+! EMSG(_(e_argreq));
+
+ else if (eap != NULL && eap->forceit)
+ /* ":source!": read Normal mode commands
+--- 4208,4214 ----
+ cmd_source(char_u *fname, exarg_T *eap)
+ {
+ if (*fname == NUL)
+! emsg(_(e_argreq));
+
+ else if (eap != NULL && eap->forceit)
+ /* ":source!": read Normal mode commands
+***************
+*** 4227,4233 ****
+
+ /* ":source" read ex commands */
+ else if (do_source(fname, FALSE, DOSO_NONE) == FAIL)
+! EMSG2(_(e_notopen), fname);
+ }
+
+ /*
+--- 4227,4233 ----
+
+ /* ":source" read ex commands */
+ else if (do_source(fname, FALSE, DOSO_NONE) == FAIL)
+! semsg(_(e_notopen), fname);
+ }
+
+ /*
+***************
+*** 4371,4377 ****
+ return retval;
+ if (mch_isdir(fname_exp))
+ {
+! smsg((char_u *)_("Cannot source a directory: \"%s\""), fname);
+ goto theend;
+ }
+
+--- 4371,4377 ----
+ return retval;
+ if (mch_isdir(fname_exp))
+ {
+! smsg(_("Cannot source a directory: \"%s\""), fname);
+ goto theend;
+ }
+
+***************
+*** 4430,4438 ****
+ {
+ verbose_enter();
+ if (sourcing_name == NULL)
+! smsg((char_u *)_("could not source \"%s\""), fname);
+ else
+! smsg((char_u *)_("line %ld: could not source \"%s\""),
+ sourcing_lnum, fname);
+ verbose_leave();
+ }
+--- 4430,4438 ----
+ {
+ verbose_enter();
+ if (sourcing_name == NULL)
+! smsg(_("could not source \"%s\""), fname);
+ else
+! smsg(_("line %ld: could not source \"%s\""),
+ sourcing_lnum, fname);
+ verbose_leave();
+ }
+***************
+*** 4448,4456 ****
+ {
+ verbose_enter();
+ if (sourcing_name == NULL)
+! smsg((char_u *)_("sourcing \"%s\""), fname);
+ else
+! smsg((char_u *)_("line %ld: sourcing \"%s\""),
+ sourcing_lnum, fname);
+ verbose_leave();
+ }
+--- 4448,4456 ----
+ {
+ verbose_enter();
+ if (sourcing_name == NULL)
+! smsg(_("sourcing \"%s\""), fname);
+ else
+! smsg(_("line %ld: sourcing \"%s\""),
+ sourcing_lnum, fname);
+ verbose_leave();
+ }
+***************
+*** 4638,4652 ****
+ #endif
+
+ if (got_int)
+! EMSG(_(e_interr));
+ sourcing_name = save_sourcing_name;
+ sourcing_lnum = save_sourcing_lnum;
+ if (p_verbose > 1)
+ {
+ verbose_enter();
+! smsg((char_u *)_("finished sourcing %s"), fname);
+ if (sourcing_name != NULL)
+! smsg((char_u *)_("continuing in %s"), sourcing_name);
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+--- 4638,4652 ----
+ #endif
+
+ if (got_int)
+! emsg(_(e_interr));
+ sourcing_name = save_sourcing_name;
+ sourcing_lnum = save_sourcing_lnum;
+ if (p_verbose > 1)
+ {
+ verbose_enter();
+! smsg(_("finished sourcing %s"), fname);
+ if (sourcing_name != NULL)
+! smsg(_("continuing in %s"), sourcing_name);
+ verbose_leave();
+ }
+ #ifdef STARTUPTIME
+***************
+*** 4709,4715 ****
+ {
+ // :script {scriptId}: edit the script
+ if (eap->line2 < 1 || eap->line2 > script_items.ga_len)
+! EMSG(_(e_invarg));
+ else
+ {
+ eap->arg = SCRIPT_ITEM(eap->line2).sn_name;
+--- 4709,4715 ----
+ {
+ // :script {scriptId}: edit the script
+ if (eap->line2 < 1 || eap->line2 > script_items.ga_len)
+! emsg(_(e_invarg));
+ else
+ {
+ eap->arg = SCRIPT_ITEM(eap->line2).sn_name;
+***************
+*** 4723,4729 ****
+ {
+ home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+ NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)"%3d: %s", i, NameBuff);
+ }
+ }
+
+--- 4723,4729 ----
+ {
+ home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+ NameBuff, MAXPATHL, TRUE);
+! smsg("%3d: %s", i, NameBuff);
+ }
+ }
+
+***************
+*** 5067,5073 ****
+ if (!sp->error)
+ {
+ msg_source(HL_ATTR(HLF_W));
+! EMSG(_("W15: Warning: Wrong line separator, ^M may be missing"));
+ }
+ sp->error = TRUE;
+ sp->fileformat = EOL_UNIX;
+--- 5067,5073 ----
+ if (!sp->error)
+ {
+ msg_source(HL_ATTR(HLF_W));
+! emsg(_("W15: Warning: Wrong line separator, ^M may be missing"));
+ }
+ sp->error = TRUE;
+ sp->fileformat = EOL_UNIX;
+***************
+*** 5200,5206 ****
+
+ if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+ {
+! EMSG(_("E167: :scriptencoding used outside of a sourced file"));
+ return;
+ }
+
+--- 5200,5206 ----
+
+ if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+ {
+! emsg(_("E167: :scriptencoding used outside of a sourced file"));
+ return;
+ }
+
+***************
+*** 5232,5238 ****
+ if (getline_equal(eap->getline, eap->cookie, getsourceline))
+ do_finish(eap, FALSE);
+ else
+! EMSG(_("E168: :finish used outside of a sourced file"));
+ }
+
+ /*
+--- 5232,5238 ----
+ if (getline_equal(eap->getline, eap->cookie, getsourceline))
+ do_finish(eap, FALSE);
+ else
+! emsg(_("E168: :finish used outside of a sourced file"));
+ }
+
+ /*
+***************
+*** 5553,5559 ****
+ p = (char_u *)setlocale(what, NULL);
+ if (p == NULL || *p == NUL)
+ p = (char_u *)"Unknown";
+! smsg((char_u *)_("Current %slanguage: \"%s\""), whatstr, p);
+ }
+ else
+ {
+--- 5553,5559 ----
+ p = (char_u *)setlocale(what, NULL);
+ if (p == NULL || *p == NUL)
+ p = (char_u *)"Unknown";
+! smsg(_("Current %slanguage: \"%s\""), whatstr, p);
+ }
+ else
+ {
+***************
+*** 5570,5576 ****
+ #endif
+ }
+ if (loc == NULL)
+! EMSG2(_("E197: Cannot set language to \"%s\""), name);
+ else
+ {
+ #ifdef HAVE_NL_MSG_CAT_CNTR
+--- 5570,5576 ----
+ #endif
+ }
+ if (loc == NULL)
+! semsg(_("E197: Cannot set language to \"%s\""), name);
+ else
+ {
+ #ifdef HAVE_NL_MSG_CAT_CNTR
+*** ../vim-8.1.0742/src/ex_docmd.c 2019-01-12 16:29:26.327986331 +0100
+--- src/ex_docmd.c 2019-01-13 22:47:57.066356116 +0100
+***************
+*** 126,132 ****
+ # define HAVE_EX_SCRIPT_NI
+ static void ex_script_ni(exarg_T *eap);
+ #endif
+! static char_u *invalid_range(exarg_T *eap);
+ static void correct_range(exarg_T *eap);
+ #ifdef FEAT_QUICKFIX
+ static char_u *replace_makeprg(exarg_T *eap, char_u *p, char_u **cmdlinep);
+--- 126,132 ----
+ # define HAVE_EX_SCRIPT_NI
+ static void ex_script_ni(exarg_T *eap);
+ #endif
+! static char *invalid_range(exarg_T *eap);
+ static void correct_range(exarg_T *eap);
+ #ifdef FEAT_QUICKFIX
+ static char_u *replace_makeprg(exarg_T *eap, char_u *p, char_u **cmdlinep);
+***************
+*** 301,307 ****
+ static void ex_mkrc(exarg_T *eap);
+ static void ex_mark(exarg_T *eap);
+ #ifdef FEAT_USR_CMDS
+! static char_u *uc_fun_cmd(void);
+ static char_u *find_ucmd(exarg_T *eap, char_u *p, int *full, expand_T *xp, int *compl);
+ #endif
+ static void ex_startinsert(exarg_T *eap);
+--- 301,307 ----
+ static void ex_mkrc(exarg_T *eap);
+ static void ex_mark(exarg_T *eap);
+ #ifdef FEAT_USR_CMDS
+! static char *uc_fun_cmd(void);
+ static char_u *find_ucmd(exarg_T *eap, char_u *p, int *full, expand_T *xp, int *compl);
+ #endif
+ static void ex_startinsert(exarg_T *eap);
+***************
+*** 594,600 ****
+ || changedtick != CHANGEDTICK(curbuf)) && !ex_no_reprint)
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! EMSG(_(e_emptybuf));
+ else
+ {
+ if (ex_pressedreturn)
+--- 594,600 ----
+ || changedtick != CHANGEDTICK(curbuf)) && !ex_no_reprint)
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! emsg(_(e_emptybuf));
+ else
+ {
+ if (ex_pressedreturn)
+***************
+*** 613,621 ****
+ else if (ex_pressedreturn && !ex_no_reprint) /* must be at EOF */
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! EMSG(_(e_emptybuf));
+ else
+! EMSG(_("E501: At end-of-file"));
+ }
+ }
+
+--- 613,621 ----
+ else if (ex_pressedreturn && !ex_no_reprint) /* must be at EOF */
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! emsg(_(e_emptybuf));
+ else
+! emsg(_("E501: At end-of-file"));
+ }
+ }
+
+***************
+*** 718,724 ****
+ #endif
+ )
+ {
+! EMSG(_("E169: Command too recursive"));
+ #ifdef FEAT_EVAL
+ /* When converting to an exception, we do not include the command name
+ * since this is not an error of the specific command. */
+--- 718,724 ----
+ #endif
+ )
+ {
+! emsg(_("E169: Command too recursive"));
+ #ifdef FEAT_EVAL
+ /* When converting to an exception, we do not include the command name
+ * since this is not an error of the specific command. */
+***************
+*** 967,973 ****
+ next_cmdline = vim_strsave(next_cmdline);
+ if (next_cmdline == NULL)
+ {
+! EMSG(_(e_outofmem));
+ retval = FAIL;
+ break;
+ }
+--- 967,973 ----
+ next_cmdline = vim_strsave(next_cmdline);
+ if (next_cmdline == NULL)
+ {
+! emsg(_(e_outofmem));
+ retval = FAIL;
+ break;
+ }
+***************
+*** 1019,1025 ****
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg((char_u *)_("line %ld: %s"),
+ (long)sourcing_lnum, cmdline_copy);
+ if (msg_silent == 0)
+ msg_puts((char_u *)"\n"); /* don't overwrite this */
+--- 1019,1025 ----
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg(_("line %ld: %s"),
+ (long)sourcing_lnum, cmdline_copy);
+ if (msg_silent == 0)
+ msg_puts((char_u *)"\n"); /* don't overwrite this */
+***************
+*** 1251,1263 ****
+ && !func_has_ended(real_cookie))))
+ {
+ if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
+! EMSG(_(e_endtry));
+ else if (cstack.cs_flags[cstack.cs_idx] & CSF_WHILE)
+! EMSG(_(e_endwhile));
+ else if (cstack.cs_flags[cstack.cs_idx] & CSF_FOR)
+! EMSG(_(e_endfor));
+ else
+! EMSG(_(e_endif));
+ }
+
+ /*
+--- 1251,1263 ----
+ && !func_has_ended(real_cookie))))
+ {
+ if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
+! emsg(_(e_endtry));
+ else if (cstack.cs_flags[cstack.cs_idx] & CSF_WHILE)
+! emsg(_(e_endwhile));
+ else if (cstack.cs_flags[cstack.cs_idx] & CSF_FOR)
+! emsg(_(e_endfor));
+ else
+! emsg(_(e_endif));
+ }
+
+ /*
+***************
+*** 1347,1353 ****
+ }
+ else if (p != NULL)
+ {
+! emsg(p);
+ vim_free(p);
+ }
+ vim_free(sourcing_name);
+--- 1347,1353 ----
+ }
+ else if (p != NULL)
+ {
+! semsg(p);
+ vim_free(p);
+ }
+ vim_free(sourcing_name);
+***************
+*** 1700,1706 ****
+ char_u *p;
+ linenr_T lnum;
+ long n;
+! char_u *errormsg = NULL; /* error message */
+ char_u *after_modifier = NULL;
+ exarg_T ea; /* Ex command arguments */
+ int save_msg_scroll = msg_scroll;
+--- 1700,1706 ----
+ char_u *p;
+ linenr_T lnum;
+ long n;
+! char *errormsg = NULL; /* error message */
+ char_u *after_modifier = NULL;
+ exarg_T ea; /* Ex command arguments */
+ int save_msg_scroll = msg_scroll;
+***************
+*** 1898,1904 ****
+ }
+
+ if (ea.line2 < 0)
+! errormsg = (char_u *)_(e_invrange);
+ else
+ {
+ if (ea.line2 == 0)
+--- 1898,1904 ----
+ }
+
+ if (ea.line2 < 0)
+! errormsg = _(e_invrange);
+ else
+ {
+ if (ea.line2 == 0)
+***************
+*** 1938,1944 ****
+ if (p == NULL)
+ {
+ if (!ea.skip)
+! errormsg = (char_u *)_("E464: Ambiguous use of user-defined command");
+ goto doend;
+ }
+ /* Check for wrong commands. */
+--- 1938,1944 ----
+ if (p == NULL)
+ {
+ if (!ea.skip)
+! errormsg = _("E464: Ambiguous use of user-defined command");
+ goto doend;
+ }
+ /* Check for wrong commands. */
+***************
+*** 1963,1969 ****
+ else
+ append_command(*cmdlinep);
+ }
+! errormsg = IObuff;
+ did_emsg_syntax = TRUE;
+ }
+ goto doend;
+--- 1963,1969 ----
+ else
+ append_command(*cmdlinep);
+ }
+! errormsg = (char *)IObuff;
+ did_emsg_syntax = TRUE;
+ }
+ goto doend;
+***************
+*** 2014,2027 ****
+ if (sandbox != 0 && !(ea.argt & SBOXOK))
+ {
+ /* Command not allowed in sandbox. */
+! errormsg = (char_u *)_(e_sandbox);
+ goto doend;
+ }
+ #endif
+ if (!curbuf->b_p_ma && (ea.argt & MODIFY))
+ {
+ /* Command not allowed in non-'modifiable' buffer */
+! errormsg = (char_u *)_(e_modifiable);
+ goto doend;
+ }
+
+--- 2014,2027 ----
+ if (sandbox != 0 && !(ea.argt & SBOXOK))
+ {
+ /* Command not allowed in sandbox. */
+! errormsg = _(e_sandbox);
+ goto doend;
+ }
+ #endif
+ if (!curbuf->b_p_ma && (ea.argt & MODIFY))
+ {
+ /* Command not allowed in non-'modifiable' buffer */
+! errormsg = _(e_modifiable);
+ goto doend;
+ }
+
+***************
+*** 2029,2035 ****
+ && !IS_USER_CMDIDX(ea.cmdidx))
+ {
+ /* Command not allowed when editing the command line. */
+! errormsg = (char_u *)_(get_text_locked_msg());
+ goto doend;
+ }
+
+--- 2029,2035 ----
+ && !IS_USER_CMDIDX(ea.cmdidx))
+ {
+ /* Command not allowed when editing the command line. */
+! errormsg = _(get_text_locked_msg());
+ goto doend;
+ }
+
+***************
+*** 2048,2061 ****
+ if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
+ {
+ /* no range allowed */
+! errormsg = (char_u *)_(e_norange);
+ goto doend;
+ }
+ }
+
+ if (!ni && !(ea.argt & BANG) && ea.forceit) /* no <!> allowed */
+ {
+! errormsg = (char_u *)_(e_nobang);
+ goto doend;
+ }
+
+--- 2048,2061 ----
+ if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
+ {
+ /* no range allowed */
+! errormsg = _(e_norange);
+ goto doend;
+ }
+ }
+
+ if (!ni && !(ea.argt & BANG) && ea.forceit) /* no <!> allowed */
+ {
+! errormsg = _(e_nobang);
+ goto doend;
+ }
+
+***************
+*** 2076,2082 ****
+ {
+ if (sourcing || exmode_active)
+ {
+! errormsg = (char_u *)_("E493: Backwards range given");
+ goto doend;
+ }
+ if (ask_yesno((char_u *)
+--- 2076,2082 ----
+ {
+ if (sourcing || exmode_active)
+ {
+! errormsg = _("E493: Backwards range given");
+ goto doend;
+ }
+ if (ask_yesno((char_u *)
+***************
+*** 2138,2144 ****
+ while (ea.arg[0] == '+' && ea.arg[1] == '+')
+ if (getargopt(&ea) == FAIL && !ni)
+ {
+! errormsg = (char_u *)_(e_invarg);
+ goto doend;
+ }
+
+--- 2138,2144 ----
+ while (ea.arg[0] == '+' && ea.arg[1] == '+')
+ if (getargopt(&ea) == FAIL && !ni)
+ {
+! errormsg = _(e_invarg);
+ goto doend;
+ }
+
+***************
+*** 2148,2154 ****
+ {
+ if (*++ea.arg != '>') /* typed wrong */
+ {
+! errormsg = (char_u *)_("E494: Use w or w>>");
+ goto doend;
+ }
+ ea.arg = skipwhite(ea.arg + 1);
+--- 2148,2154 ----
+ {
+ if (*++ea.arg != '>') /* typed wrong */
+ {
+! errormsg = _("E494: Use w or w>>");
+ goto doend;
+ }
+ ea.arg = skipwhite(ea.arg + 1);
+***************
+*** 2322,2328 ****
+ ea.arg = skipwhite(ea.arg);
+ if (n <= 0 && !ni && (ea.argt & ZEROR) == 0)
+ {
+! errormsg = (char_u *)_(e_zerocount);
+ goto doend;
+ }
+ if (ea.argt & NOTADR) /* e.g. :buffer 2, :sleep 3 */
+--- 2322,2328 ----
+ ea.arg = skipwhite(ea.arg);
+ if (n <= 0 && !ni && (ea.argt & ZEROR) == 0)
+ {
+! errormsg = _(e_zerocount);
+ goto doend;
+ }
+ if (ea.argt & NOTADR) /* e.g. :buffer 2, :sleep 3 */
+***************
+*** 2354,2366 ****
+ if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL
+ && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & TRLBAR) == 0))
+ {
+! errormsg = (char_u *)_(e_trailing);
+ goto doend;
+ }
+
+ if (!ni && (ea.argt & NEEDARG) && *ea.arg == NUL)
+ {
+! errormsg = (char_u *)_(e_argreq);
+ goto doend;
+ }
+
+--- 2354,2366 ----
+ if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL
+ && *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & TRLBAR) == 0))
+ {
+! errormsg = _(e_trailing);
+ goto doend;
+ }
+
+ if (!ni && (ea.argt & NEEDARG) && *ea.arg == NUL)
+ {
+! errormsg = _(e_argreq);
+ goto doend;
+ }
+
+***************
+*** 2525,2531 ****
+ ea.errmsg = NULL;
+ (cmdnames[ea.cmdidx].cmd_func)(&ea);
+ if (ea.errmsg != NULL)
+! errormsg = (char_u *)_(ea.errmsg);
+ }
+
+ #ifdef FEAT_EVAL
+--- 2525,2531 ----
+ ea.errmsg = NULL;
+ (cmdnames[ea.cmdidx].cmd_func)(&ea);
+ if (ea.errmsg != NULL)
+! errormsg = _(ea.errmsg);
+ }
+
+ #ifdef FEAT_EVAL
+***************
+*** 2560,2569 ****
+ {
+ if (sourcing)
+ {
+! if (errormsg != IObuff)
+ {
+ STRCPY(IObuff, errormsg);
+! errormsg = IObuff;
+ }
+ append_command(*cmdlinep);
+ }
+--- 2560,2569 ----
+ {
+ if (sourcing)
+ {
+! if (errormsg != (char *)IObuff)
+ {
+ STRCPY(IObuff, errormsg);
+! errormsg = (char *)IObuff;
+ }
+ append_command(*cmdlinep);
+ }
+***************
+*** 2633,2639 ****
+ * May set "errormsg" to an error message.
+ */
+ int
+! parse_command_modifiers(exarg_T *eap, char_u **errormsg, int skip_only)
+ {
+ char_u *p;
+
+--- 2633,2639 ----
+ * May set "errormsg" to an error message.
+ */
+ int
+! parse_command_modifiers(exarg_T *eap, char **errormsg, int skip_only)
+ {
+ char_u *p;
+
+***************
+*** 2839,2845 ****
+ {
+ if (tabnr < 0 || tabnr > LAST_TAB_NR)
+ {
+! *errormsg = (char_u *)_(e_invrange);
+ return FAIL;
+ }
+ cmdmod.tab = tabnr + 1;
+--- 2839,2845 ----
+ {
+ if (tabnr < 0 || tabnr > LAST_TAB_NR)
+ {
+! *errormsg = _(e_invrange);
+ return FAIL;
+ }
+ cmdmod.tab = tabnr + 1;
+***************
+*** 2912,2918 ****
+ * Return FAIL and set "errormsg" or return OK.
+ */
+ int
+! parse_cmd_address(exarg_T *eap, char_u **errormsg, int silent)
+ {
+ int address_count = 1;
+ linenr_T lnum;
+--- 2912,2918 ----
+ * Return FAIL and set "errormsg" or return OK.
+ */
+ int
+! parse_cmd_address(exarg_T *eap, char **errormsg, int silent)
+ {
+ int address_count = 1;
+ linenr_T lnum;
+***************
+*** 2998,3010 ****
+ {
+ // there is no Vim command which uses '%' and
+ // ADDR_WINDOWS or ADDR_TABS
+! *errormsg = (char_u *)_(e_invrange);
+ return FAIL;
+ }
+ break;
+ case ADDR_TABS_RELATIVE:
+ case ADDR_OTHER:
+! *errormsg = (char_u *)_(e_invrange);
+ return FAIL;
+ case ADDR_ARGUMENTS:
+ if (ARGCOUNT == 0)
+--- 2998,3010 ----
+ {
+ // there is no Vim command which uses '%' and
+ // ADDR_WINDOWS or ADDR_TABS
+! *errormsg = _(e_invrange);
+ return FAIL;
+ }
+ break;
+ case ADDR_TABS_RELATIVE:
+ case ADDR_OTHER:
+! *errormsg = _(e_invrange);
+ return FAIL;
+ case ADDR_ARGUMENTS:
+ if (ARGCOUNT == 0)
+***************
+*** 3033,3039 ****
+ // '*' - visual area
+ if (eap->addr_type != ADDR_LINES)
+ {
+! *errormsg = (char_u *)_(e_invrange);
+ return FAIL;
+ }
+
+--- 3033,3039 ----
+ // '*' - visual area
+ if (eap->addr_type != ADDR_LINES)
+ {
+! *errormsg = _(e_invrange);
+ return FAIL;
+ }
+
+***************
+*** 3216,3222 ****
+
+ if (command_count != (int)CMD_SIZE)
+ {
+! iemsg((char_u *)_("E943: Command table needs to be updated, run 'make cmdidxs'"));
+ getout(1);
+ }
+
+--- 3216,3222 ----
+
+ if (command_count != (int)CMD_SIZE)
+ {
+! iemsg(_("E943: Command table needs to be updated, run 'make cmdidxs'"));
+ getout(1);
+ }
+
+***************
+*** 4491,4497 ****
+ lnum = CURRENT_TAB_NR;
+ break;
+ case ADDR_TABS_RELATIVE:
+! EMSG(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ break;
+--- 4491,4497 ----
+ lnum = CURRENT_TAB_NR;
+ break;
+ case ADDR_TABS_RELATIVE:
+! emsg(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ break;
+***************
+*** 4533,4539 ****
+ lnum = LAST_TAB_NR;
+ break;
+ case ADDR_TABS_RELATIVE:
+! EMSG(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ break;
+--- 4533,4539 ----
+ lnum = LAST_TAB_NR;
+ break;
+ case ADDR_TABS_RELATIVE:
+! emsg(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ break;
+***************
+*** 4555,4561 ****
+ }
+ if (addr_type != ADDR_LINES)
+ {
+! EMSG(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+--- 4555,4561 ----
+ }
+ if (addr_type != ADDR_LINES)
+ {
+! emsg(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+***************
+*** 4587,4593 ****
+ c = *cmd++;
+ if (addr_type != ADDR_LINES)
+ {
+! EMSG(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+--- 4587,4593 ----
+ c = *cmd++;
+ if (addr_type != ADDR_LINES)
+ {
+! emsg(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+***************
+*** 4637,4643 ****
+ ++cmd;
+ if (addr_type != ADDR_LINES)
+ {
+! EMSG(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+--- 4637,4643 ----
+ ++cmd;
+ if (addr_type != ADDR_LINES)
+ {
+! emsg(_(e_invaddr));
+ cmd = NULL;
+ goto error;
+ }
+***************
+*** 4647,4653 ****
+ i = RE_SEARCH;
+ else
+ {
+! EMSG(_(e_backslash));
+ cmd = NULL;
+ goto error;
+ }
+--- 4647,4653 ----
+ i = RE_SEARCH;
+ else
+ {
+! emsg(_(e_backslash));
+ cmd = NULL;
+ goto error;
+ }
+***************
+*** 4742,4748 ****
+
+ if (addr_type == ADDR_TABS_RELATIVE)
+ {
+! EMSG(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ }
+--- 4742,4748 ----
+
+ if (addr_type == ADDR_TABS_RELATIVE)
+ {
+! emsg(_(e_invrange));
+ cmd = NULL;
+ goto error;
+ }
+***************
+*** 4797,4803 ****
+ ex_ni(exarg_T *eap)
+ {
+ if (!eap->skip)
+! eap->errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version");
+ }
+
+ #ifdef HAVE_EX_SCRIPT_NI
+--- 4797,4803 ----
+ ex_ni(exarg_T *eap)
+ {
+ if (!eap->skip)
+! eap->errmsg = N_("E319: Sorry, the command is not available in this version");
+ }
+
+ #ifdef HAVE_EX_SCRIPT_NI
+***************
+*** 4819,4832 ****
+ * Check range in Ex command for validity.
+ * Return NULL when valid, error message when invalid.
+ */
+! static char_u *
+ invalid_range(exarg_T *eap)
+ {
+ buf_T *buf;
+ if ( eap->line1 < 0
+ || eap->line2 < 0
+ || eap->line1 > eap->line2)
+! return (char_u *)_(e_invrange);
+
+ if (eap->argt & RANGE)
+ {
+--- 4819,4832 ----
+ * Check range in Ex command for validity.
+ * Return NULL when valid, error message when invalid.
+ */
+! static char *
+ invalid_range(exarg_T *eap)
+ {
+ buf_T *buf;
+ if ( eap->line1 < 0
+ || eap->line2 < 0
+ || eap->line1 > eap->line2)
+! return _(e_invrange);
+
+ if (eap->argt & RANGE)
+ {
+***************
+*** 4839,4883 ****
+ + (eap->cmdidx == CMD_diffget)
+ #endif
+ )
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_ARGUMENTS:
+ /* add 1 if ARGCOUNT is 0 */
+ if (eap->line2 > ARGCOUNT + (!ARGCOUNT))
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_BUFFERS:
+ if (eap->line1 < firstbuf->b_fnum
+ || eap->line2 > lastbuf->b_fnum)
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_LOADED_BUFFERS:
+ buf = firstbuf;
+ while (buf->b_ml.ml_mfp == NULL)
+ {
+ if (buf->b_next == NULL)
+! return (char_u *)_(e_invrange);
+ buf = buf->b_next;
+ }
+ if (eap->line1 < buf->b_fnum)
+! return (char_u *)_(e_invrange);
+ buf = lastbuf;
+ while (buf->b_ml.ml_mfp == NULL)
+ {
+ if (buf->b_prev == NULL)
+! return (char_u *)_(e_invrange);
+ buf = buf->b_prev;
+ }
+ if (eap->line2 > buf->b_fnum)
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_WINDOWS:
+ if (eap->line2 > LAST_WIN_NR)
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_TABS:
+ if (eap->line2 > LAST_TAB_NR)
+! return (char_u *)_(e_invrange);
+ break;
+ case ADDR_TABS_RELATIVE:
+ /* Do nothing */
+--- 4839,4883 ----
+ + (eap->cmdidx == CMD_diffget)
+ #endif
+ )
+! return _(e_invrange);
+ break;
+ case ADDR_ARGUMENTS:
+ /* add 1 if ARGCOUNT is 0 */
+ if (eap->line2 > ARGCOUNT + (!ARGCOUNT))
+! return _(e_invrange);
+ break;
+ case ADDR_BUFFERS:
+ if (eap->line1 < firstbuf->b_fnum
+ || eap->line2 > lastbuf->b_fnum)
+! return _(e_invrange);
+ break;
+ case ADDR_LOADED_BUFFERS:
+ buf = firstbuf;
+ while (buf->b_ml.ml_mfp == NULL)
+ {
+ if (buf->b_next == NULL)
+! return _(e_invrange);
+ buf = buf->b_next;
+ }
+ if (eap->line1 < buf->b_fnum)
+! return _(e_invrange);
+ buf = lastbuf;
+ while (buf->b_ml.ml_mfp == NULL)
+ {
+ if (buf->b_prev == NULL)
+! return _(e_invrange);
+ buf = buf->b_prev;
+ }
+ if (eap->line2 > buf->b_fnum)
+! return _(e_invrange);
+ break;
+ case ADDR_WINDOWS:
+ if (eap->line2 > LAST_WIN_NR)
+! return _(e_invrange);
+ break;
+ case ADDR_TABS:
+ if (eap->line2 > LAST_TAB_NR)
+! return _(e_invrange);
+ break;
+ case ADDR_TABS_RELATIVE:
+ /* Do nothing */
+***************
+*** 4885,4891 ****
+ #ifdef FEAT_QUICKFIX
+ case ADDR_QUICKFIX:
+ if (eap->line2 != 1 && eap->line2 > qf_get_size(eap))
+! return (char_u *)_(e_invrange);
+ break;
+ #endif
+ }
+--- 4885,4891 ----
+ #ifdef FEAT_QUICKFIX
+ case ADDR_QUICKFIX:
+ if (eap->line2 != 1 && eap->line2 > qf_get_size(eap))
+! return _(e_invrange);
+ break;
+ #endif
+ }
+***************
+*** 5020,5026 ****
+ expand_filename(
+ exarg_T *eap,
+ char_u **cmdlinep,
+! char_u **errormsgp)
+ {
+ int has_wildcards; /* need to expand wildcards */
+ char_u *repl;
+--- 5020,5026 ----
+ expand_filename(
+ exarg_T *eap,
+ char_u **cmdlinep,
+! char **errormsgp)
+ {
+ int has_wildcards; /* need to expand wildcards */
+ char_u *repl;
+***************
+*** 5788,5794 ****
+ return FAIL;
+ }
+ #endif
+! EMSGN(NGETTEXT("E173: %ld more file to edit",
+ "E173: %ld more files to edit", n), n);
+ quitmore = 2; /* next try to quit is allowed */
+ }
+--- 5788,5794 ----
+ return FAIL;
+ }
+ #endif
+! semsg(NGETTEXT("E173: %ld more file to edit",
+ "E173: %ld more files to edit", n), n);
+ quitmore = 2; /* next try to quit is allowed */
+ }
+***************
+*** 5879,5885 ****
+ if (!force && (cmd->uc_script_ctx.sc_sid != current_sctx.sc_sid
+ || cmd->uc_script_ctx.sc_seq == current_sctx.sc_seq))
+ {
+! EMSG2(_("E174: Command already exists: add ! to replace it: %s"),
+ name);
+ goto fail;
+ }
+--- 5879,5885 ----
+ if (!force && (cmd->uc_script_ctx.sc_sid != current_sctx.sc_sid
+ || cmd->uc_script_ctx.sc_seq == current_sctx.sc_seq))
+ {
+! semsg(_("E174: Command already exists: add ! to replace it: %s"),
+ name);
+ goto fail;
+ }
+***************
+*** 6156,6162 ****
+ MSG(_("No user-defined commands found"));
+ }
+
+! static char_u *
+ uc_fun_cmd(void)
+ {
+ static char_u fcmd[] = {0x84, 0xaf, 0x60, 0xb9, 0xaf, 0xb5, 0x60, 0xa4,
+--- 6156,6162 ----
+ MSG(_("No user-defined commands found"));
+ }
+
+! static char *
+ uc_fun_cmd(void)
+ {
+ static char_u fcmd[] = {0x84, 0xaf, 0x60, 0xb9, 0xaf, 0xb5, 0x60, 0xa4,
+***************
+*** 6168,6174 ****
+ for (i = 0; fcmd[i]; ++i)
+ IObuff[i] = fcmd[i] - 0x40;
+ IObuff[i] = 0;
+! return IObuff;
+ }
+
+ static int
+--- 6168,6174 ----
+ for (i = 0; fcmd[i]; ++i)
+ IObuff[i] = fcmd[i] - 0x40;
+ IObuff[i] = 0;
+! return (char *)IObuff;
+ }
+
+ static int
+***************
+*** 6186,6192 ****
+
+ if (len == 0)
+ {
+! EMSG(_("E175: No attribute specified"));
+ return FAIL;
+ }
+
+--- 6186,6192 ----
+
+ if (len == 0)
+ {
+! emsg(_("E175: No attribute specified"));
+ return FAIL;
+ }
+
+***************
+*** 6238,6244 ****
+ else
+ {
+ wrong_nargs:
+! EMSG(_("E176: Invalid number of arguments"));
+ return FAIL;
+ }
+ }
+--- 6238,6244 ----
+ else
+ {
+ wrong_nargs:
+! emsg(_("E176: Invalid number of arguments"));
+ return FAIL;
+ }
+ }
+***************
+*** 6253,6259 ****
+ if (*def >= 0)
+ {
+ two_count:
+! EMSG(_("E177: Count cannot be specified twice"));
+ return FAIL;
+ }
+
+--- 6253,6259 ----
+ if (*def >= 0)
+ {
+ two_count:
+! emsg(_("E177: Count cannot be specified twice"));
+ return FAIL;
+ }
+
+***************
+*** 6263,6269 ****
+ if (p != val + vallen || vallen == 0)
+ {
+ invalid_count:
+! EMSG(_("E178: Invalid default value for count"));
+ return FAIL;
+ }
+ }
+--- 6263,6269 ----
+ if (p != val + vallen || vallen == 0)
+ {
+ invalid_count:
+! emsg(_("E178: Invalid default value for count"));
+ return FAIL;
+ }
+ }
+***************
+*** 6291,6297 ****
+ {
+ if (val == NULL)
+ {
+! EMSG(_("E179: argument required for -complete"));
+ return FAIL;
+ }
+
+--- 6291,6297 ----
+ {
+ if (val == NULL)
+ {
+! emsg(_("E179: argument required for -complete"));
+ return FAIL;
+ }
+
+***************
+*** 6304,6310 ****
+ *argt |= RANGE;
+ if (val == NULL)
+ {
+! EMSG(_("E179: argument required for -addr"));
+ return FAIL;
+ }
+ if (parse_addr_type_arg(val, (int)vallen, argt, addr_type_arg)
+--- 6304,6310 ----
+ *argt |= RANGE;
+ if (val == NULL)
+ {
+! emsg(_("E179: argument required for -addr"));
+ return FAIL;
+ }
+ if (parse_addr_type_arg(val, (int)vallen, argt, addr_type_arg)
+***************
+*** 6317,6323 ****
+ {
+ char_u ch = attr[len];
+ attr[len] = '\0';
+! EMSG2(_("E181: Invalid attribute: %s"), attr);
+ attr[len] = ch;
+ return FAIL;
+ }
+--- 6317,6323 ----
+ {
+ char_u ch = attr[len];
+ attr[len] = '\0';
+! semsg(_("E181: Invalid attribute: %s"), attr);
+ attr[len] = ch;
+ return FAIL;
+ }
+***************
+*** 6365,6371 ****
+ ++p;
+ if (!ends_excmd(*p) && !VIM_ISWHITE(*p))
+ {
+! EMSG(_("E182: Invalid command name"));
+ return;
+ }
+ end = p;
+--- 6365,6371 ----
+ ++p;
+ if (!ends_excmd(*p) && !VIM_ISWHITE(*p))
+ {
+! emsg(_("E182: Invalid command name"));
+ return;
+ }
+ end = p;
+***************
+*** 6381,6394 ****
+ }
+ else if (!ASCII_ISUPPER(*name))
+ {
+! EMSG(_("E183: User defined commands must start with an uppercase letter"));
+ return;
+ }
+ else if ((name_len == 1 && *name == 'X')
+ || (name_len <= 4
+ && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
+ {
+! EMSG(_("E841: Reserved name, cannot be used for user defined command"));
+ return;
+ }
+ else
+--- 6381,6394 ----
+ }
+ else if (!ASCII_ISUPPER(*name))
+ {
+! emsg(_("E183: User defined commands must start with an uppercase letter"));
+ return;
+ }
+ else if ((name_len == 1 && *name == 'X')
+ || (name_len <= 4
+ && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
+ {
+! emsg(_("E841: Reserved name, cannot be used for user defined command"));
+ return;
+ }
+ else
+***************
+*** 6453,6459 ****
+
+ if (cmp != 0)
+ {
+! EMSG2(_("E184: No such user-defined command: %s"), eap->arg);
+ return;
+ }
+
+--- 6453,6459 ----
+
+ if (cmp != 0)
+ {
+! semsg(_("E184: No such user-defined command: %s"), eap->arg);
+ return;
+ }
+
+***************
+*** 7116,7122 ****
+ for (i = 0; err[i] != NUL && !VIM_ISWHITE(err[i]); i++)
+ ;
+ err[i] = NUL;
+! EMSG2(_("E180: Invalid address type value: %s"), err);
+ return FAIL;
+ }
+
+--- 7116,7122 ----
+ for (i = 0; err[i] != NUL && !VIM_ISWHITE(err[i]); i++)
+ ;
+ err[i] = NUL;
+! semsg(_("E180: Invalid address type value: %s"), err);
+ return FAIL;
+ }
+
+***************
+*** 7182,7188 ****
+
+ if (command_complete[i].expand == 0)
+ {
+! EMSG2(_("E180: Invalid complete value: %s"), value);
+ return FAIL;
+ }
+
+--- 7182,7188 ----
+
+ if (command_complete[i].expand == 0)
+ {
+! semsg(_("E180: Invalid complete value: %s"), value);
+ return FAIL;
+ }
+
+***************
+*** 7193,7199 ****
+ if (arg != NULL)
+ # endif
+ {
+! EMSG(_("E468: Completion argument only allowed for custom completion"));
+ return FAIL;
+ }
+
+--- 7193,7199 ----
+ if (arg != NULL)
+ # endif
+ {
+! emsg(_("E468: Completion argument only allowed for custom completion"));
+ return FAIL;
+ }
+
+***************
+*** 7201,7207 ****
+ if ((*complp == EXPAND_USER_DEFINED || *complp == EXPAND_USER_LIST)
+ && arg == NULL)
+ {
+! EMSG(_("E467: Custom completion requires a function argument"));
+ return FAIL;
+ }
+
+--- 7201,7207 ----
+ if ((*complp == EXPAND_USER_DEFINED || *complp == EXPAND_USER_LIST)
+ && arg == NULL)
+ {
+! emsg(_("E467: Custom completion requires a function argument"));
+ return FAIL;
+ }
+
+***************
+*** 7252,7258 ****
+ #endif
+ }
+ else if (load_colors(eap->arg) == FAIL)
+! EMSG2(_("E185: Cannot find color scheme '%s'"), eap->arg);
+ }
+
+ static void
+--- 7252,7258 ----
+ #endif
+ }
+ else if (load_colors(eap->arg) == FAIL)
+! semsg(_("E185: Cannot find color scheme '%s'"), eap->arg);
+ }
+
+ static void
+***************
+*** 7636,7642 ****
+ else
+ # endif
+ if (first_tabpage->tp_next == NULL)
+! EMSG(_("E784: Cannot close last tab page"));
+ else
+ {
+ tab_number = get_tabpage_arg(eap);
+--- 7636,7642 ----
+ else
+ # endif
+ if (first_tabpage->tp_next == NULL)
+! emsg(_("E784: Cannot close last tab page"));
+ else
+ {
+ tab_number = get_tabpage_arg(eap);
+***************
+*** 7909,7915 ****
+ ex_print(exarg_T *eap)
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! EMSG(_(e_emptybuf));
+ else
+ {
+ for ( ;!got_int; ui_breakcheck())
+--- 7909,7915 ----
+ ex_print(exarg_T *eap)
+ {
+ if (curbuf->b_ml.ml_flags & ML_EMPTY)
+! emsg(_(e_emptybuf));
+ else
+ {
+ for ( ;!got_int; ui_breakcheck())
+***************
+*** 8199,8205 ****
+
+ if (recursive)
+ {
+! EMSG(_(e_au_recursive));
+ return;
+ }
+ ++recursive;
+--- 8199,8205 ----
+
+ if (recursive)
+ {
+! emsg(_(e_au_recursive));
+ return;
+ }
+ ++recursive;
+***************
+*** 8692,8698 ****
+ if (vim_regexec(&regmatch, p, (colnr_T)0))
+ curwin->w_cursor.col = (colnr_T)(regmatch.startp[0] - p);
+ else
+! EMSG(_(e_nomatch));
+ vim_regfree(regmatch.regprog);
+ }
+ /* Move to the NUL, ignore any other arguments. */
+--- 8692,8698 ----
+ if (vim_regexec(&regmatch, p, (colnr_T)0))
+ curwin->w_cursor.col = (colnr_T)(regmatch.startp[0] - p);
+ else
+! emsg(_(e_nomatch));
+ vim_regfree(regmatch.regprog);
+ }
+ /* Move to the NUL, ignore any other arguments. */
+***************
+*** 9059,9065 ****
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! EMSG2(_(e_notopen), eap->arg);
+ }
+ else
+ {
+--- 9059,9065 ----
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! semsg(_(e_notopen), eap->arg);
+ }
+ else
+ {
+***************
+*** 9148,9154 ****
+ if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
+ && !eap->forceit)
+ {
+! EMSG(_("E747: Cannot change directory, buffer is modified (add ! to override)"));
+ return;
+ }
+
+--- 9148,9154 ----
+ if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged()
+ && !eap->forceit)
+ {
+! emsg(_("E747: Cannot change directory, buffer is modified (add ! to override)"));
+ return;
+ }
+
+***************
+*** 9157,9163 ****
+ {
+ if (prev_dir == NULL)
+ {
+! EMSG(_("E186: No previous directory"));
+ return;
+ }
+ new_dir = prev_dir;
+--- 9157,9163 ----
+ {
+ if (prev_dir == NULL)
+ {
+! emsg(_("E186: No previous directory"));
+ return;
+ }
+ new_dir = prev_dir;
+***************
+*** 9192,9198 ****
+ dir_differs = new_dir == NULL || prev_dir == NULL
+ || pathcmp((char *)prev_dir, (char *)new_dir, -1) != 0;
+ if (new_dir == NULL || (dir_differs && vim_chdir(new_dir)))
+! EMSG(_(e_failed));
+ else
+ {
+ int is_local_chdir = eap->cmdidx == CMD_lcd
+--- 9192,9198 ----
+ dir_differs = new_dir == NULL || prev_dir == NULL
+ || pathcmp((char *)prev_dir, (char *)new_dir, -1) != 0;
+ if (new_dir == NULL || (dir_differs && vim_chdir(new_dir)))
+! emsg(_(e_failed));
+ else
+ {
+ int is_local_chdir = eap->cmdidx == CMD_lcd
+***************
+*** 9227,9233 ****
+ msg(NameBuff);
+ }
+ else
+! EMSG(_("E187: Unknown"));
+ }
+
+ /*
+--- 9227,9233 ----
+ msg(NameBuff);
+ }
+ else
+! emsg(_("E187: Unknown"));
+ }
+
+ /*
+***************
+*** 9236,9242 ****
+ static void
+ ex_equal(exarg_T *eap)
+ {
+! smsg((char_u *)"%ld", (long)eap->line2);
+ ex_may_print(eap);
+ }
+
+--- 9236,9242 ----
+ static void
+ ex_equal(exarg_T *eap)
+ {
+! smsg("%ld", (long)eap->line2);
+ ex_may_print(eap);
+ }
+
+***************
+*** 9258,9264 ****
+ {
+ case 'm': break;
+ case NUL: len *= 1000L; break;
+! default: EMSG2(_(e_invarg2), eap->arg); return;
+ }
+ do_sleep(len);
+ }
+--- 9258,9264 ----
+ {
+ case 'm': break;
+ case NUL: len *= 1000L; break;
+! default: semsg(_(e_invarg2), eap->arg); return;
+ }
+ do_sleep(len);
+ }
+***************
+*** 9322,9330 ****
+ switch (do_map((*cmdp == 'n') ? 2 : (*cmdp == 'u'),
+ eap->arg, mode, isabbrev))
+ {
+! case 1: EMSG(_(e_invarg));
+ break;
+! case 2: EMSG(isabbrev ? _(e_noabbr) : _(e_nomap));
+ break;
+ }
+ }
+--- 9322,9330 ----
+ switch (do_map((*cmdp == 'n') ? 2 : (*cmdp == 'u'),
+ eap->arg, mode, isabbrev))
+ {
+! case 1: emsg(_(e_invarg));
+ break;
+! case 2: emsg((isabbrev ? _(e_noabbr) : _(e_nomap)));
+ break;
+ }
+ }
+***************
+*** 9346,9352 ****
+ if (*p != NUL && *arg == NUL)
+ set_shellsize(w, h, TRUE);
+ else
+! EMSG(_("E465: :winsize requires two number arguments"));
+ }
+
+ static void
+--- 9346,9352 ----
+ if (*p != NUL && *arg == NUL)
+ set_shellsize(w, h, TRUE);
+ else
+! emsg(_("E465: :winsize requires two number arguments"));
+ }
+
+ static void
+***************
+*** 9360,9366 ****
+ /* CTRL-W g and CTRL-W CTRL-G have an extra command character */
+ if (eap->arg[1] == NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ xchar = eap->arg[1];
+--- 9360,9366 ----
+ /* CTRL-W g and CTRL-W CTRL-G have an extra command character */
+ if (eap->arg[1] == NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ xchar = eap->arg[1];
+***************
+*** 9372,9378 ****
+ eap->nextcmd = check_nextcmd(p);
+ p = skipwhite(p);
+ if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+! EMSG(_(e_invarg));
+ else if (!eap->skip)
+ {
+ /* Pass flags on for ":vertical wincmd ]". */
+--- 9372,9378 ----
+ eap->nextcmd = check_nextcmd(p);
+ p = skipwhite(p);
+ if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+! emsg(_(e_invarg));
+ else if (!eap->skip)
+ {
+ /* Pass flags on for ":vertical wincmd ]". */
+***************
+*** 9409,9415 ****
+ }
+ else
+ # endif
+! EMSG(_("E188: Obtaining window position not implemented for this platform"));
+ }
+ else
+ {
+--- 9409,9415 ----
+ }
+ else
+ # endif
+! emsg(_("E188: Obtaining window position not implemented for this platform"));
+ }
+ else
+ {
+***************
+*** 9419,9425 ****
+ y = getdigits(&arg);
+ if (*p == NUL || *arg != NUL)
+ {
+! EMSG(_("E466: :winpos requires two number arguments"));
+ return;
+ }
+ # ifdef FEAT_GUI
+--- 9419,9425 ----
+ y = getdigits(&arg);
+ if (*p == NUL || *arg != NUL)
+ {
+! emsg(_("E466: :winpos requires two number arguments"));
+ return;
+ }
+ # ifdef FEAT_GUI
+***************
+*** 9544,9550 ****
+ */
+ if (n == MAXLNUM || n < 0 || n > curbuf->b_ml.ml_line_count)
+ {
+! EMSG(_(e_invaddr));
+ return;
+ }
+
+--- 9544,9550 ----
+ */
+ if (n == MAXLNUM || n < 0 || n > curbuf->b_ml.ml_line_count)
+ {
+! emsg(_(e_invaddr));
+ return;
+ }
+
+***************
+*** 9731,9737 ****
+ }
+
+ if (*p != NUL)
+! EMSG2(_(e_invarg2), eap->arg);
+ else
+ undo_time(eap->cmdidx == CMD_earlier ? -count : count,
+ sec, file, FALSE);
+--- 9731,9737 ----
+ }
+
+ if (*p != NUL)
+! semsg(_(e_invarg2), eap->arg);
+ else
+ undo_time(eap->cmdidx == CMD_earlier ? -count : count,
+ sec, file, FALSE);
+***************
+*** 9750,9756 ****
+ #ifdef FEAT_EVAL
+ if (redir_execute)
+ {
+! EMSG(_("E930: Cannot use :redir inside execute()"));
+ return;
+ }
+ #endif
+--- 9750,9756 ----
+ #ifdef FEAT_EVAL
+ if (redir_execute)
+ {
+! emsg(_("E930: Cannot use :redir inside execute()"));
+ return;
+ }
+ #endif
+***************
+*** 9827,9833 ****
+ if (*arg != NUL)
+ {
+ redir_reg = 0;
+! EMSG2(_(e_invarg2), eap->arg);
+ }
+ }
+ else if (*arg == '=' && arg[1] == '>')
+--- 9827,9833 ----
+ if (*arg != NUL)
+ {
+ redir_reg = 0;
+! semsg(_(e_invarg2), eap->arg);
+ }
+ }
+ else if (*arg == '=' && arg[1] == '>')
+***************
+*** 9854,9860 ****
+ /* TODO: redirect to a buffer */
+
+ else
+! EMSG2(_(e_invarg2), eap->arg);
+ }
+
+ /* Make sure redirection is not off. Can happen for cmdline completion
+--- 9854,9860 ----
+ /* TODO: redirect to a buffer */
+
+ else
+! semsg(_(e_invarg2), eap->arg);
+ }
+
+ /* Make sure redirection is not off. Can happen for cmdline completion
+***************
+*** 10130,10136 ****
+ || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+ {
+ if (mch_chdir((char *)dirnow) != 0)
+! EMSG(_(e_prev_dir));
+ shorten_fnames(TRUE);
+ }
+ vim_free(dirnow);
+--- 10130,10136 ----
+ || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+ {
+ if (mch_chdir((char *)dirnow) != 0)
+! emsg(_(e_prev_dir));
+ shorten_fnames(TRUE);
+ }
+ vim_free(dirnow);
+***************
+*** 10163,10169 ****
+ failed |= fclose(fd);
+
+ if (failed)
+! EMSG(_(e_write));
+ #if defined(FEAT_EVAL) && defined(FEAT_SESSION)
+ else if (eap->cmdidx == CMD_mksession)
+ {
+--- 10163,10169 ----
+ failed |= fclose(fd);
+
+ if (failed)
+! emsg(_(e_write));
+ #if defined(FEAT_EVAL) && defined(FEAT_SESSION)
+ else if (eap->cmdidx == CMD_mksession)
+ {
+***************
+*** 10200,10206 ****
+ {
+ if (vim_mkdir(name, prot) != 0)
+ {
+! EMSG2(_("E739: Cannot create directory: %s"), name);
+ return FAIL;
+ }
+ return OK;
+--- 10200,10206 ----
+ {
+ if (vim_mkdir(name, prot) != 0)
+ {
+! semsg(_("E739: Cannot create directory: %s"), name);
+ return FAIL;
+ }
+ return OK;
+***************
+*** 10223,10240 ****
+ /* with Unix it is possible to open a directory */
+ if (mch_isdir(fname))
+ {
+! EMSG2(_(e_isadir2), fname);
+ return NULL;
+ }
+ #endif
+ if (!forceit && *mode != 'a' && vim_fexists(fname))
+ {
+! EMSG2(_("E189: \"%s\" exists (add ! to override)"), fname);
+ return NULL;
+ }
+
+ if ((fd = mch_fopen((char *)fname, mode)) == NULL)
+! EMSG2(_("E190: Cannot open \"%s\" for writing"), fname);
+
+ return fd;
+ }
+--- 10223,10240 ----
+ /* with Unix it is possible to open a directory */
+ if (mch_isdir(fname))
+ {
+! semsg(_(e_isadir2), fname);
+ return NULL;
+ }
+ #endif
+ if (!forceit && *mode != 'a' && vim_fexists(fname))
+ {
+! semsg(_("E189: \"%s\" exists (add ! to override)"), fname);
+ return NULL;
+ }
+
+ if ((fd = mch_fopen((char *)fname, mode)) == NULL)
+! semsg(_("E190: Cannot open \"%s\" for writing"), fname);
+
+ return fd;
+ }
+***************
+*** 10248,10263 ****
+ pos_T pos;
+
+ if (*eap->arg == NUL) /* No argument? */
+! EMSG(_(e_argreq));
+ else if (eap->arg[1] != NUL) /* more than one character? */
+! EMSG(_(e_trailing));
+ else
+ {
+ pos = curwin->w_cursor; /* save curwin->w_cursor */
+ curwin->w_cursor.lnum = eap->line2;
+ beginline(BL_WHITE | BL_FIX);
+ if (setmark(*eap->arg) == FAIL) /* set mark */
+! EMSG(_("E191: Argument must be a letter or forward/backward quote"));
+ curwin->w_cursor = pos; /* restore curwin->w_cursor */
+ }
+ }
+--- 10248,10263 ----
+ pos_T pos;
+
+ if (*eap->arg == NUL) /* No argument? */
+! emsg(_(e_argreq));
+ else if (eap->arg[1] != NUL) /* more than one character? */
+! emsg(_(e_trailing));
+ else
+ {
+ pos = curwin->w_cursor; /* save curwin->w_cursor */
+ curwin->w_cursor.lnum = eap->line2;
+ beginline(BL_WHITE | BL_FIX);
+ if (setmark(*eap->arg) == FAIL) /* set mark */
+! emsg(_("E191: Argument must be a letter or forward/backward quote"));
+ curwin->w_cursor = pos; /* restore curwin->w_cursor */
+ }
+ }
+***************
+*** 10339,10350 ****
+
+ if (ex_normal_lock > 0)
+ {
+! EMSG(_(e_secure));
+ return;
+ }
+ if (ex_normal_busy >= p_mmd)
+ {
+! EMSG(_("E192: Recursive use of :normal too deep"));
+ return;
+ }
+
+--- 10339,10350 ----
+
+ if (ex_normal_lock > 0)
+ {
+! emsg(_(e_secure));
+ return;
+ }
+ if (ex_normal_busy >= p_mmd)
+ {
+! emsg(_("E192: Recursive use of :normal too deep"));
+ return;
+ }
+
+***************
+*** 10817,10823 ****
+ char_u *srcstart, /* beginning of valid memory for src */
+ int *usedlen, /* characters after src that are used */
+ linenr_T *lnump, /* line number for :e command, or NULL */
+! char_u **errormsg, /* pointer to error message */
+ int *escaped) /* return value has escaped white space (can
+ * be NULL) */
+ {
+--- 10817,10823 ----
+ char_u *srcstart, /* beginning of valid memory for src */
+ int *usedlen, /* characters after src that are used */
+ linenr_T *lnump, /* line number for :e command, or NULL */
+! char **errormsg, /* pointer to error message */
+ int *escaped) /* return value has escaped white space (can
+ * be NULL) */
+ {
+***************
+*** 10872,10878 ****
+ : FIND_STRING);
+ if (resultlen == 0)
+ {
+! *errormsg = (char_u *)"";
+ return NULL;
+ }
+ }
+--- 10872,10878 ----
+ : FIND_STRING);
+ if (resultlen == 0)
+ {
+! *errormsg = "";
+ return NULL;
+ }
+ }
+***************
+*** 10938,10944 ****
+ (long)i);
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)"";
+ return NULL;
+ }
+ #else
+--- 10938,10944 ----
+ (long)i);
+ if (result == NULL)
+ {
+! *errormsg = "";
+ return NULL;
+ }
+ #else
+***************
+*** 10953,10959 ****
+ buf = buflist_findnr(i);
+ if (buf == NULL)
+ {
+! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
+ return NULL;
+ }
+ if (lnump != NULL)
+--- 10953,10959 ----
+ buf = buflist_findnr(i);
+ if (buf == NULL)
+ {
+! *errormsg = _("E194: No alternate file name to substitute for '#'");
+ return NULL;
+ }
+ if (lnump != NULL)
+***************
+*** 10978,10984 ****
+ result = file_name_at_cursor(FNAME_MESS|FNAME_HYP, 1L, NULL);
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)"";
+ return NULL;
+ }
+ resultbuf = result; /* remember allocated string */
+--- 10978,10984 ----
+ result = file_name_at_cursor(FNAME_MESS|FNAME_HYP, 1L, NULL);
+ if (result == NULL)
+ {
+! *errormsg = "";
+ return NULL;
+ }
+ resultbuf = result; /* remember allocated string */
+***************
+*** 10998,11004 ****
+ }
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
+ return NULL;
+ }
+ result = shorten_fname1(result);
+--- 10998,11004 ----
+ }
+ if (result == NULL)
+ {
+! *errormsg = _("E495: no autocommand file name to substitute for \"<afile>\"");
+ return NULL;
+ }
+ result = shorten_fname1(result);
+***************
+*** 11007,11013 ****
+ case SPEC_ABUF: /* buffer number for autocommand */
+ if (autocmd_bufnr <= 0)
+ {
+! *errormsg = (char_u *)_("E496: no autocommand buffer number to substitute for \"<abuf>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%d", autocmd_bufnr);
+--- 11007,11013 ----
+ case SPEC_ABUF: /* buffer number for autocommand */
+ if (autocmd_bufnr <= 0)
+ {
+! *errormsg = _("E496: no autocommand buffer number to substitute for \"<abuf>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%d", autocmd_bufnr);
+***************
+*** 11018,11024 ****
+ result = autocmd_match;
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)_("E497: no autocommand match name to substitute for \"<amatch>\"");
+ return NULL;
+ }
+ break;
+--- 11018,11024 ----
+ result = autocmd_match;
+ if (result == NULL)
+ {
+! *errormsg = _("E497: no autocommand match name to substitute for \"<amatch>\"");
+ return NULL;
+ }
+ break;
+***************
+*** 11027,11033 ****
+ result = sourcing_name;
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)_("E498: no :source file name to substitute for \"<sfile>\"");
+ return NULL;
+ }
+ break;
+--- 11027,11033 ----
+ result = sourcing_name;
+ if (result == NULL)
+ {
+! *errormsg = _("E498: no :source file name to substitute for \"<sfile>\"");
+ return NULL;
+ }
+ break;
+***************
+*** 11035,11041 ****
+ case SPEC_SLNUM: /* line in file for ":so" command */
+ if (sourcing_name == NULL || sourcing_lnum == 0)
+ {
+! *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
+--- 11035,11041 ----
+ case SPEC_SLNUM: /* line in file for ":so" command */
+ if (sourcing_name == NULL || sourcing_lnum == 0)
+ {
+! *errormsg = _("E842: no line number to use for \"<slnum>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
+***************
+*** 11046,11052 ****
+ case SPEC_SFLNUM: /* line in script file */
+ if (current_sctx.sc_lnum + sourcing_lnum == 0)
+ {
+! *errormsg = (char_u *)_("E961: no line number to use for \"<sflnum>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%ld",
+--- 11046,11052 ----
+ case SPEC_SFLNUM: /* line in script file */
+ if (current_sctx.sc_lnum + sourcing_lnum == 0)
+ {
+! *errormsg = _("E961: no line number to use for \"<sflnum>\"");
+ return NULL;
+ }
+ sprintf((char *)strbuf, "%ld",
+***************
+*** 11082,11088 ****
+ &resultlen);
+ if (result == NULL)
+ {
+! *errormsg = (char_u *)"";
+ return NULL;
+ }
+ }
+--- 11082,11088 ----
+ &resultlen);
+ if (result == NULL)
+ {
+! *errormsg = "";
+ return NULL;
+ }
+ }
+***************
+*** 11093,11101 ****
+ {
+ if (valid != VALID_HEAD + VALID_PATH)
+ /* xgettext:no-c-format */
+! *errormsg = (char_u *)_("E499: Empty file name for '%' or '#', only works with \":p:h\"");
+ else
+! *errormsg = (char_u *)_("E500: Evaluates to an empty string");
+ result = NULL;
+ }
+ else
+--- 11093,11101 ----
+ {
+ if (valid != VALID_HEAD + VALID_PATH)
+ /* xgettext:no-c-format */
+! *errormsg = _("E499: Empty file name for '%' or '#', only works with \":p:h\"");
+ else
+! *errormsg = _("E500: Evaluates to an empty string");
+ result = NULL;
+ }
+ else
+***************
+*** 11182,11188 ****
+ char_u *
+ expand_sfile(char_u *arg)
+ {
+! char_u *errormsg;
+ int len;
+ char_u *result;
+ char_u *newres;
+--- 11182,11188 ----
+ char_u *
+ expand_sfile(char_u *arg)
+ {
+! char *errormsg;
+ int len;
+ char_u *result;
+ char_u *newres;
+***************
+*** 12139,12145 ****
+
+ if (curbuf->b_ffname == NULL)
+ {
+! EMSG(_(e_noname));
+ return NULL;
+ }
+ sname = home_replace_save(NULL, curbuf->b_ffname);
+--- 12139,12145 ----
+
+ if (curbuf->b_ffname == NULL)
+ {
+! emsg(_(e_noname));
+ return NULL;
+ }
+ sname = home_replace_save(NULL, curbuf->b_ffname);
+***************
+*** 12242,12248 ****
+ {
+ if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS
+ | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL)
+! EMSG(_("E195: Cannot open viminfo file for reading"));
+ }
+ else
+ write_viminfo(eap->arg, eap->forceit);
+--- 12242,12248 ----
+ {
+ if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS
+ | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL)
+! emsg(_("E195: Cannot open viminfo file for reading"));
+ }
+ else
+ write_viminfo(eap->arg, eap->forceit);
+***************
+*** 12286,12292 ****
+ set_option_value((char_u *)"keymodel", 0L, (char_u *)"", 0);
+ }
+ else
+! EMSG2(_(e_invarg2), eap->arg);
+ }
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+--- 12286,12292 ----
+ set_option_value((char_u *)"keymodel", 0L, (char_u *)"", 0);
+ }
+ else
+! semsg(_(e_invarg2), eap->arg);
+ }
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+***************
+*** 12348,12354 ****
+ if (*eap->arg == NUL)
+ {
+ /* Print current status. */
+! smsg((char_u *)"filetype detection:%s plugin:%s indent:%s",
+ filetype_detect ? "ON" : "OFF",
+ filetype_plugin ? (filetype_detect ? "ON" : "(on)") : "OFF",
+ filetype_indent ? (filetype_detect ? "ON" : "(on)") : "OFF");
+--- 12348,12354 ----
+ if (*eap->arg == NUL)
+ {
+ /* Print current status. */
+! smsg("filetype detection:%s plugin:%s indent:%s",
+ filetype_detect ? "ON" : "OFF",
+ filetype_plugin ? (filetype_detect ? "ON" : "(on)") : "OFF",
+ filetype_indent ? (filetype_detect ? "ON" : "(on)") : "OFF");
+***************
+*** 12417,12423 ****
+ }
+ }
+ else
+! EMSG2(_(e_invarg2), arg);
+ }
+
+ /*
+--- 12417,12423 ----
+ }
+ }
+ else
+! semsg(_(e_invarg2), arg);
+ }
+
+ /*
+***************
+*** 12448,12454 ****
+ else
+ listdigraphs(eap->forceit);
+ #else
+! EMSG(_("E196: No digraphs in this version"));
+ #endif
+ }
+
+--- 12448,12454 ----
+ else
+ listdigraphs(eap->forceit);
+ #else
+! emsg(_("E196: No digraphs in this version"));
+ #endif
+ }
+
+***************
+*** 12507,12513 ****
+ id = eap->line2;
+ else
+ {
+! EMSG(e_invcmd);
+ return;
+ }
+
+--- 12507,12513 ----
+ id = eap->line2;
+ else
+ {
+! emsg(_(e_invcmd));
+ return;
+ }
+
+***************
+*** 12530,12536 ****
+ {
+ /* There must be two arguments. */
+ vim_free(g);
+! EMSG2(_(e_invarg2), eap->arg);
+ return;
+ }
+ end = skip_regexp(p + 1, *p, TRUE, NULL);
+--- 12530,12536 ----
+ {
+ /* There must be two arguments. */
+ vim_free(g);
+! semsg(_(e_invarg2), eap->arg);
+ return;
+ }
+ end = skip_regexp(p + 1, *p, TRUE, NULL);
+***************
+*** 12545,12551 ****
+ if (*end != *p)
+ {
+ vim_free(g);
+! EMSG2(_(e_invarg2), p);
+ return;
+ }
+
+--- 12545,12551 ----
+ if (*end != *p)
+ {
+ vim_free(g);
+! semsg(_(e_invarg2), p);
+ return;
+ }
+
+*** ../vim-8.1.0742/src/ex_eval.c 2018-09-30 21:43:17.187693348 +0200
+--- src/ex_eval.c 2019-01-13 22:58:42.321795761 +0100
+***************
+*** 16,22 ****
+ #if defined(FEAT_EVAL) || defined(PROTO)
+
+ static int throw_exception(void *, except_type_T, char_u *);
+! static char_u *get_end_emsg(struct condstack *cstack);
+
+ /*
+ * Exception handling terms:
+--- 16,22 ----
+ #if defined(FEAT_EVAL) || defined(PROTO)
+
+ static int throw_exception(void *, except_type_T, char_u *);
+! static char *get_end_emsg(struct condstack *cstack);
+
+ /*
+ * Exception handling terms:
+***************
+*** 255,270 ****
+ if (elem == NULL)
+ {
+ suppress_errthrow = TRUE;
+! EMSG(_(e_outofmem));
+ }
+ else
+ {
+! elem->msg = vim_strsave(mesg);
+ if (elem->msg == NULL)
+ {
+ vim_free(elem);
+ suppress_errthrow = TRUE;
+! EMSG(_(e_outofmem));
+ }
+ else
+ {
+--- 255,270 ----
+ if (elem == NULL)
+ {
+ suppress_errthrow = TRUE;
+! emsg(_(e_outofmem));
+ }
+ else
+ {
+! elem->msg = (char *)vim_strsave(mesg);
+ if (elem->msg == NULL)
+ {
+ vim_free(elem);
+ suppress_errthrow = TRUE;
+! emsg(_(e_outofmem));
+ }
+ else
+ {
+***************
+*** 273,279 ****
+ *plist = elem;
+ if (plist == msg_list || severe)
+ {
+! char_u *tmsg;
+
+ /* Skip the extra "Vim " prefix for message "E458". */
+ tmsg = elem->msg;
+--- 273,279 ----
+ *plist = elem;
+ if (plist == msg_list || severe)
+ {
+! char *tmsg;
+
+ /* Skip the extra "Vim " prefix for message "E458". */
+ tmsg = elem->msg;
+***************
+*** 413,428 ****
+ /*
+ * Get an exception message that is to be stored in current_exception->value.
+ */
+! char_u *
+ get_exception_string(
+ void *value,
+ except_type_T type,
+ char_u *cmdname,
+ int *should_free)
+ {
+! char_u *ret, *mesg;
+ int cmdlen;
+! char_u *p, *val;
+
+ if (type == ET_ERROR)
+ {
+--- 413,429 ----
+ /*
+ * Get an exception message that is to be stored in current_exception->value.
+ */
+! char *
+ get_exception_string(
+ void *value,
+ except_type_T type,
+ char_u *cmdname,
+ int *should_free)
+ {
+! char *ret;
+! char *mesg;
+ int cmdlen;
+! char *p, *val;
+
+ if (type == ET_ERROR)
+ {
+***************
+*** 431,437 ****
+ if (cmdname != NULL && *cmdname != NUL)
+ {
+ cmdlen = (int)STRLEN(cmdname);
+! ret = vim_strnsave((char_u *)"Vim(",
+ 4 + cmdlen + 2 + (int)STRLEN(mesg));
+ if (ret == NULL)
+ return ret;
+--- 432,438 ----
+ if (cmdname != NULL && *cmdname != NUL)
+ {
+ cmdlen = (int)STRLEN(cmdname);
+! ret = (char *)vim_strnsave((char_u *)"Vim(",
+ 4 + cmdlen + 2 + (int)STRLEN(mesg));
+ if (ret == NULL)
+ return ret;
+***************
+*** 441,447 ****
+ }
+ else
+ {
+! ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
+ if (ret == NULL)
+ return ret;
+ val = ret + 4;
+--- 442,448 ----
+ }
+ else
+ {
+! ret = (char *)vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
+ if (ret == NULL)
+ return ret;
+ val = ret + 4;
+***************
+*** 483,489 ****
+ else
+ {
+ *should_free = FALSE;
+! ret = (char_u *)value;
+ }
+
+ return ret;
+--- 484,490 ----
+ else
+ {
+ *should_free = FALSE;
+! ret = value;
+ }
+
+ return ret;
+***************
+*** 513,519 ****
+ && (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
+ || ((char_u *)value)[3] == '('))
+ {
+! EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
+ goto fail;
+ }
+ }
+--- 514,520 ----
+ && (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
+ || ((char_u *)value)[3] == '('))
+ {
+! emsg(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
+ goto fail;
+ }
+ }
+***************
+*** 554,560 ****
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+
+! smsg((char_u *)_("Exception thrown: %s"), excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ if (debug_break_level > 0 || *p_vfile == NUL)
+--- 555,561 ----
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+
+! smsg(_("Exception thrown: %s"), excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ if (debug_break_level > 0 || *p_vfile == NUL)
+***************
+*** 572,578 ****
+ nomem:
+ vim_free(excp);
+ suppress_errthrow = TRUE;
+! EMSG(_(e_outofmem));
+ fail:
+ current_exception = NULL;
+ return FAIL;
+--- 573,579 ----
+ nomem:
+ vim_free(excp);
+ suppress_errthrow = TRUE;
+! emsg(_(e_outofmem));
+ fail:
+ current_exception = NULL;
+ return FAIL;
+***************
+*** 606,613 ****
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+ smsg(was_finished
+! ? (char_u *)_("Exception finished: %s")
+! : (char_u *)_("Exception discarded: %s"),
+ excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ if (debug_break_level > 0 || *p_vfile == NUL)
+--- 607,614 ----
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+ smsg(was_finished
+! ? _("Exception finished: %s")
+! : _("Exception discarded: %s"),
+ excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ if (debug_break_level > 0 || *p_vfile == NUL)
+***************
+*** 651,657 ****
+ {
+ excp->caught = caught_stack;
+ caught_stack = excp;
+! set_vim_var_string(VV_EXCEPTION, excp->value, -1);
+ if (*excp->throw_name != NUL)
+ {
+ if (excp->throw_lnum != 0)
+--- 652,658 ----
+ {
+ excp->caught = caught_stack;
+ caught_stack = excp;
+! set_vim_var_string(VV_EXCEPTION, (char_u *)excp->value, -1);
+ if (*excp->throw_name != NUL)
+ {
+ if (excp->throw_lnum != 0)
+***************
+*** 677,683 ****
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+
+! smsg((char_u *)_("Exception caught: %s"), excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ if (debug_break_level > 0 || *p_vfile == NUL)
+--- 678,684 ----
+ if (debug_break_level > 0 || *p_vfile == NUL)
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+
+! smsg(_("Exception caught: %s"), excp->value);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ if (debug_break_level > 0 || *p_vfile == NUL)
+***************
+*** 701,707 ****
+ caught_stack = caught_stack->caught;
+ if (caught_stack != NULL)
+ {
+! set_vim_var_string(VV_EXCEPTION, caught_stack->value, -1);
+ if (*caught_stack->throw_name != NUL)
+ {
+ if (caught_stack->throw_lnum != 0)
+--- 702,708 ----
+ caught_stack = caught_stack->caught;
+ if (caught_stack != NULL)
+ {
+! set_vim_var_string(VV_EXCEPTION, (char_u *)caught_stack->value, -1);
+ if (*caught_stack->throw_name != NUL)
+ {
+ if (caught_stack->throw_lnum != 0)
+***************
+*** 745,751 ****
+ static void
+ report_pending(int action, int pending, void *value)
+ {
+! char_u *mesg;
+ char *s;
+ int save_msg_silent;
+
+--- 746,752 ----
+ static void
+ report_pending(int action, int pending, void *value)
+ {
+! char *mesg;
+ char *s;
+ int save_msg_silent;
+
+***************
+*** 753,766 ****
+ switch (action)
+ {
+ case RP_MAKE:
+! mesg = (char_u *)_("%s made pending");
+ break;
+ case RP_RESUME:
+! mesg = (char_u *)_("%s resumed");
+ break;
+ /* case RP_DISCARD: */
+ default:
+! mesg = (char_u *)_("%s discarded");
+ break;
+ }
+
+--- 754,767 ----
+ switch (action)
+ {
+ case RP_MAKE:
+! mesg = _("%s made pending");
+ break;
+ case RP_RESUME:
+! mesg = _("%s resumed");
+ break;
+ /* case RP_DISCARD: */
+ default:
+! mesg = _("%s discarded");
+ break;
+ }
+
+***************
+*** 786,794 ****
+ default:
+ if (pending & CSTP_THROW)
+ {
+! vim_snprintf((char *)IObuff, IOSIZE,
+! (char *)mesg, _("Exception"));
+! mesg = vim_strnsave(IObuff, (int)STRLEN(IObuff) + 4);
+ STRCAT(mesg, ": %s");
+ s = (char *)((except_T *)value)->value;
+ }
+--- 787,794 ----
+ default:
+ if (pending & CSTP_THROW)
+ {
+! vim_snprintf((char *)IObuff, IOSIZE, mesg, _("Exception"));
+! mesg = (char *)vim_strnsave(IObuff, (int)STRLEN(IObuff) + 4);
+ STRCAT(mesg, ": %s");
+ s = (char *)((except_T *)value)->value;
+ }
+***************
+*** 805,811 ****
+ msg_silent = FALSE; /* display messages */
+ ++no_wait_return;
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+! smsg(mesg, (char_u *)s);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ cmdline_row = msg_row;
+ --no_wait_return;
+--- 805,811 ----
+ msg_silent = FALSE; /* display messages */
+ ++no_wait_return;
+ msg_scroll = TRUE; /* always scroll up, don't overwrite */
+! smsg(mesg, s);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ cmdline_row = msg_row;
+ --no_wait_return;
+***************
+*** 882,888 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = (char_u *)N_("E579: :if nesting too deep");
+ else
+ {
+ ++cstack->cs_idx;
+--- 882,888 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = N_("E579: :if nesting too deep");
+ else
+ {
+ ++cstack->cs_idx;
+***************
+*** 918,924 ****
+ if (eap->cstack->cs_idx < 0
+ || (eap->cstack->cs_flags[eap->cstack->cs_idx]
+ & (CSF_WHILE | CSF_FOR | CSF_TRY)))
+! eap->errmsg = (char_u *)N_("E580: :endif without :if");
+ else
+ {
+ /*
+--- 918,924 ----
+ if (eap->cstack->cs_idx < 0
+ || (eap->cstack->cs_flags[eap->cstack->cs_idx]
+ & (CSF_WHILE | CSF_FOR | CSF_TRY)))
+! eap->errmsg = N_("E580: :endif without :if");
+ else
+ {
+ /*
+***************
+*** 962,981 ****
+ {
+ if (eap->cmdidx == CMD_else)
+ {
+! eap->errmsg = (char_u *)N_("E581: :else without :if");
+ return;
+ }
+! eap->errmsg = (char_u *)N_("E582: :elseif without :if");
+ skip = TRUE;
+ }
+ else if (cstack->cs_flags[cstack->cs_idx] & CSF_ELSE)
+ {
+ if (eap->cmdidx == CMD_else)
+ {
+! eap->errmsg = (char_u *)N_("E583: multiple :else");
+ return;
+ }
+! eap->errmsg = (char_u *)N_("E584: :elseif after :else");
+ skip = TRUE;
+ }
+
+--- 962,981 ----
+ {
+ if (eap->cmdidx == CMD_else)
+ {
+! eap->errmsg = N_("E581: :else without :if");
+ return;
+ }
+! eap->errmsg = N_("E582: :elseif without :if");
+ skip = TRUE;
+ }
+ else if (cstack->cs_flags[cstack->cs_idx] & CSF_ELSE)
+ {
+ if (eap->cmdidx == CMD_else)
+ {
+! eap->errmsg = N_("E583: multiple :else");
+ return;
+ }
+! eap->errmsg = N_("E584: :elseif after :else");
+ skip = TRUE;
+ }
+
+***************
+*** 1041,1047 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = (char_u *)N_("E585: :while/:for nesting too deep");
+ else
+ {
+ /*
+--- 1041,1047 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = N_("E585: :while/:for nesting too deep");
+ else
+ {
+ /*
+***************
+*** 1138,1144 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = (char_u *)N_("E586: :continue without :while or :for");
+ else
+ {
+ /* Try to find the matching ":while". This might stop at a try
+--- 1138,1144 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = N_("E586: :continue without :while or :for");
+ else
+ {
+ /* Try to find the matching ":while". This might stop at a try
+***************
+*** 1176,1182 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = (char_u *)N_("E587: :break without :while or :for");
+ else
+ {
+ /* Inactivate conditionals until the matching ":while" or a try
+--- 1176,1182 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_looplevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = N_("E587: :break without :while or :for");
+ else
+ {
+ /* Inactivate conditionals until the matching ":while" or a try
+***************
+*** 1200,1206 ****
+ {
+ struct condstack *cstack = eap->cstack;
+ int idx;
+! char_u *err;
+ int csf;
+ int fl;
+
+--- 1200,1206 ----
+ {
+ struct condstack *cstack = eap->cstack;
+ int idx;
+! char *err;
+ int csf;
+ int fl;
+
+***************
+*** 1225,1233 ****
+ /* If we are in a ":while" or ":for" but used the wrong endloop
+ * command, do not rewind to the next enclosing ":for"/":while". */
+ if (fl & CSF_WHILE)
+! eap->errmsg = (char_u *)_("E732: Using :endfor with :while");
+ else if (fl & CSF_FOR)
+! eap->errmsg = (char_u *)_("E733: Using :endwhile with :for");
+ }
+ if (!(fl & (CSF_WHILE | CSF_FOR)))
+ {
+--- 1225,1233 ----
+ /* If we are in a ":while" or ":for" but used the wrong endloop
+ * command, do not rewind to the next enclosing ":for"/":while". */
+ if (fl & CSF_WHILE)
+! eap->errmsg = _("E732: Using :endfor with :while");
+ else if (fl & CSF_FOR)
+! eap->errmsg = _("E733: Using :endwhile with :for");
+ }
+ if (!(fl & (CSF_WHILE | CSF_FOR)))
+ {
+***************
+*** 1291,1297 ****
+ value = eval_to_string_skip(arg, &eap->nextcmd, eap->skip);
+ else
+ {
+! EMSG(_(e_argreq));
+ value = NULL;
+ }
+
+--- 1291,1297 ----
+ value = eval_to_string_skip(arg, &eap->nextcmd, eap->skip);
+ else
+ {
+! emsg(_(e_argreq));
+ value = NULL;
+ }
+
+***************
+*** 1399,1405 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = (char_u *)N_("E601: :try nesting too deep");
+ else
+ {
+ ++cstack->cs_idx;
+--- 1399,1405 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_idx == CSTACK_LEN - 1)
+! eap->errmsg = N_("E601: :try nesting too deep");
+ else
+ {
+ ++cstack->cs_idx;
+***************
+*** 1443,1449 ****
+
+ elem = (eslist_T *)alloc((unsigned)sizeof(struct eslist_elem));
+ if (elem == NULL)
+! EMSG(_(e_outofmem));
+ else
+ {
+ elem->saved_emsg_silent = emsg_silent;
+--- 1443,1449 ----
+
+ elem = (eslist_T *)alloc((unsigned)sizeof(struct eslist_elem));
+ if (elem == NULL)
+! emsg(_(e_outofmem));
+ else
+ {
+ elem->saved_emsg_silent = emsg_silent;
+***************
+*** 1478,1484 ****
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+ {
+! eap->errmsg = (char_u *)N_("E603: :catch without :try");
+ give_up = TRUE;
+ }
+ else
+--- 1478,1484 ----
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+ {
+! eap->errmsg = N_("E603: :catch without :try");
+ give_up = TRUE;
+ }
+ else
+***************
+*** 1497,1503 ****
+ {
+ /* Give up for a ":catch" after ":finally" and ignore it.
+ * Just parse. */
+! eap->errmsg = (char_u *)N_("E604: :catch after :finally");
+ give_up = TRUE;
+ }
+ else
+--- 1497,1503 ----
+ {
+ /* Give up for a ":catch" after ":finally" and ignore it.
+ * Just parse. */
+! eap->errmsg = N_("E604: :catch after :finally");
+ give_up = TRUE;
+ }
+ else
+***************
+*** 1537,1543 ****
+ {
+ if (end != NULL && *end != NUL && !ends_excmd(*skipwhite(end + 1)))
+ {
+! EMSG(_(e_trailing));
+ return;
+ }
+
+--- 1537,1543 ----
+ {
+ if (end != NULL && *end != NUL && !ends_excmd(*skipwhite(end + 1)))
+ {
+! emsg(_(e_trailing));
+ return;
+ }
+
+***************
+*** 1569,1575 ****
+ *end = save_char;
+ p_cpo = save_cpo;
+ if (regmatch.regprog == NULL)
+! EMSG2(_(e_invarg2), pat);
+ else
+ {
+ /*
+--- 1569,1575 ----
+ *end = save_char;
+ p_cpo = save_cpo;
+ if (regmatch.regprog == NULL)
+! semsg(_(e_invarg2), pat);
+ else
+ {
+ /*
+***************
+*** 1579,1586 ****
+ */
+ prev_got_int = got_int;
+ got_int = FALSE;
+! caught = vim_regexec_nl(&regmatch, current_exception->value,
+! (colnr_T)0);
+ got_int |= prev_got_int;
+ vim_regfree(regmatch.regprog);
+ }
+--- 1579,1586 ----
+ */
+ prev_got_int = got_int;
+ got_int = FALSE;
+! caught = vim_regexec_nl(&regmatch,
+! (char_u *)current_exception->value, (colnr_T)0);
+ got_int |= prev_got_int;
+ vim_regfree(regmatch.regprog);
+ }
+***************
+*** 1634,1640 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = (char_u *)N_("E606: :finally without :try");
+ else
+ {
+ if (!(cstack->cs_flags[cstack->cs_idx] & CSF_TRY))
+--- 1634,1640 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = N_("E606: :finally without :try");
+ else
+ {
+ if (!(cstack->cs_flags[cstack->cs_idx] & CSF_TRY))
+***************
+*** 1654,1660 ****
+ if (cstack->cs_flags[idx] & CSF_FINALLY)
+ {
+ /* Give up for a multiple ":finally" and ignore it. */
+! eap->errmsg = (char_u *)N_("E607: multiple :finally");
+ return;
+ }
+ rewind_conditionals(cstack, idx, CSF_WHILE | CSF_FOR,
+--- 1654,1660 ----
+ if (cstack->cs_flags[idx] & CSF_FINALLY)
+ {
+ /* Give up for a multiple ":finally" and ignore it. */
+! eap->errmsg = N_("E607: multiple :finally");
+ return;
+ }
+ rewind_conditionals(cstack, idx, CSF_WHILE | CSF_FOR,
+***************
+*** 1763,1769 ****
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = (char_u *)N_("E602: :endtry without :try");
+ else
+ {
+ /*
+--- 1763,1769 ----
+ struct condstack *cstack = eap->cstack;
+
+ if (cstack->cs_trylevel <= 0 || cstack->cs_idx < 0)
+! eap->errmsg = N_("E602: :endtry without :try");
+ else
+ {
+ /*
+***************
+*** 2223,2229 ****
+ /*
+ * Return an appropriate error message for a missing endwhile/endfor/endif.
+ */
+! static char_u *
+ get_end_emsg(struct condstack *cstack)
+ {
+ if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
+--- 2223,2229 ----
+ /*
+ * Return an appropriate error message for a missing endwhile/endfor/endif.
+ */
+! static char *
+ get_end_emsg(struct condstack *cstack)
+ {
+ if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
+***************
+*** 2264,2270 ****
+ void
+ ex_endfunction(exarg_T *eap UNUSED)
+ {
+! EMSG(_("E193: :endfunction not inside a function"));
+ }
+
+ /*
+--- 2264,2270 ----
+ void
+ ex_endfunction(exarg_T *eap UNUSED)
+ {
+! emsg(_("E193: :endfunction not inside a function"));
+ }
+
+ /*
+*** ../vim-8.1.0742/src/ex_getln.c 2018-12-23 19:10:05.010359907 +0100
+--- src/ex_getln.c 2019-01-13 22:59:08.661612380 +0100
+***************
+*** 275,281 ****
+ int delim_optional = FALSE;
+ int delim;
+ char_u *end;
+! char_u *dummy;
+ exarg_T ea;
+ pos_T save_cursor;
+ int use_last_pat;
+--- 275,281 ----
+ int delim_optional = FALSE;
+ int delim;
+ char_u *end;
+! char *dummy;
+ exarg_T ea;
+ pos_T save_cursor;
+ int use_last_pat;
+***************
+*** 2601,2610 ****
+ void
+ text_locked_msg(void)
+ {
+! EMSG(_(get_text_locked_msg()));
+ }
+
+! char_u *
+ get_text_locked_msg(void)
+ {
+ #ifdef FEAT_CMDWIN
+--- 2601,2610 ----
+ void
+ text_locked_msg(void)
+ {
+! emsg(_(get_text_locked_msg()));
+ }
+
+! char *
+ get_text_locked_msg(void)
+ {
+ #ifdef FEAT_CMDWIN
+***************
+*** 2623,2629 ****
+ {
+ if (curbuf_lock > 0)
+ {
+! EMSG(_("E788: Not allowed to edit another buffer now"));
+ return TRUE;
+ }
+ return allbuf_locked();
+--- 2623,2629 ----
+ {
+ if (curbuf_lock > 0)
+ {
+! emsg(_("E788: Not allowed to edit another buffer now"));
+ return TRUE;
+ }
+ return allbuf_locked();
+***************
+*** 2638,2644 ****
+ {
+ if (allbuf_lock > 0)
+ {
+! EMSG(_("E811: Not allowed to change buffer information now"));
+ return TRUE;
+ }
+ return FALSE;
+--- 2638,2644 ----
+ {
+ if (allbuf_lock > 0)
+ {
+! emsg(_("E811: Not allowed to change buffer information now"));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 4174,4186 ****
+ * causing the pattern to be added, which has illegal characters.
+ */
+ if (!(options & WILD_SILENT) && (options & WILD_LIST_NOTFOUND))
+! EMSG2(_(e_nomatch2), str);
+ #endif
+ }
+ else if (xp->xp_numfiles == 0)
+ {
+ if (!(options & WILD_SILENT))
+! EMSG2(_(e_nomatch2), str);
+ }
+ else
+ {
+--- 4174,4186 ----
+ * causing the pattern to be added, which has illegal characters.
+ */
+ if (!(options & WILD_SILENT) && (options & WILD_LIST_NOTFOUND))
+! semsg(_(e_nomatch2), str);
+ #endif
+ }
+ else if (xp->xp_numfiles == 0)
+ {
+ if (!(options & WILD_SILENT))
+! semsg(_(e_nomatch2), str);
+ }
+ else
+ {
+***************
+*** 4219,4225 ****
+ * (and possibly have to hit return to continue!).
+ */
+ if (!(options & WILD_SILENT))
+! EMSG(_(e_toomany));
+ else if (!(options & WILD_NO_BEEP))
+ beep_flush();
+ }
+--- 4219,4225 ----
+ * (and possibly have to hit return to continue!).
+ */
+ if (!(options & WILD_SILENT))
+! emsg(_(e_toomany));
+ else if (!(options & WILD_NO_BEEP))
+ beep_flush();
+ }
+***************
+*** 6658,6664 ****
+ else
+ {
+ *end = i;
+! EMSG(_(e_trailing));
+ return;
+ }
+ }
+--- 6658,6664 ----
+ else
+ {
+ *end = i;
+! emsg(_(e_trailing));
+ return;
+ }
+ }
+***************
+*** 6670,6676 ****
+ end = arg;
+ if (!get_list_range(&end, &hisidx1, &hisidx2) || *end != NUL)
+ {
+! EMSG(_(e_trailing));
+ return;
+ }
+
+--- 6670,6676 ----
+ end = arg;
+ if (!get_list_range(&end, &hisidx1, &hisidx2) || *end != NUL)
+ {
+! emsg(_(e_trailing));
+ return;
+ }
+
+***************
+*** 7201,7207 ****
+ {
+ if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
+ {
+! EMSG(_("E198: cmd_pchar beyond the command length"));
+ return;
+ }
+ ccline.cmdbuff[ccline.cmdpos + offset] = (char_u)c;
+--- 7201,7207 ----
+ {
+ if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
+ {
+! emsg(_("E198: cmd_pchar beyond the command length"));
+ return;
+ }
+ ccline.cmdbuff[ccline.cmdpos + offset] = (char_u)c;
+***************
+*** 7213,7219 ****
+ {
+ if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
+ {
+! /* EMSG(_("cmd_gchar beyond the command length")); */
+ return NUL;
+ }
+ return (int)ccline.cmdbuff[ccline.cmdpos + offset];
+--- 7213,7219 ----
+ {
+ if (ccline.cmdpos + offset >= ccline.cmdlen || ccline.cmdpos + offset < 0)
+ {
+! // emsg(_("cmd_gchar beyond the command length"));
+ return NUL;
+ }
+ return (int)ccline.cmdbuff[ccline.cmdpos + offset];
+***************
+*** 7392,7398 ****
+ if (!win_valid(old_curwin) || !bufref_valid(&old_curbuf))
+ {
+ cmdwin_result = Ctrl_C;
+! EMSG(_("E199: Active window or buffer deleted"));
+ }
+ else
+ {
+--- 7392,7398 ----
+ if (!win_valid(old_curwin) || !bufref_valid(&old_curbuf))
+ {
+ cmdwin_result = Ctrl_C;
+! emsg(_("E199: Active window or buffer deleted"));
+ }
+ else
+ {
+*** ../vim-8.1.0742/src/farsi.h 2016-08-29 22:42:20.000000000 +0200
+--- src/farsi.h 2019-01-13 20:00:13.856099533 +0100
+***************
+*** 203,209 ****
+ #endif
+ ;
+
+! EXTERN char_u farsi_text_3[]
+ #ifdef DO_INIT
+ = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
+ ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
+--- 203,209 ----
+ #endif
+ ;
+
+! EXTERN char farsi_text_3[]
+ #ifdef DO_INIT
+ = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
+ ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
+*** ../vim-8.1.0742/src/fileio.c 2019-01-12 13:25:42.633479785 +0100
+--- src/fileio.c 2019-01-13 23:00:47.592924735 +0100
+***************
+*** 595,601 ****
+ || (using_b_fname
+ && (old_b_fname != curbuf->b_fname)))
+ {
+! EMSG(_(e_auchangedbuf));
+ return FAIL;
+ }
+ }
+--- 595,601 ----
+ || (using_b_fname
+ && (old_b_fname != curbuf->b_fname)))
+ {
+! emsg(_(e_auchangedbuf));
+ return FAIL;
+ }
+ }
+***************
+*** 676,682 ****
+ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
+ || (using_b_fname && (old_b_fname != curbuf->b_fname))))
+ {
+! EMSG(_(e_auchangedbuf));
+ if (!read_buffer)
+ close(fd);
+ return FAIL;
+--- 676,682 ----
+ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname))
+ || (using_b_fname && (old_b_fname != curbuf->b_fname))))
+ {
+! emsg(_(e_auchangedbuf));
+ if (!read_buffer)
+ close(fd);
+ return FAIL;
+***************
+*** 798,806 ****
+ --no_wait_return;
+ msg_scroll = msg_save;
+ if (fd < 0)
+! EMSG(_("E200: *ReadPre autocommands made the file unreadable"));
+ else
+! EMSG(_("E201: *ReadPre autocommands must not change current buffer"));
+ curbuf->b_p_ro = TRUE; /* must use "w!" now */
+ return FAIL;
+ }
+--- 798,806 ----
+ --no_wait_return;
+ msg_scroll = msg_save;
+ if (fd < 0)
+! emsg(_("E200: *ReadPre autocommands made the file unreadable"));
+ else
+! emsg(_("E201: *ReadPre autocommands must not change current buffer"));
+ curbuf->b_p_ro = TRUE; /* must use "w!" now */
+ return FAIL;
+ }
+***************
+*** 1128,1134 ****
+ if (fd < 0)
+ {
+ /* Re-opening the original file failed! */
+! EMSG(_("E202: Conversion made file unreadable!"));
+ error = TRUE;
+ goto failed;
+ }
+--- 1128,1134 ----
+ if (fd < 0)
+ {
+ /* Re-opening the original file failed! */
+! emsg(_("E202: Conversion made file unreadable!"));
+ error = TRUE;
+ goto failed;
+ }
+***************
+*** 2993,2999 ****
+ * option and don't free it. bf needs hash of the key saved.
+ * Don't ask for the key again when first time Enter was hit.
+ * Happens when retrying to detect encoding. */
+! smsg((char_u *)_(need_key_msg), fname);
+ msg_scroll = TRUE;
+ crypt_check_method(method);
+ cryptkey = crypt_get_key(newfile, FALSE);
+--- 2993,2999 ----
+ * option and don't free it. bf needs hash of the key saved.
+ * Don't ask for the key again when first time Enter was hit.
+ * Happens when retrying to detect encoding. */
+! smsg(_(need_key_msg), fname);
+ msg_scroll = TRUE;
+ crypt_check_method(method);
+ cryptkey = crypt_get_key(newfile, FALSE);
+***************
+*** 3197,3203 ****
+ {
+ /* This can happen during startup when there is a stray "w" in the
+ * vimrc file. */
+! EMSG(_(e_emptybuf));
+ return FAIL;
+ }
+
+--- 3197,3203 ----
+ {
+ /* This can happen during startup when there is a stray "w" in the
+ * vimrc file. */
+! emsg(_(e_emptybuf));
+ return FAIL;
+ }
+
+***************
+*** 3211,3217 ****
+ /* Avoid a crash for a long name. */
+ if (STRLEN(fname) >= MAXPATHL)
+ {
+! EMSG(_(e_longname));
+ return FAIL;
+ }
+
+--- 3211,3217 ----
+ /* Avoid a crash for a long name. */
+ if (STRLEN(fname) >= MAXPATHL)
+ {
+! emsg(_(e_longname));
+ return FAIL;
+ }
+
+***************
+*** 3399,3405 ****
+ --no_wait_return;
+ msg_scroll = msg_save;
+ if (nofile_err)
+! EMSG(_("E676: No matching autocommands for acwrite buffer"));
+
+ if (nofile_err
+ #ifdef FEAT_EVAL
+--- 3399,3405 ----
+ --no_wait_return;
+ msg_scroll = msg_save;
+ if (nofile_err)
+! emsg(_("E676: No matching autocommands for acwrite buffer"));
+
+ if (nofile_err
+ #ifdef FEAT_EVAL
+***************
+*** 3434,3440 ****
+ #ifdef FEAT_EVAL
+ if (!aborting())
+ #endif
+! EMSG(_("E203: Autocommands deleted or unloaded buffer to be written"));
+ return FAIL;
+ }
+
+--- 3434,3440 ----
+ #ifdef FEAT_EVAL
+ if (!aborting())
+ #endif
+! emsg(_("E203: Autocommands deleted or unloaded buffer to be written"));
+ return FAIL;
+ }
+
+***************
+*** 3457,3463 ****
+ {
+ --no_wait_return;
+ msg_scroll = msg_save;
+! EMSG(_("E204: Autocommand changed number of lines in unexpected way"));
+ return FAIL;
+ }
+ }
+--- 3457,3463 ----
+ {
+ --no_wait_return;
+ msg_scroll = msg_save;
+! emsg(_("E204: Autocommand changed number of lines in unexpected way"));
+ return FAIL;
+ }
+ }
+***************
+*** 5055,5061 ****
+ * the current backup file becomes the original file
+ */
+ if (org == NULL)
+! EMSG(_("E205: Patchmode: can't save original file"));
+ else if (mch_stat(org, &st) < 0)
+ {
+ vim_rename(backup, (char_u *)org);
+--- 5055,5061 ----
+ * the current backup file becomes the original file
+ */
+ if (org == NULL)
+! emsg(_("E205: Patchmode: can't save original file"));
+ else if (mch_stat(org, &st) < 0)
+ {
+ vim_rename(backup, (char_u *)org);
+***************
+*** 5077,5083 ****
+ || (empty_fd = mch_open(org,
+ O_CREAT | O_EXTRA | O_EXCL | O_NOFOLLOW,
+ perm < 0 ? 0666 : (perm & 0777))) < 0)
+! EMSG(_("E206: patchmode: can't touch empty original file"));
+ else
+ close(empty_fd);
+ }
+--- 5077,5083 ----
+ || (empty_fd = mch_open(org,
+ O_CREAT | O_EXTRA | O_EXCL | O_NOFOLLOW,
+ perm < 0 ? 0666 : (perm & 0777))) < 0)
+! emsg(_("E206: patchmode: can't touch empty original file"));
+ else
+ close(empty_fd);
+ }
+***************
+*** 5092,5098 ****
+ * Remove the backup unless 'backup' option is set
+ */
+ if (!p_bk && backup != NULL && mch_remove(backup) != 0)
+! EMSG(_("E207: Can't delete backup file"));
+
+ #ifdef FEAT_SUN_WORKSHOP
+ if (usingSunWorkShop)
+--- 5092,5098 ----
+ * Remove the backup unless 'backup' option is set
+ */
+ if (!p_bk && backup != NULL && mch_remove(backup) != 0)
+! emsg(_("E207: Can't delete backup file"));
+
+ #ifdef FEAT_SUN_WORKSHOP
+ if (usingSunWorkShop)
+***************
+*** 5151,5157 ****
+ mch_memmove(IObuff, errnum, (size_t)numlen);
+ }
+ STRCAT(IObuff, errmsg);
+! emsg(IObuff);
+ if (errmsg_allocated)
+ vim_free(errmsg);
+
+--- 5151,5157 ----
+ mch_memmove(IObuff, errnum, (size_t)numlen);
+ }
+ STRCAT(IObuff, errmsg);
+! emsg((char *)IObuff);
+ if (errmsg_allocated)
+ vim_free(errmsg);
+
+***************
+*** 5251,5257 ****
+ if (curbuf != buf)
+ {
+ /* We are in another buffer now, don't do the renaming. */
+! EMSG(_(e_auchangedbuf));
+ return FAIL;
+ }
+
+--- 5251,5257 ----
+ if (curbuf != buf)
+ {
+ /* We are in another buffer now, don't do the renaming. */
+! emsg(_(e_auchangedbuf));
+ return FAIL;
+ }
+
+***************
+*** 6732,6738 ****
+ #endif
+ if (errmsg != NULL)
+ {
+! EMSG2(errmsg, to);
+ return -1;
+ }
+ mch_remove(from);
+--- 6732,6738 ----
+ #endif
+ if (errmsg != NULL)
+ {
+! semsg(errmsg, to);
+ return -1;
+ }
+ mch_remove(from);
+***************
+*** 6872,6878 ****
+ int stat_res;
+ int retval = 0;
+ char_u *path;
+! char_u *tbuf;
+ char *mesg = NULL;
+ char *mesg2 = "";
+ int helpmesg = FALSE;
+--- 6872,6878 ----
+ int stat_res;
+ int retval = 0;
+ char_u *path;
+! char *tbuf;
+ char *mesg = NULL;
+ char *mesg2 = "";
+ int helpmesg = FALSE;
+***************
+*** 6983,6989 ****
+ if (n)
+ {
+ if (!bufref_valid(&bufref))
+! EMSG(_("E246: FileChangedShell autocommand deleted buffer"));
+ #ifdef FEAT_EVAL
+ s = get_vim_var_str(VV_FCS_CHOICE);
+ if (STRCMP(s, "reload") == 0 && *reason != 'd')
+--- 6983,6989 ----
+ if (n)
+ {
+ if (!bufref_valid(&bufref))
+! emsg(_("E246: FileChangedShell autocommand deleted buffer"));
+ #ifdef FEAT_EVAL
+ s = get_vim_var_str(VV_FCS_CHOICE);
+ if (STRCMP(s, "reload") == 0 && *reason != 'd')
+***************
+*** 7052,7064 ****
+ {
+ if (!helpmesg)
+ mesg2 = "";
+! tbuf = alloc((unsigned)(STRLEN(path) + STRLEN(mesg)
+ + STRLEN(mesg2) + 2));
+! sprintf((char *)tbuf, mesg, path);
+ #ifdef FEAT_EVAL
+ /* Set warningmsg here, before the unimportant and output-specific
+ * mesg2 has been appended. */
+! set_vim_var_string(VV_WARNINGMSG, tbuf, -1);
+ #endif
+ #if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG)
+ if (can_reload)
+--- 7052,7064 ----
+ {
+ if (!helpmesg)
+ mesg2 = "";
+! tbuf = (char *)alloc((unsigned)(STRLEN(path) + STRLEN(mesg)
+ + STRLEN(mesg2) + 2));
+! sprintf(tbuf, mesg, path);
+ #ifdef FEAT_EVAL
+ /* Set warningmsg here, before the unimportant and output-specific
+ * mesg2 has been appended. */
+! set_vim_var_string(VV_WARNINGMSG, (char_u *)tbuf, -1);
+ #endif
+ #if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG)
+ if (can_reload)
+***************
+*** 7068,7074 ****
+ STRCAT(tbuf, "\n");
+ STRCAT(tbuf, mesg2);
+ }
+! if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
+ (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
+ reload = TRUE;
+ }
+--- 7068,7075 ----
+ STRCAT(tbuf, "\n");
+ STRCAT(tbuf, mesg2);
+ }
+! if (do_dialog(VIM_WARNING, (char_u *)_("Warning"),
+! (char_u *)tbuf,
+ (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
+ reload = TRUE;
+ }
+***************
+*** 7081,7087 ****
+ STRCAT(tbuf, "; ");
+ STRCAT(tbuf, mesg2);
+ }
+! EMSG(tbuf);
+ retval = 2;
+ }
+ else
+--- 7082,7088 ----
+ STRCAT(tbuf, "; ");
+ STRCAT(tbuf, mesg2);
+ }
+! emsg(tbuf);
+ retval = 2;
+ }
+ else
+***************
+*** 7089,7095 ****
+ if (!autocmd_busy)
+ {
+ msg_start();
+! msg_puts_attr(tbuf, HL_ATTR(HLF_E) + MSG_HIST);
+ if (*mesg2 != NUL)
+ msg_puts_attr((char_u *)mesg2,
+ HL_ATTR(HLF_W) + MSG_HIST);
+--- 7090,7096 ----
+ if (!autocmd_busy)
+ {
+ msg_start();
+! msg_puts_attr((char_u *)tbuf, HL_ATTR(HLF_E) + MSG_HIST);
+ if (*mesg2 != NUL)
+ msg_puts_attr((char_u *)mesg2,
+ HL_ATTR(HLF_W) + MSG_HIST);
+***************
+*** 7213,7219 ****
+ if (savebuf == NULL || saved == FAIL || buf != curbuf
+ || move_lines(buf, savebuf) == FAIL)
+ {
+! EMSG2(_("E462: Could not prepare for reloading \"%s\""),
+ buf->b_fname);
+ saved = FAIL;
+ }
+--- 7214,7220 ----
+ if (savebuf == NULL || saved == FAIL || buf != curbuf
+ || move_lines(buf, savebuf) == FAIL)
+ {
+! semsg(_("E462: Could not prepare for reloading \"%s\""),
+ buf->b_fname);
+ saved = FAIL;
+ }
+***************
+*** 7230,7236 ****
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! EMSG2(_("E321: Could not reload \"%s\""), buf->b_fname);
+ if (savebuf != NULL && bufref_valid(&bufref) && buf == curbuf)
+ {
+ /* Put the text back from the save buffer. First
+--- 7231,7237 ----
+ #if defined(FEAT_EVAL)
+ if (!aborting())
+ #endif
+! semsg(_("E321: Could not reload \"%s\""), buf->b_fname);
+ if (savebuf != NULL && bufref_valid(&bufref) && buf == curbuf)
+ {
+ /* Put the text back from the save buffer. First
+***************
+*** 8076,8083 ****
+ if (p_verbose >= 6)
+ {
+ verbose_enter();
+! smsg((char_u *)
+! _("auto-removing autocommand: %s <buffer=%d>"),
+ event_nr2name(event), buf->b_fnum);
+ verbose_leave();
+ }
+--- 8077,8083 ----
+ if (p_verbose >= 6)
+ {
+ verbose_enter();
+! smsg(_("auto-removing autocommand: %s <buffer=%d>"),
+ event_nr2name(event), buf->b_fnum);
+ verbose_leave();
+ }
+***************
+*** 8121,8129 ****
+
+ i = au_find_group(name);
+ if (i == AUGROUP_ERROR) /* the group doesn't exist */
+! EMSG2(_("E367: No such group: \"%s\""), name);
+ else if (i == current_augroup)
+! EMSG(_("E936: Cannot delete the current group"));
+ else
+ {
+ event_T event;
+--- 8121,8129 ----
+
+ i = au_find_group(name);
+ if (i == AUGROUP_ERROR) /* the group doesn't exist */
+! semsg(_("E367: No such group: \"%s\""), name);
+ else if (i == current_augroup)
+! emsg(_("E936: Cannot delete the current group"));
+ else
+ {
+ event_T event;
+***************
+*** 8188,8194 ****
+ if (del_group)
+ {
+ if (*arg == NUL)
+! EMSG(_(e_argreq));
+ else
+ au_del_group(arg);
+ }
+--- 8188,8194 ----
+ if (del_group)
+ {
+ if (*arg == NUL)
+! emsg(_(e_argreq));
+ else
+ au_del_group(arg);
+ }
+***************
+*** 8295,8301 ****
+ {
+ if (arg[1] && !VIM_ISWHITE(arg[1]))
+ {
+! EMSG2(_("E215: Illegal character after *: %s"), arg);
+ return NULL;
+ }
+ pat = arg + 1;
+--- 8295,8301 ----
+ {
+ if (arg[1] && !VIM_ISWHITE(arg[1]))
+ {
+! semsg(_("E215: Illegal character after *: %s"), arg);
+ return NULL;
+ }
+ pat = arg + 1;
+***************
+*** 8307,8315 ****
+ if ((int)event_name2nr(pat, &p) >= (int)NUM_EVENTS)
+ {
+ if (have_group)
+! EMSG2(_("E216: No such event: %s"), pat);
+ else
+! EMSG2(_("E216: No such group or event: %s"), pat);
+ return NULL;
+ }
+ }
+--- 8307,8315 ----
+ if ((int)event_name2nr(pat, &p) >= (int)NUM_EVENTS)
+ {
+ if (have_group)
+! semsg(_("E216: No such event: %s"), pat);
+ else
+! semsg(_("E216: No such group or event: %s"), pat);
+ return NULL;
+ }
+ }
+***************
+*** 8773,8779 ****
+ if (is_buflocal && (buflocal_nr == 0
+ || buflist_findnr(buflocal_nr) == NULL))
+ {
+! EMSGN(_("E680: <buffer=%d>: invalid buffer number "),
+ buflocal_nr);
+ return FAIL;
+ }
+--- 8773,8779 ----
+ if (is_buflocal && (buflocal_nr == 0
+ || buflist_findnr(buflocal_nr) == NULL))
+ {
+! semsg(_("E680: <buffer=%d>: invalid buffer number "),
+ buflocal_nr);
+ return FAIL;
+ }
+***************
+*** 8876,8882 ****
+
+ if (*arg == '*')
+ {
+! EMSG(_("E217: Can't execute autocommands for ALL events"));
+ return FAIL;
+ }
+
+--- 8876,8882 ----
+
+ if (*arg == '*')
+ {
+! emsg(_("E217: Can't execute autocommands for ALL events"));
+ return FAIL;
+ }
+
+***************
+*** 9461,9467 ****
+ */
+ if (nesting == 10)
+ {
+! EMSG(_("E218: autocommand nesting too deep"));
+ goto BYPASS_AU;
+ }
+
+--- 9461,9467 ----
+ */
+ if (nesting == 10)
+ {
+! emsg(_("E218: autocommand nesting too deep"));
+ goto BYPASS_AU;
+ }
+
+***************
+*** 9869,9875 ****
+ if (p_verbose >= 8)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Executing %s"), sourcing_name);
+ verbose_leave();
+ }
+ }
+--- 9869,9875 ----
+ if (p_verbose >= 8)
+ {
+ verbose_enter();
+! smsg(_("Executing %s"), sourcing_name);
+ verbose_leave();
+ }
+ }
+***************
+*** 9935,9941 ****
+ if (p_verbose >= 9)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)_("autocommand %s"), ac->cmd);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ verbose_leave_scroll();
+ }
+--- 9935,9941 ----
+ if (p_verbose >= 9)
+ {
+ verbose_enter_scroll();
+! smsg(_("autocommand %s"), ac->cmd);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+ verbose_leave_scroll();
+ }
+***************
+*** 10483,10491 ****
+ if (nested != 0)
+ {
+ if (nested < 0)
+! EMSG(_("E219: Missing {."));
+ else
+! EMSG(_("E220: Missing }."));
+ VIM_CLEAR(reg_pat);
+ }
+ return reg_pat;
+--- 10483,10491 ----
+ if (nested != 0)
+ {
+ if (nested < 0)
+! emsg(_("E219: Missing {."));
+ else
+! emsg(_("E220: Missing }."));
+ VIM_CLEAR(reg_pat);
+ }
+ return reg_pat;
+*** ../vim-8.1.0742/src/fold.c 2018-11-14 21:45:28.996589969 +0100
+--- src/fold.c 2019-01-13 19:49:46.021533677 +0100
+***************
+*** 410,416 ****
+ (void)hasFolding(lnum, NULL, &lnum_next);
+ }
+ if (done == DONE_NOTHING)
+! EMSG(_(e_nofold));
+ /* Force a redraw to remove the Visual highlighting. */
+ if (had_visual)
+ redraw_curbuf_later(INVERTED);
+--- 410,416 ----
+ (void)hasFolding(lnum, NULL, &lnum_next);
+ }
+ if (done == DONE_NOTHING)
+! emsg(_(e_nofold));
+ /* Force a redraw to remove the Visual highlighting. */
+ if (had_visual)
+ redraw_curbuf_later(INVERTED);
+***************
+*** 561,569 ****
+ if (foldmethodIsManual(curwin) || foldmethodIsMarker(curwin))
+ return TRUE;
+ if (create)
+! EMSG(_("E350: Cannot create fold with current 'foldmethod'"));
+ else
+! EMSG(_("E351: Cannot delete fold with current 'foldmethod'"));
+ return FALSE;
+ }
+
+--- 561,569 ----
+ if (foldmethodIsManual(curwin) || foldmethodIsMarker(curwin))
+ return TRUE;
+ if (create)
+! emsg(_("E350: Cannot create fold with current 'foldmethod'"));
+ else
+! emsg(_("E351: Cannot delete fold with current 'foldmethod'"));
+ return FALSE;
+ }
+
+***************
+*** 775,781 ****
+ }
+ if (!did_one)
+ {
+! EMSG(_(e_nofold));
+ /* Force a redraw to remove the Visual highlighting. */
+ if (had_visual)
+ redraw_curbuf_later(INVERTED);
+--- 775,781 ----
+ }
+ if (!did_one)
+ {
+! emsg(_(e_nofold));
+ /* Force a redraw to remove the Visual highlighting. */
+ if (had_visual)
+ redraw_curbuf_later(INVERTED);
+***************
+*** 1211,1217 ****
+ {
+ /* Only give an error message when no fold could be opened. */
+ if (n == 0 && !(done & DONE_FOLD))
+! EMSG(_(e_nofold));
+ break;
+ }
+ }
+--- 1211,1217 ----
+ {
+ /* Only give an error message when no fold could be opened. */
+ if (n == 0 && !(done & DONE_FOLD))
+! emsg(_(e_nofold));
+ break;
+ }
+ }
+***************
+*** 1363,1369 ****
+ done |= DONE_FOLD;
+ }
+ else if (donep == NULL && wp == curwin)
+! EMSG(_(e_nofold));
+
+ if (donep != NULL)
+ *donep |= done;
+--- 1363,1369 ----
+ done |= DONE_FOLD;
+ }
+ else if (donep == NULL && wp == curwin)
+! emsg(_(e_nofold));
+
+ if (donep != NULL)
+ *donep |= done;
+***************
+*** 1735,1741 ****
+ {
+ if (!curbuf->b_p_ma)
+ {
+! EMSG(_(e_modifiable));
+ return;
+ }
+ parseMarker(curwin);
+--- 1735,1741 ----
+ {
+ if (!curbuf->b_p_ma)
+ {
+! emsg(_(e_modifiable));
+ return;
+ }
+ parseMarker(curwin);
+*** ../vim-8.1.0742/src/getchar.c 2018-10-07 23:16:33.134616234 +0200
+--- src/getchar.c 2019-01-13 19:49:56.993431369 +0100
+***************
+*** 237,243 ****
+ }
+ else if (buf->bh_curr == NULL) /* buffer has already been read */
+ {
+! IEMSG(_("E222: Add to read buffer"));
+ return;
+ }
+ else if (buf->bh_index != 0)
+--- 237,243 ----
+ }
+ else if (buf->bh_curr == NULL) /* buffer has already been read */
+ {
+! iemsg(_("E222: Add to read buffer"));
+ return;
+ }
+ else if (buf->bh_index != 0)
+***************
+*** 998,1004 ****
+ newlen = typebuf.tb_len + addlen + newoff + 4 * (MAXMAPLEN + 4);
+ if (newlen < 0) /* string is getting too long */
+ {
+! EMSG(_(e_toocompl)); /* also calls flush_buffers */
+ setcursor();
+ return FAIL;
+ }
+--- 998,1004 ----
+ newlen = typebuf.tb_len + addlen + newoff + 4 * (MAXMAPLEN + 4);
+ if (newlen < 0) /* string is getting too long */
+ {
+! emsg(_(e_toocompl)); /* also calls flush_buffers */
+ setcursor();
+ return FAIL;
+ }
+***************
+*** 1431,1437 ****
+ {
+ if (curscript + 1 == NSCRIPT)
+ {
+! EMSG(_(e_nesting));
+ return;
+ }
+ #ifdef FEAT_EVAL
+--- 1431,1437 ----
+ {
+ if (curscript + 1 == NSCRIPT)
+ {
+! emsg(_(e_nesting));
+ return;
+ }
+ #ifdef FEAT_EVAL
+***************
+*** 1446,1452 ****
+ expand_env(name, NameBuff, MAXPATHL);
+ if ((scriptin[curscript] = mch_fopen((char *)NameBuff, READBIN)) == NULL)
+ {
+! EMSG2(_(e_notopen), name);
+ if (curscript)
+ --curscript;
+ return;
+--- 1446,1452 ----
+ expand_env(name, NameBuff, MAXPATHL);
+ if ((scriptin[curscript] = mch_fopen((char *)NameBuff, READBIN)) == NULL)
+ {
+! semsg(_(e_notopen), name);
+ if (curscript)
+ --curscript;
+ return;
+***************
+*** 2508,2514 ****
+ */
+ if (++mapdepth >= p_mmd)
+ {
+! EMSG(_("E223: recursive mapping"));
+ if (State & CMDLINE)
+ redrawcmdline();
+ else
+--- 2508,2514 ----
+ */
+ if (++mapdepth >= p_mmd)
+ {
+! emsg(_("E223: recursive mapping"));
+ if (State & CMDLINE)
+ redrawcmdline();
+ else
+***************
+*** 3508,3517 ****
+ && STRNCMP(mp->m_keys, keys, (size_t)len) == 0)
+ {
+ if (abbrev)
+! EMSG2(_("E224: global abbreviation already exists for %s"),
+ mp->m_keys);
+ else
+! EMSG2(_("E225: global mapping already exists for %s"),
+ mp->m_keys);
+ retval = 5;
+ goto theend;
+--- 3508,3517 ----
+ && STRNCMP(mp->m_keys, keys, (size_t)len) == 0)
+ {
+ if (abbrev)
+! semsg(_("E224: global abbreviation already exists for %s"),
+ mp->m_keys);
+ else
+! semsg(_("E225: global mapping already exists for %s"),
+ mp->m_keys);
+ retval = 5;
+ goto theend;
+***************
+*** 3643,3652 ****
+ else if (unique)
+ {
+ if (abbrev)
+! EMSG2(_("E226: abbreviation already exists for %s"),
+ p);
+ else
+! EMSG2(_("E227: mapping already exists for %s"), p);
+ retval = 5;
+ goto theend;
+ }
+--- 3643,3652 ----
+ else if (unique)
+ {
+ if (abbrev)
+! semsg(_("E226: abbreviation already exists for %s"),
+ p);
+ else
+! semsg(_("E227: mapping already exists for %s"), p);
+ retval = 5;
+ goto theend;
+ }
+***************
+*** 3892,3898 ****
+ local = (STRCMP(arg, "<buffer>") == 0);
+ if (!local && *arg != NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ #endif
+--- 3892,3898 ----
+ local = (STRCMP(arg, "<buffer>") == 0);
+ if (!local && *arg != NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ #endif
+***************
+*** 4920,4926 ****
+ c1 = 't';
+ break;
+ default:
+! IEMSG(_("E228: makemap: Illegal mode"));
+ return FAIL;
+ }
+ do /* do this twice if c2 is set, 3 times with c3 */
+--- 4920,4926 ----
+ c1 = 't';
+ break;
+ default:
+! iemsg(_("E228: makemap: Illegal mode"));
+ return FAIL;
+ }
+ do /* do this twice if c2 is set, 3 times with c3 */
+*** ../vim-8.1.0742/src/globals.h 2019-01-12 22:47:01.264088074 +0100
+--- src/globals.h 2019-01-13 20:05:39.345471559 +0100
+***************
+*** 1391,1444 ****
+ * The error messages that can be shared are included here.
+ * Excluded are errors that are only used once and debugging messages.
+ */
+! EXTERN char_u e_abort[] INIT(= N_("E470: Command aborted"));
+! EXTERN char_u e_argreq[] INIT(= N_("E471: Argument required"));
+! EXTERN char_u e_backslash[] INIT(= N_("E10: \\ should be followed by /, ? or &"));
+ #ifdef FEAT_CMDWIN
+! EXTERN char_u e_cmdwin[] INIT(= N_("E11: Invalid in command-line window; <CR> executes, CTRL-C quits"));
+ #endif
+! EXTERN char_u e_curdir[] INIT(= N_("E12: Command not allowed from exrc/vimrc in current dir or tag search"));
+ #ifdef FEAT_EVAL
+! EXTERN char_u e_endif[] INIT(= N_("E171: Missing :endif"));
+! EXTERN char_u e_endtry[] INIT(= N_("E600: Missing :endtry"));
+! EXTERN char_u e_endwhile[] INIT(= N_("E170: Missing :endwhile"));
+! EXTERN char_u e_endfor[] INIT(= N_("E170: Missing :endfor"));
+! EXTERN char_u e_while[] INIT(= N_("E588: :endwhile without :while"));
+! EXTERN char_u e_for[] INIT(= N_("E588: :endfor without :for"));
+ #endif
+! EXTERN char_u e_exists[] INIT(= N_("E13: File exists (add ! to override)"));
+! EXTERN char_u e_failed[] INIT(= N_("E472: Command failed"));
+ #if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
+! EXTERN char_u e_fontset[] INIT(= N_("E234: Unknown fontset: %s"));
+ #endif
+ #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \
+ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN)
+! EXTERN char_u e_font[] INIT(= N_("E235: Unknown font: %s"));
+ #endif
+ #if defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)
+! EXTERN char_u e_fontwidth[] INIT(= N_("E236: Font \"%s\" is not fixed-width"));
+ #endif
+! EXTERN char_u e_internal[] INIT(= N_("E473: Internal error"));
+! EXTERN char_u e_intern2[] INIT(= N_("E685: Internal error: %s"));
+! EXTERN char_u e_interr[] INIT(= N_("Interrupted"));
+! EXTERN char_u e_invaddr[] INIT(= N_("E14: Invalid address"));
+! EXTERN char_u e_invarg[] INIT(= N_("E474: Invalid argument"));
+! EXTERN char_u e_invarg2[] INIT(= N_("E475: Invalid argument: %s"));
+! EXTERN char_u e_invargval[] INIT(= N_("E475: Invalid value for argument %s"));
+! EXTERN char_u e_invargNval[] INIT(= N_("E475: Invalid value for argument %s: %s"));
+ #ifdef FEAT_EVAL
+! EXTERN char_u e_invexpr2[] INIT(= N_("E15: Invalid expression: %s"));
+ #endif
+! EXTERN char_u e_invrange[] INIT(= N_("E16: Invalid range"));
+! EXTERN char_u e_invcmd[] INIT(= N_("E476: Invalid command"));
+ #if defined(UNIX) || defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+! EXTERN char_u e_isadir2[] INIT(= N_("E17: \"%s\" is a directory"));
+ #endif
+ #ifdef FEAT_LIBCALL
+! EXTERN char_u e_libcall[] INIT(= N_("E364: Library call failed for \"%s()\""));
+ #endif
+ #ifdef HAVE_FSYNC
+! EXTERN char_u e_fsync[] INIT(= N_("E667: Fsync failed"));
+ #endif
+ #if defined(DYNAMIC_PERL) \
+ || defined(DYNAMIC_PYTHON) || defined(DYNAMIC_PYTHON3) \
+--- 1391,1444 ----
+ * The error messages that can be shared are included here.
+ * Excluded are errors that are only used once and debugging messages.
+ */
+! EXTERN char e_abort[] INIT(= N_("E470: Command aborted"));
+! EXTERN char e_argreq[] INIT(= N_("E471: Argument required"));
+! EXTERN char e_backslash[] INIT(= N_("E10: \\ should be followed by /, ? or &"));
+ #ifdef FEAT_CMDWIN
+! EXTERN char e_cmdwin[] INIT(= N_("E11: Invalid in command-line window; <CR> executes, CTRL-C quits"));
+ #endif
+! EXTERN char e_curdir[] INIT(= N_("E12: Command not allowed from exrc/vimrc in current dir or tag search"));
+ #ifdef FEAT_EVAL
+! EXTERN char e_endif[] INIT(= N_("E171: Missing :endif"));
+! EXTERN char e_endtry[] INIT(= N_("E600: Missing :endtry"));
+! EXTERN char e_endwhile[] INIT(= N_("E170: Missing :endwhile"));
+! EXTERN char e_endfor[] INIT(= N_("E170: Missing :endfor"));
+! EXTERN char e_while[] INIT(= N_("E588: :endwhile without :while"));
+! EXTERN char e_for[] INIT(= N_("E588: :endfor without :for"));
+ #endif
+! EXTERN char e_exists[] INIT(= N_("E13: File exists (add ! to override)"));
+! EXTERN char e_failed[] INIT(= N_("E472: Command failed"));
+ #if defined(FEAT_GUI) && defined(FEAT_XFONTSET)
+! EXTERN char e_fontset[] INIT(= N_("E234: Unknown fontset: %s"));
+ #endif
+ #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MAC) \
+ || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MSWIN)
+! EXTERN char e_font[] INIT(= N_("E235: Unknown font: %s"));
+ #endif
+ #if defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)
+! EXTERN char e_fontwidth[] INIT(= N_("E236: Font \"%s\" is not fixed-width"));
+ #endif
+! EXTERN char e_internal[] INIT(= N_("E473: Internal error"));
+! EXTERN char e_intern2[] INIT(= N_("E685: Internal error: %s"));
+! EXTERN char e_interr[] INIT(= N_("Interrupted"));
+! EXTERN char e_invaddr[] INIT(= N_("E14: Invalid address"));
+! EXTERN char e_invarg[] INIT(= N_("E474: Invalid argument"));
+! EXTERN char e_invarg2[] INIT(= N_("E475: Invalid argument: %s"));
+! EXTERN char e_invargval[] INIT(= N_("E475: Invalid value for argument %s"));
+! EXTERN char e_invargNval[] INIT(= N_("E475: Invalid value for argument %s: %s"));
+ #ifdef FEAT_EVAL
+! EXTERN char e_invexpr2[] INIT(= N_("E15: Invalid expression: %s"));
+ #endif
+! EXTERN char e_invrange[] INIT(= N_("E16: Invalid range"));
+! EXTERN char e_invcmd[] INIT(= N_("E476: Invalid command"));
+ #if defined(UNIX) || defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+! EXTERN char e_isadir2[] INIT(= N_("E17: \"%s\" is a directory"));
+ #endif
+ #ifdef FEAT_LIBCALL
+! EXTERN char e_libcall[] INIT(= N_("E364: Library call failed for \"%s()\""));
+ #endif
+ #ifdef HAVE_FSYNC
+! EXTERN char e_fsync[] INIT(= N_("E667: Fsync failed"));
+ #endif
+ #if defined(DYNAMIC_PERL) \
+ || defined(DYNAMIC_PYTHON) || defined(DYNAMIC_PYTHON3) \
+***************
+*** 1448,1592 ****
+ || defined(DYNAMIC_GETTEXT) \
+ || defined(DYNAMIC_MZSCHEME) \
+ || defined(DYNAMIC_LUA)
+! EXTERN char_u e_loadlib[] INIT(= N_("E370: Could not load library %s"));
+! EXTERN char_u e_loadfunc[] INIT(= N_("E448: Could not load library function %s"));
+ #endif
+! EXTERN char_u e_markinval[] INIT(= N_("E19: Mark has invalid line number"));
+! EXTERN char_u e_marknotset[] INIT(= N_("E20: Mark not set"));
+! EXTERN char_u e_modifiable[] INIT(= N_("E21: Cannot make changes, 'modifiable' is off"));
+! EXTERN char_u e_nesting[] INIT(= N_("E22: Scripts nested too deep"));
+! EXTERN char_u e_noalt[] INIT(= N_("E23: No alternate file"));
+! EXTERN char_u e_noabbr[] INIT(= N_("E24: No such abbreviation"));
+! EXTERN char_u e_nobang[] INIT(= N_("E477: No ! allowed"));
+ #ifndef FEAT_GUI
+! EXTERN char_u e_nogvim[] INIT(= N_("E25: GUI cannot be used: Not enabled at compile time"));
+ #endif
+ #ifndef FEAT_RIGHTLEFT
+! EXTERN char_u e_nohebrew[] INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
+ #endif
+ #ifndef FEAT_FKMAP
+! EXTERN char_u e_nofarsi[] INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
+ #endif
+ #ifndef FEAT_ARABIC
+! EXTERN char_u e_noarabic[] INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
+ #endif
+ #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_SYN_HL)
+! EXTERN char_u e_nogroup[] INIT(= N_("E28: No such highlight group name: %s"));
+ #endif
+! EXTERN char_u e_noinstext[] INIT(= N_("E29: No inserted text yet"));
+! EXTERN char_u e_nolastcmd[] INIT(= N_("E30: No previous command line"));
+! EXTERN char_u e_nomap[] INIT(= N_("E31: No such mapping"));
+! EXTERN char_u e_nomatch[] INIT(= N_("E479: No match"));
+! EXTERN char_u e_nomatch2[] INIT(= N_("E480: No match: %s"));
+! EXTERN char_u e_noname[] INIT(= N_("E32: No file name"));
+! EXTERN char_u e_nopresub[] INIT(= N_("E33: No previous substitute regular expression"));
+! EXTERN char_u e_noprev[] INIT(= N_("E34: No previous command"));
+! EXTERN char_u e_noprevre[] INIT(= N_("E35: No previous regular expression"));
+! EXTERN char_u e_norange[] INIT(= N_("E481: No range allowed"));
+! EXTERN char_u e_noroom[] INIT(= N_("E36: Not enough room"));
+ #ifdef FEAT_CLIENTSERVER
+! EXTERN char_u e_noserver[] INIT(= N_("E247: no registered server named \"%s\""));
+ #endif
+! EXTERN char_u e_notcreate[] INIT(= N_("E482: Can't create file %s"));
+! EXTERN char_u e_notmp[] INIT(= N_("E483: Can't get temp file name"));
+! EXTERN char_u e_notopen[] INIT(= N_("E484: Can't open file %s"));
+! EXTERN char_u e_notread[] INIT(= N_("E485: Can't read file %s"));
+! EXTERN char_u e_null[] INIT(= N_("E38: Null argument"));
+ #if defined(FEAT_DIGRAPHS) || defined(FEAT_TIMERS)
+! EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected"));
+ #endif
+ #ifdef FEAT_QUICKFIX
+! EXTERN char_u e_openerrf[] INIT(= N_("E40: Can't open errorfile %s"));
+ #endif
+ #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+! EXTERN char_u e_opendisp[] INIT(= N_("E233: cannot open display"));
+ #endif
+! EXTERN char_u e_outofmem[] INIT(= N_("E41: Out of memory!"));
+ #ifdef FEAT_INS_EXPAND
+! EXTERN char_u e_patnotf[] INIT(= N_("Pattern not found"));
+ #endif
+! EXTERN char_u e_patnotf2[] INIT(= N_("E486: Pattern not found: %s"));
+! EXTERN char_u e_positive[] INIT(= N_("E487: Argument must be positive"));
+ #if defined(UNIX) || defined(FEAT_SESSION)
+! EXTERN char_u e_prev_dir[] INIT(= N_("E459: Cannot go back to previous directory"));
+ #endif
+
+ #ifdef FEAT_QUICKFIX
+! EXTERN char_u e_quickfix[] INIT(= N_("E42: No Errors"));
+! EXTERN char_u e_loclist[] INIT(= N_("E776: No location list"));
+ #endif
+! EXTERN char_u e_re_damg[] INIT(= N_("E43: Damaged match string"));
+! EXTERN char_u e_re_corr[] INIT(= N_("E44: Corrupted regexp program"));
+! EXTERN char_u e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
+ #ifdef FEAT_EVAL
+! EXTERN char_u e_readonlyvar[] INIT(= N_("E46: Cannot change read-only variable \"%s\""));
+! EXTERN char_u e_readonlysbx[] INIT(= N_("E794: Cannot set variable in the sandbox: \"%s\""));
+! EXTERN char_u e_emptykey[] INIT(= N_("E713: Cannot use empty key for Dictionary"));
+! EXTERN char_u e_dictreq[] INIT(= N_("E715: Dictionary required"));
+! EXTERN char_u e_listidx[] INIT(= N_("E684: list index out of range: %ld"));
+! EXTERN char_u e_blobidx[] INIT(= N_("E979: Blob index out of range: %ld"));
+! EXTERN char_u e_invalblob[] INIT(= N_("E978: Invalid operation for Blob"));
+! EXTERN char_u e_toomanyarg[] INIT(= N_("E118: Too many arguments for function: %s"));
+! EXTERN char_u e_dictkey[] INIT(= N_("E716: Key not present in Dictionary: %s"));
+! EXTERN char_u e_listreq[] INIT(= N_("E714: List required"));
+! EXTERN char_u e_listdictarg[] INIT(= N_("E712: Argument of %s must be a List or Dictionary"));
+ #endif
+ #ifdef FEAT_QUICKFIX
+! EXTERN char_u e_readerrf[] INIT(= N_("E47: Error while reading errorfile"));
+ #endif
+ #ifdef HAVE_SANDBOX
+! EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
+ #endif
+! EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
+ #if defined(AMIGA) || defined(MACOS_X) || defined(MSWIN) \
+ || defined(UNIX) || defined(VMS)
+! EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+ #endif
+! EXTERN char_u e_scroll[] INIT(= N_("E49: Invalid scroll size"));
+! EXTERN char_u e_shellempty[] INIT(= N_("E91: 'shell' option is empty"));
+ #if defined(FEAT_SIGN_ICONS) && !defined(FEAT_GUI_GTK)
+! EXTERN char_u e_signdata[] INIT(= N_("E255: Couldn't read in sign data!"));
+ #endif
+! EXTERN char_u e_swapclose[] INIT(= N_("E72: Close error on swap file"));
+! EXTERN char_u e_tagstack[] INIT(= N_("E73: tag stack empty"));
+! EXTERN char_u e_toocompl[] INIT(= N_("E74: Command too complex"));
+! EXTERN char_u e_longname[] INIT(= N_("E75: Name too long"));
+! EXTERN char_u e_toomsbra[] INIT(= N_("E76: Too many ["));
+! EXTERN char_u e_toomany[] INIT(= N_("E77: Too many file names"));
+! EXTERN char_u e_trailing[] INIT(= N_("E488: Trailing characters"));
+! EXTERN char_u e_umark[] INIT(= N_("E78: Unknown mark"));
+! EXTERN char_u e_wildexpand[] INIT(= N_("E79: Cannot expand wildcards"));
+! EXTERN char_u e_winheight[] INIT(= N_("E591: 'winheight' cannot be smaller than 'winminheight'"));
+! EXTERN char_u e_winwidth[] INIT(= N_("E592: 'winwidth' cannot be smaller than 'winminwidth'"));
+! EXTERN char_u e_write[] INIT(= N_("E80: Error while writing"));
+! EXTERN char_u e_zerocount[] INIT(= N_("E939: Positive count required"));
+ #ifdef FEAT_EVAL
+! EXTERN char_u e_usingsid[] INIT(= N_("E81: Using <SID> not in a script context"));
+ #endif
+ #ifdef FEAT_CLIENTSERVER
+! EXTERN char_u e_invexprmsg[] INIT(= N_("E449: Invalid expression received"));
+ #endif
+ #ifdef FEAT_NETBEANS_INTG
+! EXTERN char_u e_guarded[] INIT(= N_("E463: Region is guarded, cannot modify"));
+! EXTERN char_u e_nbreadonly[] INIT(= N_("E744: NetBeans does not allow changes in read-only files"));
+ #endif
+! EXTERN char_u e_maxmempat[] INIT(= N_("E363: pattern uses more memory than 'maxmempattern'"));
+! EXTERN char_u e_emptybuf[] INIT(= N_("E749: empty buffer"));
+! EXTERN char_u e_nobufnr[] INIT(= N_("E86: Buffer %ld does not exist"));
+
+! EXTERN char_u e_invalpat[] INIT(= N_("E682: Invalid search pattern or delimiter"));
+! EXTERN char_u e_bufloaded[] INIT(= N_("E139: File is loaded in another buffer"));
+ #if defined(FEAT_SYN_HL) || \
+ (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+! EXTERN char_u e_notset[] INIT(= N_("E764: Option '%s' is not set"));
+ #endif
+ #ifndef FEAT_CLIPBOARD
+! EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
+ #endif
+! EXTERN char_u e_dirnotf[] INIT(= N_("E919: Directory not found in '%s': \"%s\""));
+! EXTERN char_u e_au_recursive[] INIT(= N_("E952: Autocommand caused recursive behavior"));
+ #ifdef FEAT_MENU
+! EXTERN char_u e_menuothermode[] INIT(= N_("E328: Menu only exists in another mode"));
+ #endif
+
+ #ifdef FEAT_GUI_MAC
+--- 1448,1592 ----
+ || defined(DYNAMIC_GETTEXT) \
+ || defined(DYNAMIC_MZSCHEME) \
+ || defined(DYNAMIC_LUA)
+! EXTERN char e_loadlib[] INIT(= N_("E370: Could not load library %s"));
+! EXTERN char e_loadfunc[] INIT(= N_("E448: Could not load library function %s"));
+ #endif
+! EXTERN char e_markinval[] INIT(= N_("E19: Mark has invalid line number"));
+! EXTERN char e_marknotset[] INIT(= N_("E20: Mark not set"));
+! EXTERN char e_modifiable[] INIT(= N_("E21: Cannot make changes, 'modifiable' is off"));
+! EXTERN char e_nesting[] INIT(= N_("E22: Scripts nested too deep"));
+! EXTERN char e_noalt[] INIT(= N_("E23: No alternate file"));
+! EXTERN char e_noabbr[] INIT(= N_("E24: No such abbreviation"));
+! EXTERN char e_nobang[] INIT(= N_("E477: No ! allowed"));
+ #ifndef FEAT_GUI
+! EXTERN char e_nogvim[] INIT(= N_("E25: GUI cannot be used: Not enabled at compile time"));
+ #endif
+ #ifndef FEAT_RIGHTLEFT
+! EXTERN char e_nohebrew[] INIT(= N_("E26: Hebrew cannot be used: Not enabled at compile time\n"));
+ #endif
+ #ifndef FEAT_FKMAP
+! EXTERN char e_nofarsi[] INIT(= N_("E27: Farsi cannot be used: Not enabled at compile time\n"));
+ #endif
+ #ifndef FEAT_ARABIC
+! EXTERN char e_noarabic[] INIT(= N_("E800: Arabic cannot be used: Not enabled at compile time\n"));
+ #endif
+ #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_SYN_HL)
+! EXTERN char e_nogroup[] INIT(= N_("E28: No such highlight group name: %s"));
+ #endif
+! EXTERN char e_noinstext[] INIT(= N_("E29: No inserted text yet"));
+! EXTERN char e_nolastcmd[] INIT(= N_("E30: No previous command line"));
+! EXTERN char e_nomap[] INIT(= N_("E31: No such mapping"));
+! EXTERN char e_nomatch[] INIT(= N_("E479: No match"));
+! EXTERN char e_nomatch2[] INIT(= N_("E480: No match: %s"));
+! EXTERN char e_noname[] INIT(= N_("E32: No file name"));
+! EXTERN char e_nopresub[] INIT(= N_("E33: No previous substitute regular expression"));
+! EXTERN char e_noprev[] INIT(= N_("E34: No previous command"));
+! EXTERN char e_noprevre[] INIT(= N_("E35: No previous regular expression"));
+! EXTERN char e_norange[] INIT(= N_("E481: No range allowed"));
+! EXTERN char e_noroom[] INIT(= N_("E36: Not enough room"));
+ #ifdef FEAT_CLIENTSERVER
+! EXTERN char e_noserver[] INIT(= N_("E247: no registered server named \"%s\""));
+ #endif
+! EXTERN char e_notcreate[] INIT(= N_("E482: Can't create file %s"));
+! EXTERN char e_notmp[] INIT(= N_("E483: Can't get temp file name"));
+! EXTERN char e_notopen[] INIT(= N_("E484: Can't open file %s"));
+! EXTERN char e_notread[] INIT(= N_("E485: Can't read file %s"));
+! EXTERN char e_null[] INIT(= N_("E38: Null argument"));
+ #if defined(FEAT_DIGRAPHS) || defined(FEAT_TIMERS)
+! EXTERN char e_number_exp[] INIT(= N_("E39: Number expected"));
+ #endif
+ #ifdef FEAT_QUICKFIX
+! EXTERN char e_openerrf[] INIT(= N_("E40: Can't open errorfile %s"));
+ #endif
+ #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+! EXTERN char e_opendisp[] INIT(= N_("E233: cannot open display"));
+ #endif
+! EXTERN char e_outofmem[] INIT(= N_("E41: Out of memory!"));
+ #ifdef FEAT_INS_EXPAND
+! EXTERN char e_patnotf[] INIT(= N_("Pattern not found"));
+ #endif
+! EXTERN char e_patnotf2[] INIT(= N_("E486: Pattern not found: %s"));
+! EXTERN char e_positive[] INIT(= N_("E487: Argument must be positive"));
+ #if defined(UNIX) || defined(FEAT_SESSION)
+! EXTERN char e_prev_dir[] INIT(= N_("E459: Cannot go back to previous directory"));
+ #endif
+
+ #ifdef FEAT_QUICKFIX
+! EXTERN char e_quickfix[] INIT(= N_("E42: No Errors"));
+! EXTERN char e_loclist[] INIT(= N_("E776: No location list"));
+ #endif
+! EXTERN char e_re_damg[] INIT(= N_("E43: Damaged match string"));
+! EXTERN char e_re_corr[] INIT(= N_("E44: Corrupted regexp program"));
+! EXTERN char e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
+ #ifdef FEAT_EVAL
+! EXTERN char e_readonlyvar[] INIT(= N_("E46: Cannot change read-only variable \"%s\""));
+! EXTERN char e_readonlysbx[] INIT(= N_("E794: Cannot set variable in the sandbox: \"%s\""));
+! EXTERN char e_emptykey[] INIT(= N_("E713: Cannot use empty key for Dictionary"));
+! EXTERN char e_dictreq[] INIT(= N_("E715: Dictionary required"));
+! EXTERN char e_listidx[] INIT(= N_("E684: list index out of range: %ld"));
+! EXTERN char e_blobidx[] INIT(= N_("E979: Blob index out of range: %ld"));
+! EXTERN char e_invalblob[] INIT(= N_("E978: Invalid operation for Blob"));
+! EXTERN char e_toomanyarg[] INIT(= N_("E118: Too many arguments for function: %s"));
+! EXTERN char e_dictkey[] INIT(= N_("E716: Key not present in Dictionary: %s"));
+! EXTERN char e_listreq[] INIT(= N_("E714: List required"));
+! EXTERN char e_listdictarg[] INIT(= N_("E712: Argument of %s must be a List or Dictionary"));
+ #endif
+ #ifdef FEAT_QUICKFIX
+! EXTERN char e_readerrf[] INIT(= N_("E47: Error while reading errorfile"));
+ #endif
+ #ifdef HAVE_SANDBOX
+! EXTERN char e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
+ #endif
+! EXTERN char e_secure[] INIT(= N_("E523: Not allowed here"));
+ #if defined(AMIGA) || defined(MACOS_X) || defined(MSWIN) \
+ || defined(UNIX) || defined(VMS)
+! EXTERN char e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+ #endif
+! EXTERN char e_scroll[] INIT(= N_("E49: Invalid scroll size"));
+! EXTERN char e_shellempty[] INIT(= N_("E91: 'shell' option is empty"));
+ #if defined(FEAT_SIGN_ICONS) && !defined(FEAT_GUI_GTK)
+! EXTERN char e_signdata[] INIT(= N_("E255: Couldn't read in sign data!"));
+ #endif
+! EXTERN char e_swapclose[] INIT(= N_("E72: Close error on swap file"));
+! EXTERN char e_tagstack[] INIT(= N_("E73: tag stack empty"));
+! EXTERN char e_toocompl[] INIT(= N_("E74: Command too complex"));
+! EXTERN char e_longname[] INIT(= N_("E75: Name too long"));
+! EXTERN char e_toomsbra[] INIT(= N_("E76: Too many ["));
+! EXTERN char e_toomany[] INIT(= N_("E77: Too many file names"));
+! EXTERN char e_trailing[] INIT(= N_("E488: Trailing characters"));
+! EXTERN char e_umark[] INIT(= N_("E78: Unknown mark"));
+! EXTERN char e_wildexpand[] INIT(= N_("E79: Cannot expand wildcards"));
+! EXTERN char e_winheight[] INIT(= N_("E591: 'winheight' cannot be smaller than 'winminheight'"));
+! EXTERN char e_winwidth[] INIT(= N_("E592: 'winwidth' cannot be smaller than 'winminwidth'"));
+! EXTERN char e_write[] INIT(= N_("E80: Error while writing"));
+! EXTERN char e_zerocount[] INIT(= N_("E939: Positive count required"));
+ #ifdef FEAT_EVAL
+! EXTERN char e_usingsid[] INIT(= N_("E81: Using <SID> not in a script context"));
+ #endif
+ #ifdef FEAT_CLIENTSERVER
+! EXTERN char e_invexprmsg[] INIT(= N_("E449: Invalid expression received"));
+ #endif
+ #ifdef FEAT_NETBEANS_INTG
+! EXTERN char e_guarded[] INIT(= N_("E463: Region is guarded, cannot modify"));
+! EXTERN char e_nbreadonly[] INIT(= N_("E744: NetBeans does not allow changes in read-only files"));
+ #endif
+! EXTERN char e_maxmempat[] INIT(= N_("E363: pattern uses more memory than 'maxmempattern'"));
+! EXTERN char e_emptybuf[] INIT(= N_("E749: empty buffer"));
+! EXTERN char e_nobufnr[] INIT(= N_("E86: Buffer %ld does not exist"));
+
+! EXTERN char e_invalpat[] INIT(= N_("E682: Invalid search pattern or delimiter"));
+! EXTERN char e_bufloaded[] INIT(= N_("E139: File is loaded in another buffer"));
+ #if defined(FEAT_SYN_HL) || \
+ (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+! EXTERN char e_notset[] INIT(= N_("E764: Option '%s' is not set"));
+ #endif
+ #ifndef FEAT_CLIPBOARD
+! EXTERN char e_invalidreg[] INIT(= N_("E850: Invalid register name"));
+ #endif
+! EXTERN char e_dirnotf[] INIT(= N_("E919: Directory not found in '%s': \"%s\""));
+! EXTERN char e_au_recursive[] INIT(= N_("E952: Autocommand caused recursive behavior"));
+ #ifdef FEAT_MENU
+! EXTERN char e_menuothermode[] INIT(= N_("E328: Menu only exists in another mode"));
+ #endif
+
+ #ifdef FEAT_GUI_MAC
+*** ../vim-8.1.0742/src/gui.c 2019-01-11 20:34:18.296314730 +0100
+--- src/gui.c 2019-01-13 19:50:04.537361241 +0100
+***************
+*** 215,221 ****
+ pid = fork();
+ if (pid < 0) /* Fork error */
+ {
+! EMSG(_("E851: Failed to create a new process for the GUI"));
+ return;
+ }
+ else if (pid > 0) /* Parent */
+--- 215,221 ----
+ pid = fork();
+ if (pid < 0) /* Fork error */
+ {
+! emsg(_("E851: Failed to create a new process for the GUI"));
+ return;
+ }
+ else if (pid > 0) /* Parent */
+***************
+*** 239,245 ****
+ # else
+ waitpid(pid, &exit_status, 0);
+ # endif
+! EMSG(_("E852: The child process failed to start the GUI"));
+ return;
+ }
+ else if (status == GUI_CHILD_IO_ERROR)
+--- 239,245 ----
+ # else
+ waitpid(pid, &exit_status, 0);
+ # endif
+! emsg(_("E852: The child process failed to start the GUI"));
+ return;
+ }
+ else if (status == GUI_CHILD_IO_ERROR)
+***************
+*** 362,368 ****
+ if (result != MAYBE)
+ {
+ if (result == FAIL)
+! EMSG(_("E229: Cannot start the GUI"));
+ return result;
+ }
+
+--- 362,368 ----
+ if (result != MAYBE)
+ {
+ if (result == FAIL)
+! emsg(_("E229: Cannot start the GUI"));
+ return result;
+ }
+
+***************
+*** 515,521 ****
+ if (STRCMP(use_gvimrc, "NONE") != 0
+ && STRCMP(use_gvimrc, "NORC") != 0
+ && do_source(use_gvimrc, FALSE, DOSO_NONE) != OK)
+! EMSG2(_("E230: Cannot read from \"%s\""), use_gvimrc);
+ }
+ else
+ {
+--- 515,521 ----
+ if (STRCMP(use_gvimrc, "NONE") != 0
+ && STRCMP(use_gvimrc, "NORC") != 0
+ && do_source(use_gvimrc, FALSE, DOSO_NONE) != OK)
+! semsg(_("E230: Cannot read from \"%s\""), use_gvimrc);
+ }
+ else
+ {
+***************
+*** 649,660 ****
+ gui_init_font(*p_guifont == NUL ? hl_get_font_name()
+ : p_guifont, FALSE) == FAIL)
+ {
+! EMSG(_("E665: Cannot start GUI, no valid font found"));
+ goto error2;
+ }
+ #ifdef FEAT_MBYTE
+ if (gui_get_wide_font() == FAIL)
+! EMSG(_("E231: 'guifontwide' invalid"));
+ #endif
+
+ gui.num_cols = Columns;
+--- 649,660 ----
+ gui_init_font(*p_guifont == NUL ? hl_get_font_name()
+ : p_guifont, FALSE) == FAIL)
+ {
+! emsg(_("E665: Cannot start GUI, no valid font found"));
+ goto error2;
+ }
+ #ifdef FEAT_MBYTE
+ if (gui_get_wide_font() == FAIL)
+! emsg(_("E231: 'guifontwide' invalid"));
+ #endif
+
+ gui.num_cols = Columns;
+***************
+*** 769,775 ****
+
+ #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
+ if (!im_xim_isvalid_imactivate())
+! EMSG(_("E599: Value of 'imactivatekey' is invalid"));
+ #endif
+ /* When 'cmdheight' was set during startup it may not have taken
+ * effect yet. */
+--- 769,775 ----
+
+ #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
+ if (!im_xim_isvalid_imactivate())
+! emsg(_("E599: Value of 'imactivatekey' is invalid"));
+ #endif
+ /* When 'cmdheight' was set during startup it may not have taken
+ * effect yet. */
+***************
+*** 4785,4791 ****
+ && gui.in_use
+ #endif
+ )
+! EMSG2(_("E254: Cannot allocate color %s"), name);
+ return t;
+ }
+
+--- 4785,4791 ----
+ && gui.in_use
+ #endif
+ )
+! semsg(_("E254: Cannot allocate color %s"), name);
+ return t;
+ }
+
+*** ../vim-8.1.0742/src/gui_at_fs.c 2018-09-30 21:43:17.191693320 +0200
+--- src/gui_at_fs.c 2019-01-13 19:50:14.181271847 +0100
+***************
+*** 1063,1069 ****
+ #endif
+ if (!SFfont)
+ {
+! EMSG2(_("E616: vim_SelFile: can't get font %s"), SF_DEFAULT_FONT);
+ SFstatus = SEL_FILE_CANCEL;
+ return;
+ }
+--- 1063,1069 ----
+ #endif
+ if (!SFfont)
+ {
+! semsg(_("E616: vim_SelFile: can't get font %s"), SF_DEFAULT_FONT);
+ SFstatus = SEL_FILE_CANCEL;
+ return;
+ }
+***************
+*** 2629,2635 ****
+ XtRemoveTimeOut(SFdirModTimerId);
+ if (SFchdir(SFstartDir))
+ {
+! EMSG(_("E614: vim_SelFile: can't return to current directory"));
+ SFstatus = SEL_FILE_CANCEL;
+ }
+ }
+--- 2629,2635 ----
+ XtRemoveTimeOut(SFdirModTimerId);
+ if (SFchdir(SFstartDir))
+ {
+! emsg(_("E614: vim_SelFile: can't return to current directory"));
+ SFstatus = SEL_FILE_CANCEL;
+ }
+ }
+***************
+*** 2658,2664 ****
+
+ if (mch_dirname((char_u *)SFstartDir, MAXPATHL) == FAIL)
+ {
+! EMSG(_("E615: vim_SelFile: can't get current directory"));
+ return NULL;
+ }
+
+--- 2658,2664 ----
+
+ if (mch_dirname((char_u *)SFstartDir, MAXPATHL) == FAIL)
+ {
+! emsg(_("E615: vim_SelFile: can't get current directory"));
+ return NULL;
+ }
+
+*** ../vim-8.1.0742/src/gui_at_sb.c 2018-04-10 18:37:19.000000000 +0200
+--- src/gui_at_sb.c 2019-01-13 19:50:42.105014555 +0100
+***************
+*** 485,491 ****
+
+ if (XGetGeometry (XtDisplay(w), sbw->scrollbar.thumb, &root, &x, &y,
+ &width, &height, &bw, &depth) == 0)
+! EMSG(_("Scrollbar Widget: Could not get geometry of thumb pixmap."));
+ }
+
+ gcValues.foreground = sbw->scrollbar.foreground;
+--- 485,491 ----
+
+ if (XGetGeometry (XtDisplay(w), sbw->scrollbar.thumb, &root, &x, &y,
+ &width, &height, &bw, &depth) == 0)
+! emsg(_("Scrollbar Widget: Could not get geometry of thumb pixmap."));
+ }
+
+ gcValues.foreground = sbw->scrollbar.foreground;
+*** ../vim-8.1.0742/src/gui_beval.c 2019-01-10 22:56:25.521250993 +0100
+--- src/gui_beval.c 2019-01-13 19:33:46.394150608 +0100
+***************
+*** 103,109 ****
+
+ if (mesg != NULL && mesgCB != NULL)
+ {
+! IEMSG(_("E232: Cannot create BalloonEval with both message and callback"));
+ return NULL;
+ }
+
+--- 103,109 ----
+
+ if (mesg != NULL && mesgCB != NULL)
+ {
+! iemsg(_("E232: Cannot create BalloonEval with both message and callback"));
+ return NULL;
+ }
+
+*** ../vim-8.1.0742/src/gui_gtk_x11.c 2018-12-11 20:39:15.442937076 +0100
+--- src/gui_gtk_x11.c 2019-01-13 19:50:51.804925705 +0100
+***************
+*** 1664,1670 ****
+ {
+ gui.dying = TRUE;
+ if (give_message)
+! EMSG(_((char *)e_opendisp));
+ return FAIL;
+ }
+ return OK;
+--- 1664,1670 ----
+ {
+ gui.dying = TRUE;
+ if (give_message)
+! emsg(_((char *)e_opendisp));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 1710,1716 ****
+ if (!gtk_init_check(&gui_argc, &gui_argv))
+ {
+ gui.dying = TRUE;
+! EMSG(_((char *)e_opendisp));
+ return FAIL;
+ }
+
+--- 1710,1716 ----
+ if (!gtk_init_check(&gui_argc, &gui_argv))
+ {
+ gui.dying = TRUE;
+! emsg(_((char *)e_opendisp));
+ return FAIL;
+ }
+
+***************
+*** 5247,5253 ****
+ if (font == NULL)
+ {
+ if (report_error)
+! EMSG2(_((char *)e_font), name);
+ return NULL;
+ }
+
+--- 5247,5253 ----
+ if (font == NULL)
+ {
+ if (report_error)
+! semsg(_((char *)e_font), name);
+ return NULL;
+ }
+
+***************
+*** 7138,7144 ****
+ {
+ /* The error message is already translated and will be more
+ * descriptive than anything we could possibly do ourselves. */
+! EMSG2("E255: %s", message);
+
+ if (input_conv.vc_type != CONV_NONE)
+ vim_free(message);
+--- 7138,7144 ----
+ {
+ /* The error message is already translated and will be more
+ * descriptive than anything we could possibly do ourselves. */
+! semsg("E255: %s", message);
+
+ if (input_conv.vc_type != CONV_NONE)
+ vim_free(message);
+*** ../vim-8.1.0742/src/gui_mac.c 2018-12-11 20:39:15.442937076 +0100
+--- src/gui_mac.c 2019-01-13 19:27:43.420614022 +0100
+***************
+*** 3556,3562 ****
+ if (font == NOFONT)
+ {
+ if (giveErrorIfMissing)
+! EMSG2(_(e_font), name);
+ return NOFONT;
+ }
+ /*
+--- 3556,3562 ----
+ if (font == NOFONT)
+ {
+ if (giveErrorIfMissing)
+! semsg(_(e_font), name);
+ return NOFONT;
+ }
+ /*
+*** ../vim-8.1.0742/src/gui_photon.c 2018-09-30 21:43:17.191693320 +0200
+--- src/gui_photon.c 2019-01-13 19:27:43.420614022 +0100
+***************
+*** 2937,2943 ****
+ }
+
+ if (report_error)
+! EMSG2(e_font, vim_font_name);
+
+ return FAIL;
+ }
+--- 2937,2943 ----
+ }
+
+ if (report_error)
+! semsg(e_font, vim_font_name);
+
+ return FAIL;
+ }
+*** ../vim-8.1.0742/src/gui_w32.c 2018-12-28 19:13:28.591806287 +0100
+--- src/gui_w32.c 2019-01-13 19:50:58.588863721 +0100
+***************
+*** 1582,1588 ****
+ if (get_logfont(&lf, name, NULL, giveErrorIfMissing) == OK)
+ font = get_font_handle(&lf);
+ if (font == NOFONT && giveErrorIfMissing)
+! EMSG2(_(e_font), name);
+ return font;
+ }
+
+--- 1582,1588 ----
+ if (get_logfont(&lf, name, NULL, giveErrorIfMissing) == OK)
+ font = get_font_handle(&lf);
+ if (font == NOFONT && giveErrorIfMissing)
+! semsg(_(e_font), name);
+ return font;
+ }
+
+***************
+*** 5235,5241 ****
+ EnumWindows(FindWindowTitle, (LPARAM)title);
+ if (vim_parent_hwnd == NULL)
+ {
+! EMSG2(_("E671: Cannot find window title \"%s\""), title);
+ mch_exit(2);
+ }
+ }
+--- 5235,5241 ----
+ EnumWindows(FindWindowTitle, (LPARAM)title);
+ if (vim_parent_hwnd == NULL)
+ {
+! semsg(_("E671: Cannot find window title \"%s\""), title);
+ mch_exit(2);
+ }
+ }
+***************
+*** 5246,5252 ****
+ {
+ char buf[IOSIZE];
+
+! /* Can't use EMSG() here, we have not finished initialisation yet. */
+ vim_snprintf(buf, IOSIZE,
+ _("E243: Argument not supported: \"-%s\"; Use the OLE version."),
+ arg);
+--- 5246,5252 ----
+ {
+ char buf[IOSIZE];
+
+! /* Can't use emsg() here, we have not finished initialisation yet. */
+ vim_snprintf(buf, IOSIZE,
+ _("E243: Argument not supported: \"-%s\"; Use the OLE version."),
+ arg);
+***************
+*** 5468,5474 ****
+ #endif
+ if (s_hwnd == NULL)
+ {
+! EMSG(_("E672: Unable to open window inside MDI application"));
+ mch_exit(2);
+ }
+ }
+--- 5468,5474 ----
+ #endif
+ if (s_hwnd == NULL)
+ {
+! emsg(_("E672: Unable to open window inside MDI application"));
+ mch_exit(2);
+ }
+ }
+***************
+*** 8671,8677 ****
+ {
+ if (sign.hImage)
+ close_signicon_image(&sign);
+! EMSG(_(e_signdata));
+ }
+ return (void *)psign;
+
+--- 8671,8677 ----
+ {
+ if (sign.hImage)
+ close_signicon_image(&sign);
+! emsg(_(e_signdata));
+ }
+ return (void *)psign;
+
+***************
+*** 9025,9031 ****
+
+ if (mesg != NULL && mesgCB != NULL)
+ {
+! IEMSG(_("E232: Cannot create BalloonEval with both message and callback"));
+ return NULL;
+ }
+
+--- 9025,9031 ----
+
+ if (mesg != NULL && mesgCB != NULL)
+ {
+! iemsg(_("E232: Cannot create BalloonEval with both message and callback"));
+ return NULL;
+ }
+
+*** ../vim-8.1.0742/src/gui_x11.c 2018-09-30 21:43:17.191693320 +0200
+--- src/gui_x11.c 2019-01-13 19:51:08.964769156 +0100
+***************
+*** 1295,1301 ****
+ if (app_context == NULL || gui.dpy == NULL)
+ {
+ gui.dying = TRUE;
+! EMSG(_(e_opendisp));
+ return FAIL;
+ }
+ return OK;
+--- 1295,1301 ----
+ if (app_context == NULL || gui.dpy == NULL)
+ {
+ gui.dying = TRUE;
+! emsg(_(e_opendisp));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 1541,1547 ****
+ }
+
+ if (gui.color_approx)
+! EMSG(_("Vim E458: Cannot allocate colormap entry, some colors may be incorrect"));
+
+ #ifdef FEAT_SUN_WORKSHOP
+ if (usingSunWorkShop)
+--- 1541,1547 ----
+ }
+
+ if (gui.color_approx)
+! emsg(_("Vim E458: Cannot allocate colormap entry, some colors may be incorrect"));
+
+ #ifdef FEAT_SUN_WORKSHOP
+ if (usingSunWorkShop)
+***************
+*** 1970,1976 ****
+ if (font == NULL)
+ {
+ if (giveErrorIfMissing)
+! EMSG2(_(e_font), name);
+ return NOFONT;
+ }
+
+--- 1970,1976 ----
+ if (font == NULL)
+ {
+ if (giveErrorIfMissing)
+! semsg(_(e_font), name);
+ return NOFONT;
+ }
+
+***************
+*** 1994,2000 ****
+
+ if (font->max_bounds.width != font->min_bounds.width)
+ {
+! EMSG2(_(e_fontwidth), name);
+ XFreeFont(gui.dpy, font);
+ return NOFONT;
+ }
+--- 1994,2000 ----
+
+ if (font->max_bounds.width != font->min_bounds.width)
+ {
+! semsg(_(e_fontwidth), name);
+ XFreeFont(gui.dpy, font);
+ return NOFONT;
+ }
+***************
+*** 2145,2153 ****
+
+ if (giveErrorIfMissing)
+ {
+! EMSG2(_("E250: Fonts for the following charsets are missing in fontset %s:"), name);
+ for (i = 0; i < num_missing; i++)
+! EMSG2("%s", missing[i]);
+ }
+ XFreeStringList(missing);
+ }
+--- 2145,2153 ----
+
+ if (giveErrorIfMissing)
+ {
+! semsg(_("E250: Fonts for the following charsets are missing in fontset %s:"), name);
+ for (i = 0; i < num_missing; i++)
+! semsg("%s", missing[i]);
+ }
+ XFreeStringList(missing);
+ }
+***************
+*** 2155,2161 ****
+ if (fontset == NULL)
+ {
+ if (giveErrorIfMissing)
+! EMSG2(_(e_fontset), name);
+ return NOFONTSET;
+ }
+
+--- 2155,2161 ----
+ if (fontset == NULL)
+ {
+ if (giveErrorIfMissing)
+! semsg(_(e_fontset), name);
+ return NOFONTSET;
+ }
+
+***************
+*** 2187,2194 ****
+ {
+ if (xfs[i]->max_bounds.width != xfs[i]->min_bounds.width)
+ {
+! EMSG2(_("E252: Fontset name: %s"), base_name);
+! EMSG2(_("Font '%s' is not fixed-width"), font_name[i]);
+ return FAIL;
+ }
+ }
+--- 2187,2194 ----
+ {
+ if (xfs[i]->max_bounds.width != xfs[i]->min_bounds.width)
+ {
+! semsg(_("E252: Fontset name: %s"), base_name);
+! semsg(_("Font '%s' is not fixed-width"), font_name[i]);
+ return FAIL;
+ }
+ }
+***************
+*** 2207,2218 ****
+ if ( xfs[i]->max_bounds.width != 2 * min_width
+ && xfs[i]->max_bounds.width != min_width)
+ {
+! EMSG2(_("E253: Fontset name: %s"), base_name);
+! EMSG2(_("Font0: %s"), font_name[min_font_idx]);
+! EMSG2(_("Font1: %s"), font_name[i]);
+! EMSGN(_("Font%ld width is not twice that of font0"), i);
+! EMSGN(_("Font0 width: %ld"), xfs[min_font_idx]->max_bounds.width);
+! EMSGN(_("Font1 width: %ld"), xfs[i]->max_bounds.width);
+ return FAIL;
+ }
+ }
+--- 2207,2218 ----
+ if ( xfs[i]->max_bounds.width != 2 * min_width
+ && xfs[i]->max_bounds.width != min_width)
+ {
+! semsg(_("E253: Fontset name: %s"), base_name);
+! semsg(_("Font0: %s"), font_name[min_font_idx]);
+! semsg(_("Font1: %s"), font_name[i]);
+! semsg(_("Font%ld width is not twice that of font0"), i);
+! semsg(_("Font0 width: %ld"), xfs[min_font_idx]->max_bounds.width);
+! semsg(_("Font1 width: %ld"), xfs[i]->max_bounds.width);
+ return FAIL;
+ }
+ }
+***************
+*** 3326,3332 ****
+ gui.sign_width = sign->width + 8; */
+ }
+ else
+! EMSG(_(e_signdata));
+ }
+
+ return (void *)sign;
+--- 3326,3332 ----
+ gui.sign_width = sign->width + 8; */
+ }
+ else
+! emsg(_(e_signdata));
+ }
+
+ return (void *)sign;
+*** ../vim-8.1.0742/src/hangulin.c 2018-09-30 21:43:17.191693320 +0200
+--- src/hangulin.c 2019-01-13 19:34:02.178043188 +0100
+***************
+*** 588,594 ****
+ return AUTOMATA_CORRECT_NEW;
+
+ default:
+! IEMSG(_("E256: Hangul automata ERROR"));
+ break;
+ }
+ return AUTOMATA_ERROR; /* RrEeAaLlLlYy EeRrRrOoRr */
+--- 588,594 ----
+ return AUTOMATA_CORRECT_NEW;
+
+ default:
+! iemsg(_("E256: Hangul automata ERROR"));
+ break;
+ }
+ return AUTOMATA_ERROR; /* RrEeAaLlLlYy EeRrRrOoRr */
+*** ../vim-8.1.0742/src/hardcopy.c 2018-09-30 21:43:17.191693320 +0200
+--- src/hardcopy.c 2019-01-13 20:19:02.819164649 +0100
+***************
+*** 135,141 ****
+ int ff; /* seen form feed character */
+ } prt_pos_T;
+
+! static char_u *parse_list_options(char_u *option_str, option_table_T *table, int table_size);
+
+ static colnr_T hardcopy_line(prt_settings_T *psettings, int page_line, prt_pos_T *ppos);
+
+--- 135,141 ----
+ int ff; /* seen form feed character */
+ } prt_pos_T;
+
+! static char *parse_list_options(char_u *option_str, option_table_T *table, int table_size);
+
+ static colnr_T hardcopy_line(prt_settings_T *psettings, int page_line, prt_pos_T *ppos);
+
+***************
+*** 143,149 ****
+ * Parse 'printoptions' and set the flags in "printer_opts".
+ * Returns an error message or NULL;
+ */
+! char_u *
+ parse_printoptions(void)
+ {
+ return parse_list_options(p_popt, printer_opts, OPT_PRINT_NUM_OPTIONS);
+--- 143,149 ----
+ * Parse 'printoptions' and set the flags in "printer_opts".
+ * Returns an error message or NULL;
+ */
+! char *
+ parse_printoptions(void)
+ {
+ return parse_list_options(p_popt, printer_opts, OPT_PRINT_NUM_OPTIONS);
+***************
+*** 154,160 ****
+ * Parse 'printmbfont' and set the flags in "mbfont_opts".
+ * Returns an error message or NULL;
+ */
+! char_u *
+ parse_printmbfont(void)
+ {
+ return parse_list_options(p_pmfn, mbfont_opts, OPT_MBFONT_NUM_OPTIONS);
+--- 154,160 ----
+ * Parse 'printmbfont' and set the flags in "mbfont_opts".
+ * Returns an error message or NULL;
+ */
+! char *
+ parse_printmbfont(void)
+ {
+ return parse_list_options(p_pmfn, mbfont_opts, OPT_MBFONT_NUM_OPTIONS);
+***************
+*** 170,183 ****
+ * Returns an error message for an illegal option, NULL otherwise.
+ * Only used for the printer at the moment...
+ */
+! static char_u *
+ parse_list_options(
+ char_u *option_str,
+ option_table_T *table,
+ int table_size)
+ {
+ option_table_T *old_opts;
+! char_u *ret = NULL;
+ char_u *stringp;
+ char_u *colonp;
+ char_u *commap;
+--- 170,183 ----
+ * Returns an error message for an illegal option, NULL otherwise.
+ * Only used for the printer at the moment...
+ */
+! static char *
+ parse_list_options(
+ char_u *option_str,
+ option_table_T *table,
+ int table_size)
+ {
+ option_table_T *old_opts;
+! char *ret = NULL;
+ char_u *stringp;
+ char_u *colonp;
+ char_u *commap;
+***************
+*** 205,211 ****
+ colonp = vim_strchr(stringp, ':');
+ if (colonp == NULL)
+ {
+! ret = (char_u *)N_("E550: Missing colon");
+ break;
+ }
+ commap = vim_strchr(stringp, ',');
+--- 205,211 ----
+ colonp = vim_strchr(stringp, ':');
+ if (colonp == NULL)
+ {
+! ret = N_("E550: Missing colon");
+ break;
+ }
+ commap = vim_strchr(stringp, ',');
+***************
+*** 220,226 ****
+
+ if (idx == table_size)
+ {
+! ret = (char_u *)N_("E551: Illegal component");
+ break;
+ }
+ p = colonp + 1;
+--- 220,226 ----
+
+ if (idx == table_size)
+ {
+! ret = N_("E551: Illegal component");
+ break;
+ }
+ p = colonp + 1;
+***************
+*** 230,236 ****
+ {
+ if (!VIM_ISDIGIT(*p))
+ {
+! ret = (char_u *)N_("E552: digit expected");
+ break;
+ }
+
+--- 230,236 ----
+ {
+ if (!VIM_ISDIGIT(*p))
+ {
+! ret = N_("E552: digit expected");
+ break;
+ }
+
+***************
+*** 576,588 ****
+ # ifdef FEAT_POSTSCRIPT
+ if (*eap->arg == '>')
+ {
+! char_u *errormsg = NULL;
+
+ /* Expand things like "%.ps". */
+ if (expand_filename(eap, eap->cmdlinep, &errormsg) == FAIL)
+ {
+ if (errormsg != NULL)
+! EMSG(errormsg);
+ return;
+ }
+ settings.outfile = skipwhite(eap->arg + 1);
+--- 576,588 ----
+ # ifdef FEAT_POSTSCRIPT
+ if (*eap->arg == '>')
+ {
+! char *errormsg = NULL;
+
+ /* Expand things like "%.ps". */
+ if (expand_filename(eap, eap->cmdlinep, &errormsg) == FAIL)
+ {
+ if (errormsg != NULL)
+! emsg(errormsg);
+ return;
+ }
+ settings.outfile = skipwhite(eap->arg + 1);
+***************
+*** 1431,1437 ****
+ && fwrite(buffer, sizeof(char_u), bytes, prt_ps_fd)
+ != (size_t)bytes)
+ {
+! EMSG(_("E455: Error writing to PostScript output file"));
+ prt_file_error = TRUE;
+ }
+ }
+--- 1431,1437 ----
+ && fwrite(buffer, sizeof(char_u), bytes, prt_ps_fd)
+ != (size_t)bytes)
+ {
+! emsg(_("E455: Error writing to PostScript output file"));
+ prt_file_error = TRUE;
+ }
+ }
+***************
+*** 1873,1879 ****
+ fd_resource = mch_fopen((char *)resource->filename, READBIN);
+ if (fd_resource == NULL)
+ {
+! EMSG2(_("E624: Can't open file \"%s\""), resource->filename);
+ return FALSE;
+ }
+ vim_memset(prt_resfile.buffer, NUL, PRT_FILE_BUFFER_LEN);
+--- 1873,1879 ----
+ fd_resource = mch_fopen((char *)resource->filename, READBIN);
+ if (fd_resource == NULL)
+ {
+! semsg(_("E624: Can't open file \"%s\""), resource->filename);
+ return FALSE;
+ }
+ vim_memset(prt_resfile.buffer, NUL, PRT_FILE_BUFFER_LEN);
+***************
+*** 1883,1889 ****
+ PRT_FILE_BUFFER_LEN, fd_resource);
+ if (ferror(fd_resource))
+ {
+! EMSG2(_("E457: Can't read PostScript resource file \"%s\""),
+ resource->filename);
+ fclose(fd_resource);
+ return FALSE;
+--- 1883,1889 ----
+ PRT_FILE_BUFFER_LEN, fd_resource);
+ if (ferror(fd_resource))
+ {
+! semsg(_("E457: Can't read PostScript resource file \"%s\""),
+ resource->filename);
+ fclose(fd_resource);
+ return FALSE;
+***************
+*** 1900,1906 ****
+ if (prt_resfile_strncmp(offset, PRT_RESOURCE_HEADER,
+ (int)STRLEN(PRT_RESOURCE_HEADER)) != 0)
+ {
+! EMSG2(_("E618: file \"%s\" is not a PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+--- 1900,1906 ----
+ if (prt_resfile_strncmp(offset, PRT_RESOURCE_HEADER,
+ (int)STRLEN(PRT_RESOURCE_HEADER)) != 0)
+ {
+! semsg(_("E618: file \"%s\" is not a PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+***************
+*** 1917,1923 ****
+ if (prt_resfile_strncmp(offset, PRT_RESOURCE_RESOURCE,
+ (int)STRLEN(PRT_RESOURCE_RESOURCE)) != 0)
+ {
+! EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+--- 1917,1923 ----
+ if (prt_resfile_strncmp(offset, PRT_RESOURCE_RESOURCE,
+ (int)STRLEN(PRT_RESOURCE_RESOURCE)) != 0)
+ {
+! semsg(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+***************
+*** 1935,1941 ****
+ resource->type = PRT_RESOURCE_TYPE_CMAP;
+ else
+ {
+! EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+--- 1935,1941 ----
+ resource->type = PRT_RESOURCE_TYPE_CMAP;
+ else
+ {
+! semsg(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+***************
+*** 1977,1983 ****
+
+ if (!seen_title || !seen_version)
+ {
+! EMSG2(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+--- 1977,1983 ----
+
+ if (!seen_title || !seen_version)
+ {
+! semsg(_("E619: file \"%s\" is not a supported PostScript resource file"),
+ resource->filename);
+ return FALSE;
+ }
+***************
+*** 1991,1997 ****
+ /* Version number m.n should match, the revision number does not matter */
+ if (STRNCMP(resource->version, version, STRLEN(version)))
+ {
+! EMSG2(_("E621: \"%s\" resource file has wrong version"),
+ resource->name);
+ return FALSE;
+ }
+--- 1991,1997 ----
+ /* Version number m.n should match, the revision number does not matter */
+ if (STRNCMP(resource->version, version, STRLEN(version)))
+ {
+! semsg(_("E621: \"%s\" resource file has wrong version"),
+ resource->name);
+ return FALSE;
+ }
+***************
+*** 2465,2471 ****
+ /* Check encoding and character set are compatible */
+ if ((p_mbenc->needs_charset & p_mbchar->has_charset) == 0)
+ {
+! EMSG(_("E673: Incompatible multi-byte encoding and character set."));
+ return FALSE;
+ }
+
+--- 2465,2471 ----
+ /* Check encoding and character set are compatible */
+ if ((p_mbenc->needs_charset & p_mbchar->has_charset) == 0)
+ {
+! emsg(_("E673: Incompatible multi-byte encoding and character set."));
+ return FALSE;
+ }
+
+***************
+*** 2482,2488 ****
+ /* Add custom CMap character set name */
+ if (*p_pmcs == NUL)
+ {
+! EMSG(_("E674: printmbcharset cannot be empty with multi-byte encoding."));
+ return FALSE;
+ }
+ vim_strncpy((char_u *)prt_cmap, p_pmcs, sizeof(prt_cmap) - 3);
+--- 2482,2488 ----
+ /* Add custom CMap character set name */
+ if (*p_pmcs == NUL)
+ {
+! emsg(_("E674: printmbcharset cannot be empty with multi-byte encoding."));
+ return FALSE;
+ }
+ vim_strncpy((char_u *)prt_cmap, p_pmcs, sizeof(prt_cmap) - 3);
+***************
+*** 2500,2506 ****
+
+ if (!mbfont_opts[OPT_MBFONT_REGULAR].present)
+ {
+! EMSG(_("E675: No default font specified for multi-byte printing."));
+ return FALSE;
+ }
+
+--- 2500,2506 ----
+
+ if (!mbfont_opts[OPT_MBFONT_REGULAR].present)
+ {
+! emsg(_("E675: No default font specified for multi-byte printing."));
+ return FALSE;
+ }
+
+***************
+*** 2677,2683 ****
+ prt_ps_file_name = vim_tempname('p', TRUE);
+ if (prt_ps_file_name == NULL)
+ {
+! EMSG(_(e_notmp));
+ return FAIL;
+ }
+ prt_ps_fd = mch_fopen((char *)prt_ps_file_name, WRITEBIN);
+--- 2677,2683 ----
+ prt_ps_file_name = vim_tempname('p', TRUE);
+ if (prt_ps_file_name == NULL)
+ {
+! emsg(_(e_notmp));
+ return FAIL;
+ }
+ prt_ps_fd = mch_fopen((char *)prt_ps_file_name, WRITEBIN);
+***************
+*** 2693,2699 ****
+ }
+ if (prt_ps_fd == NULL)
+ {
+! EMSG(_("E324: Can't open PostScript output file"));
+ mch_print_cleanup();
+ return FAIL;
+ }
+--- 2693,2699 ----
+ }
+ if (prt_ps_fd == NULL)
+ {
+! emsg(_("E324: Can't open PostScript output file"));
+ mch_print_cleanup();
+ return FAIL;
+ }
+***************
+*** 2729,2735 ****
+ fd_resource = mch_fopen((char *)resource->filename, READBIN);
+ if (fd_resource == NULL)
+ {
+! EMSG2(_("E456: Can't open file \"%s\""), resource->filename);
+ return FALSE;
+ }
+ prt_dsc_resources("BeginResource", prt_resource_types[resource->type],
+--- 2729,2735 ----
+ fd_resource = mch_fopen((char *)resource->filename, READBIN);
+ if (fd_resource == NULL)
+ {
+! semsg(_("E456: Can't open file \"%s\""), resource->filename);
+ return FALSE;
+ }
+ prt_dsc_resources("BeginResource", prt_resource_types[resource->type],
+***************
+*** 2743,2749 ****
+ sizeof(resource_buffer), fd_resource);
+ if (ferror(fd_resource))
+ {
+! EMSG2(_("E457: Can't read PostScript resource file \"%s\""),
+ resource->filename);
+ fclose(fd_resource);
+ return FALSE;
+--- 2743,2749 ----
+ sizeof(resource_buffer), fd_resource);
+ if (ferror(fd_resource))
+ {
+! semsg(_("E457: Can't read PostScript resource file \"%s\""),
+ resource->filename);
+ fclose(fd_resource);
+ return FALSE;
+***************
+*** 2880,2886 ****
+ /* Search for external resources VIM supplies */
+ if (!prt_find_resource("prolog", res_prolog))
+ {
+! EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+ goto theend;
+ }
+ if (!prt_open_resource(res_prolog))
+--- 2880,2886 ----
+ /* Search for external resources VIM supplies */
+ if (!prt_find_resource("prolog", res_prolog))
+ {
+! emsg(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+ goto theend;
+ }
+ if (!prt_open_resource(res_prolog))
+***************
+*** 2893,2899 ****
+ /* Look for required version of multi-byte printing procset */
+ if (!prt_find_resource("cidfont", res_cidfont))
+ {
+! EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+ goto theend;
+ }
+ if (!prt_open_resource(res_cidfont))
+--- 2893,2899 ----
+ /* Look for required version of multi-byte printing procset */
+ if (!prt_find_resource("cidfont", res_cidfont))
+ {
+! emsg(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+ goto theend;
+ }
+ if (!prt_open_resource(res_cidfont))
+***************
+*** 2931,2937 ****
+ p_encoding = (char_u *)"latin1";
+ if (!prt_find_resource((char *)p_encoding, res_encoding))
+ {
+! EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ p_encoding);
+ goto theend;
+ }
+--- 2931,2937 ----
+ p_encoding = (char_u *)"latin1";
+ if (!prt_find_resource((char *)p_encoding, res_encoding))
+ {
+! semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ p_encoding);
+ goto theend;
+ }
+***************
+*** 2953,2959 ****
+ /* Include ASCII range encoding vector */
+ if (!prt_find_resource(prt_ascii_encoding, res_encoding))
+ {
+! EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_ascii_encoding);
+ goto theend;
+ }
+--- 2953,2959 ----
+ /* Include ASCII range encoding vector */
+ if (!prt_find_resource(prt_ascii_encoding, res_encoding))
+ {
+! semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_ascii_encoding);
+ goto theend;
+ }
+***************
+*** 2969,2975 ****
+ /* Set up encoding conversion if required */
+ if (FAIL == convert_setup(&prt_conv, p_enc, p_encoding))
+ {
+! EMSG2(_("E620: Unable to convert to print encoding \"%s\""),
+ p_encoding);
+ goto theend;
+ }
+--- 2969,2975 ----
+ /* Set up encoding conversion if required */
+ if (FAIL == convert_setup(&prt_conv, p_enc, p_encoding))
+ {
+! semsg(_("E620: Unable to convert to print encoding \"%s\""),
+ p_encoding);
+ goto theend;
+ }
+***************
+*** 2982,2988 ****
+ /* Find user supplied CMap */
+ if (!prt_find_resource(prt_cmap, res_cmap))
+ {
+! EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_cmap);
+ goto theend;
+ }
+--- 2982,2988 ----
+ /* Find user supplied CMap */
+ if (!prt_find_resource(prt_cmap, res_cmap))
+ {
+! semsg(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_cmap);
+ goto theend;
+ }
+***************
+*** 3236,3242 ****
+
+ /* Not printing to a file: use 'printexpr' to print the file. */
+ if (eval_printexpr(prt_ps_file_name, psettings->arguments) == FAIL)
+! EMSG(_("E365: Failed to print PostScript file"));
+ else
+ prt_message((char_u *)_("Print job sent."));
+ }
+--- 3236,3242 ----
+
+ /* Not printing to a file: use 'printexpr' to print the file. */
+ if (eval_printexpr(prt_ps_file_name, psettings->arguments) == FAIL)
+! emsg(_("E365: Failed to print PostScript file"));
+ else
+ prt_message((char_u *)_("Print job sent."));
+ }
+*** ../vim-8.1.0742/src/hashtab.c 2017-01-15 17:16:08.000000000 +0100
+--- src/hashtab.c 2019-01-13 19:51:33.364547920 +0100
+***************
+*** 334,342 ****
+
+ #ifdef HT_DEBUG
+ if (ht->ht_used > ht->ht_filled)
+! EMSG("hash_may_resize(): more used than filled");
+ if (ht->ht_filled >= ht->ht_mask + 1)
+! EMSG("hash_may_resize(): table completely filled");
+ #endif
+
+ if (minitems == 0)
+--- 334,342 ----
+
+ #ifdef HT_DEBUG
+ if (ht->ht_used > ht->ht_filled)
+! emsg("hash_may_resize(): more used than filled");
+ if (ht->ht_filled >= ht->ht_mask + 1)
+! emsg("hash_may_resize(): table completely filled");
+ #endif
+
+ if (minitems == 0)
+*** ../vim-8.1.0742/src/if_cscope.c 2018-09-30 21:43:17.195693290 +0200
+--- src/if_cscope.c 2019-01-13 19:51:40.908479830 +0100
+***************
+*** 76,82 ****
+ static void
+ cs_usage_msg(csid_e x)
+ {
+! (void)EMSG2(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage);
+ }
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+--- 76,82 ----
+ static void
+ cs_usage_msg(csid_e x)
+ {
+! (void)semsg(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage);
+ }
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+***************
+*** 254,260 ****
+
+ if (*eap->arg == NUL)
+ {
+! (void)EMSG(_("E562: Usage: cstag <ident>"));
+ return;
+ }
+
+--- 254,260 ----
+
+ if (*eap->arg == NUL)
+ {
+! (void)emsg(_("E562: Usage: cstag <ident>"));
+ return;
+ }
+
+***************
+*** 312,318 ****
+
+ if (!ret)
+ {
+! (void)EMSG(_("E257: cstag: tag not found"));
+ #if defined(FEAT_QUICKFIX)
+ g_do_tagpreview = 0;
+ #endif
+--- 312,318 ----
+
+ if (!ret)
+ {
+! (void)emsg(_("E257: cstag: tag not found"));
+ #if defined(FEAT_QUICKFIX)
+ g_do_tagpreview = 0;
+ #endif
+***************
+*** 471,481 ****
+ if (buf != NULL)
+ {
+ (void)sprintf(buf, stat_emsg, fname, errno);
+! (void)EMSG(buf);
+ vim_free(buf);
+ }
+ else
+! (void)EMSG(_("E563: stat error"));
+ }
+
+
+--- 471,481 ----
+ if (buf != NULL)
+ {
+ (void)sprintf(buf, stat_emsg, fname, errno);
+! (void)emsg(buf);
+ vim_free(buf);
+ }
+ else
+! (void)emsg(_("E563: stat error"));
+ }
+
+
+***************
+*** 579,585 ****
+ else
+ {
+ if (p_csverbose)
+! (void)EMSG2(
+ _("E564: %s is not a directory or a valid cscope database"),
+ fname);
+ goto add_err;
+--- 579,585 ----
+ else
+ {
+ if (p_csverbose)
+! (void)semsg(
+ _("E564: %s is not a directory or a valid cscope database"),
+ fname);
+ goto add_err;
+***************
+*** 598,604 ****
+ {
+ msg_clr_eos();
+ (void)smsg_attr(HL_ATTR(HLF_R),
+! (char_u *)_("Added cscope database %s"),
+ csinfo[i].fname);
+ }
+ }
+--- 598,604 ----
+ {
+ msg_clr_eos();
+ (void)smsg_attr(HL_ATTR(HLF_R),
+! _("Added cscope database %s"),
+ csinfo[i].fname);
+ }
+ }
+***************
+*** 651,657 ****
+ cs_reading_emsg(
+ int idx) /* connection index */
+ {
+! EMSGN(_("E262: error reading cscope connection %ld"), idx);
+ }
+
+ #define CSREAD_BUFSIZE 2048
+--- 651,657 ----
+ cs_reading_emsg(
+ int idx) /* connection index */
+ {
+! semsg(_("E262: error reading cscope connection %ld"), idx);
+ }
+
+ #define CSREAD_BUFSIZE 2048
+***************
+*** 757,763 ****
+ search = 9;
+ break;
+ default :
+! (void)EMSG(_("E561: unknown cscope search type"));
+ cs_usage_msg(Find);
+ return NULL;
+ }
+--- 757,763 ----
+ search = 9;
+ break;
+ default :
+! (void)emsg(_("E561: unknown cscope search type"));
+ cs_usage_msg(Find);
+ return NULL;
+ }
+***************
+*** 814,820 ****
+ to_cs[0] = to_cs[1] = from_cs[0] = from_cs[1] = -1;
+ if (pipe(to_cs) < 0 || pipe(from_cs) < 0)
+ {
+! (void)EMSG(_("E566: Could not create cscope pipes"));
+ err_closing:
+ if (to_cs[0] != -1)
+ (void)close(to_cs[0]);
+--- 814,820 ----
+ to_cs[0] = to_cs[1] = from_cs[0] = from_cs[1] = -1;
+ if (pipe(to_cs) < 0 || pipe(from_cs) < 0)
+ {
+! (void)emsg(_("E566: Could not create cscope pipes"));
+ err_closing:
+ if (to_cs[0] != -1)
+ (void)close(to_cs[0]);
+***************
+*** 830,836 ****
+ switch (csinfo[i].pid = fork())
+ {
+ case -1:
+! (void)EMSG(_("E622: Could not fork for cscope"));
+ goto err_closing;
+ case 0: /* child: run cscope. */
+ if (dup2(to_cs[0], STDIN_FILENO) == -1)
+--- 830,836 ----
+ switch (csinfo[i].pid = fork())
+ {
+ case -1:
+! (void)emsg(_("E622: Could not fork for cscope"));
+ goto err_closing;
+ case 0: /* child: run cscope. */
+ if (dup2(to_cs[0], STDIN_FILENO) == -1)
+***************
+*** 853,859 ****
+ if (!(pipe_stdin = CreatePipe(&stdin_rd, &stdin_wr, &sa, 0))
+ || !(pipe_stdout = CreatePipe(&stdout_rd, &stdout_wr, &sa, 0)))
+ {
+! (void)EMSG(_("E566: Could not create cscope pipes"));
+ err_closing:
+ if (pipe_stdin)
+ {
+--- 853,859 ----
+ if (!(pipe_stdin = CreatePipe(&stdin_rd, &stdin_wr, &sa, 0))
+ || !(pipe_stdout = CreatePipe(&stdout_rd, &stdout_wr, &sa, 0)))
+ {
+! (void)emsg(_("E566: Could not create cscope pipes"));
+ err_closing:
+ if (pipe_stdin)
+ {
+***************
+*** 987,993 ****
+ if (!created)
+ {
+ PERROR(_("cs_create_connection exec failed"));
+! (void)EMSG(_("E623: Could not spawn cscope process"));
+ goto err_closing;
+ }
+ /* else */
+--- 987,993 ----
+ if (!created)
+ {
+ PERROR(_("cs_create_connection exec failed"));
+! (void)emsg(_("E623: Could not spawn cscope process"));
+ goto err_closing;
+ }
+ /* else */
+***************
+*** 1029,1035 ****
+
+ if (cs_check_for_connections() == FALSE)
+ {
+! (void)EMSG(_("E567: no cscope connections"));
+ return FALSE;
+ }
+
+--- 1029,1035 ----
+
+ if (cs_check_for_connections() == FALSE)
+ {
+! (void)emsg(_("E567: no cscope connections"));
+ return FALSE;
+ }
+
+***************
+*** 1127,1133 ****
+ if (buf != NULL)
+ {
+ sprintf(buf, nf, *qfpos, *(qfpos-1));
+! (void)EMSG(buf);
+ vim_free(buf);
+ }
+ return FALSE;
+--- 1127,1133 ----
+ if (buf != NULL)
+ {
+ sprintf(buf, nf, *qfpos, *(qfpos-1));
+! (void)emsg(buf);
+ vim_free(buf);
+ }
+ return FALSE;
+***************
+*** 1194,1204 ****
+
+ buf = (char *)alloc((unsigned)(strlen(opt) + strlen(pat) + strlen(nf)));
+ if (buf == NULL)
+! (void)EMSG(nf);
+ else
+ {
+ sprintf(buf, nf, opt, pat);
+! (void)EMSG(buf);
+ vim_free(buf);
+ }
+ vim_free(nummatches);
+--- 1194,1204 ----
+
+ buf = (char *)alloc((unsigned)(strlen(opt) + strlen(pat) + strlen(nf)));
+ if (buf == NULL)
+! (void)emsg(nf);
+ else
+ {
+ sprintf(buf, nf, opt, pat);
+! (void)emsg(buf);
+ vim_free(buf);
+ }
+ vim_free(nummatches);
+***************
+*** 1216,1222 ****
+
+ f = mch_fopen((char *)tmp, "w");
+ if (f == NULL)
+! EMSG2(_(e_notopen), tmp);
+ else
+ {
+ cs_file_results(f, nummatches);
+--- 1216,1222 ----
+
+ f = mch_fopen((char *)tmp, "w");
+ if (f == NULL)
+! semsg(_(e_notopen), tmp);
+ else
+ {
+ cs_file_results(f, nummatches);
+***************
+*** 1289,1295 ****
+ /* Use %*s rather than %30s to ensure proper alignment in utf-8 */
+ if (space_cnt < 0)
+ space_cnt = 0;
+! (void)smsg((char_u *)_("%-5s: %s%*s (Usage: %s)"),
+ cmdp->name,
+ help, space_cnt, " ",
+ cmdp->usage);
+--- 1289,1295 ----
+ /* Use %*s rather than %30s to ensure proper alignment in utf-8 */
+ if (space_cnt < 0)
+ space_cnt = 0;
+! (void)smsg(_("%-5s: %s%*s (Usage: %s)"),
+ cmdp->name,
+ help, space_cnt, " ",
+ cmdp->usage);
+***************
+*** 1378,1395 ****
+
+ if (winmsg != NULL)
+ {
+! (void)EMSG2(cant_msg, winmsg);
+ LocalFree(winmsg);
+ }
+ else
+ /* subst filename if can't get error text */
+! (void)EMSG2(cant_msg, fname);
+ }
+ return -1;
+
+ case FILEINFO_INFO_FAIL: /* GetFileInformationByHandle() failed */
+ if (p_csverbose)
+! (void)EMSG(_("E626: cannot get cscope database information"));
+ return -1;
+ }
+ #endif
+--- 1378,1395 ----
+
+ if (winmsg != NULL)
+ {
+! (void)semsg(cant_msg, winmsg);
+ LocalFree(winmsg);
+ }
+ else
+ /* subst filename if can't get error text */
+! (void)semsg(cant_msg, fname);
+ }
+ return -1;
+
+ case FILEINFO_INFO_FAIL: /* GetFileInformationByHandle() failed */
+ if (p_csverbose)
+! (void)emsg(_("E626: cannot get cscope database information"));
+ return -1;
+ }
+ #endif
+***************
+*** 1412,1418 ****
+ )
+ {
+ if (p_csverbose)
+! (void)EMSG(_("E568: duplicate cscope database not added"));
+ return -1;
+ }
+
+--- 1412,1418 ----
+ )
+ {
+ if (p_csverbose)
+! (void)emsg(_("E568: duplicate cscope database not added"));
+ return -1;
+ }
+
+***************
+*** 1555,1561 ****
+ if ((i != -1) && (i >= csinfo_size || i < -1 || csinfo[i].fname == NULL))
+ {
+ if (p_csverbose)
+! (void)EMSG2(_("E261: cscope connection %s not found"), stok);
+ }
+ else
+ {
+--- 1555,1561 ----
+ if ((i != -1) && (i >= csinfo_size || i < -1 || csinfo[i].fname == NULL))
+ {
+ if (p_csverbose)
+! (void)semsg(_("E261: cscope connection %s not found"), stok);
+ }
+ else
+ {
+***************
+*** 1587,1593 ****
+ {
+ msg_clr_eos();
+ (void)smsg_attr(HL_ATTR(HLF_R) | MSG_HIST,
+! (char_u *)_("cscope connection %s closed"), cname);
+ }
+ cs_release_csp(i, TRUE);
+ }
+--- 1587,1593 ----
+ {
+ msg_clr_eos();
+ (void)smsg_attr(HL_ATTR(HLF_R) | MSG_HIST,
+! _("cscope connection %s closed"), cname);
+ }
+ cs_release_csp(i, TRUE);
+ }
+***************
+*** 1723,1729 ****
+ cs_print_tags_priv(mp, cp, cnt);
+ break;
+ default: /* should not reach here */
+! IEMSG(_("E570: fatal error in cs_manage_matches"));
+ return NULL;
+ }
+
+--- 1723,1729 ----
+ cs_print_tags_priv(mp, cp, cnt);
+ break;
+ default: /* should not reach here */
+! iemsg(_("E570: fatal error in cs_manage_matches"));
+ return NULL;
+ }
+
+***************
+*** 2141,2147 ****
+ buf[bufpos - epromptlen] = NUL;
+
+ /* print message to user */
+! (void)EMSG2(cs_emsg, buf);
+
+ /* send RETURN to cscope */
+ (void)putc('\n', csinfo[i].to_fp);
+--- 2141,2147 ----
+ buf[bufpos - epromptlen] = NUL;
+
+ /* print message to user */
+! (void)semsg(cs_emsg, buf);
+
+ /* send RETURN to cscope */
+ (void)putc('\n', csinfo[i].to_fp);
+***************
+*** 2162,2168 ****
+ {
+ PERROR("cs_read_prompt EOF");
+ if (buf != NULL && buf[0] != NUL)
+! (void)EMSG2(cs_emsg, buf);
+ else if (p_csverbose)
+ cs_reading_emsg(i); /* don't have additional information */
+ cs_release_csp(i, TRUE);
+--- 2162,2168 ----
+ {
+ PERROR("cs_read_prompt EOF");
+ if (buf != NULL && buf[0] != NUL)
+! (void)semsg(cs_emsg, buf);
+ else if (p_csverbose)
+ cs_reading_emsg(i); /* don't have additional information */
+ cs_release_csp(i, TRUE);
+***************
+*** 2476,2485 ****
+ continue;
+
+ if (csinfo[i].ppath != NULL)
+! (void)smsg((char_u *)"%2d %-5ld %-34s %-32s",
+ i, (long)csinfo[i].pid, csinfo[i].fname, csinfo[i].ppath);
+ else
+! (void)smsg((char_u *)"%2d %-5ld %-34s <none>",
+ i, (long)csinfo[i].pid, csinfo[i].fname);
+ }
+ }
+--- 2476,2485 ----
+ continue;
+
+ if (csinfo[i].ppath != NULL)
+! (void)smsg("%2d %-5ld %-34s %-32s",
+ i, (long)csinfo[i].pid, csinfo[i].fname, csinfo[i].ppath);
+ else
+! (void)smsg("%2d %-5ld %-34s <none>",
+ i, (long)csinfo[i].pid, csinfo[i].fname);
+ }
+ }
+*** ../vim-8.1.0742/src/if_lua.c 2019-01-01 00:41:50.040176062 +0100
+--- src/if_lua.c 2019-01-13 19:51:49.644401160 +0100
+***************
+*** 415,421 ****
+ if (!hinstLua)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), libname);
+ return FAIL;
+ }
+ for (reg = luaV_dll; reg->func; reg++)
+--- 415,421 ----
+ if (!hinstLua)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), libname);
+ return FAIL;
+ }
+ for (reg = luaV_dll; reg->func; reg++)
+***************
+*** 425,431 ****
+ close_dll(hinstLua);
+ hinstLua = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), reg->name);
+ return FAIL;
+ }
+ }
+--- 425,431 ----
+ close_dll(hinstLua);
+ hinstLua = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), reg->name);
+ return FAIL;
+ }
+ }
+***************
+*** 1795,1801 ****
+ return 0;
+ }
+ if (luaV_totypval(L, -1, rettv) == FAIL)
+! EMSG("luaeval: cannot convert value");
+ return 0;
+ }
+
+--- 1795,1801 ----
+ return 0;
+ }
+ if (luaV_totypval(L, -1, rettv) == FAIL)
+! emsg("luaeval: cannot convert value");
+ return 0;
+ }
+
+***************
+*** 1926,1932 ****
+ #ifdef DYNAMIC_LUA
+ if (!lua_enabled(TRUE))
+ {
+! EMSG(_("Lua library cannot be loaded."));
+ return FAIL;
+ }
+ #endif
+--- 1926,1932 ----
+ #ifdef DYNAMIC_LUA
+ if (!lua_enabled(TRUE))
+ {
+! emsg(_("Lua library cannot be loaded."));
+ return FAIL;
+ }
+ #endif
+***************
+*** 1978,1984 ****
+ if (lua_init() == FAIL) return;
+ if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL)
+ {
+! EMSG(_("cannot save undo information"));
+ return;
+ }
+ luaV_setrange(L, eap->line1, eap->line2);
+--- 1978,1984 ----
+ if (lua_init() == FAIL) return;
+ if (u_save(eap->line1 - 1, eap->line2 + 1) == FAIL)
+ {
+! emsg(_("cannot save undo information"));
+ return;
+ }
+ luaV_setrange(L, eap->line1, eap->line2);
+*** ../vim-8.1.0742/src/if_mzsch.c 2019-01-10 22:56:25.525250963 +0100
+--- src/if_mzsch.c 2019-01-13 19:51:58.384322647 +0100
+***************
+*** 672,685 ****
+ if (!hMzGC)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+ if (!hMzSch)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+--- 672,685 ----
+ if (!hMzGC)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+ if (!hMzSch)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+***************
+*** 693,699 ****
+ FreeLibrary(hMzGC);
+ hMzGC = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), thunk->name);
+ return FAIL;
+ }
+ }
+--- 693,699 ----
+ FreeLibrary(hMzGC);
+ hMzGC = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), thunk->name);
+ return FAIL;
+ }
+ }
+***************
+*** 707,713 ****
+ FreeLibrary(hMzGC);
+ hMzGC = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), thunk->name);
+ return FAIL;
+ }
+ }
+--- 707,713 ----
+ FreeLibrary(hMzGC);
+ hMzGC = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), thunk->name);
+ return FAIL;
+ }
+ }
+***************
+*** 1260,1272 ****
+ #ifdef DYNAMIC_MZSCHEME
+ if (disabled || !mzscheme_enabled(TRUE))
+ {
+! EMSG(_("E815: Sorry, this command is disabled, the MzScheme libraries could not be loaded."));
+ return -1;
+ }
+ #endif
+ if (load_base_module_failed || startup_mzscheme())
+ {
+! EMSG(_("E895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded."));
+ return -1;
+ }
+ initialized = TRUE;
+--- 1260,1272 ----
+ #ifdef DYNAMIC_MZSCHEME
+ if (disabled || !mzscheme_enabled(TRUE))
+ {
+! emsg(_("E815: Sorry, this command is disabled, the MzScheme libraries could not be loaded."));
+ return -1;
+ }
+ #endif
+ if (load_base_module_failed || startup_mzscheme())
+ {
+! emsg(_("E895: Sorry, this command is disabled, the MzScheme's racket/base module could not be loaded."));
+ return -1;
+ }
+ initialized = TRUE;
+***************
+*** 1572,1578 ****
+ {
+ *p = '\0';
+ if (error)
+! EMSG(prev);
+ else
+ MSG(prev);
+ prev = p + 1;
+--- 1572,1578 ----
+ {
+ *p = '\0';
+ if (error)
+! emsg(prev);
+ else
+ MSG(prev);
+ prev = p + 1;
+***************
+*** 1580,1586 ****
+ }
+
+ if (error)
+! EMSG(prev);
+ else
+ MSG(prev);
+ }
+--- 1580,1586 ----
+ }
+
+ if (error)
+! emsg(prev);
+ else
+ MSG(prev);
+ }
+*** ../vim-8.1.0742/src/if_perl.xs 2019-01-12 22:47:01.260088089 +0100
+--- src/if_perl.xs 2019-01-13 19:58:15.057080455 +0100
+***************
+*** 695,701 ****
+ if ((hPerlLib = load_dll(libname)) == NULL)
+ {
+ if (verbose)
+! EMSG2(_("E370: Could not load library %s"), libname);
+ return FAIL;
+ }
+ for (i = 0; perl_funcname_table[i].ptr; ++i)
+--- 695,701 ----
+ if ((hPerlLib = load_dll(libname)) == NULL)
+ {
+ if (verbose)
+! semsg(_("E370: Could not load library %s"), libname);
+ return FAIL;
+ }
+ for (i = 0; perl_funcname_table[i].ptr; ++i)
+***************
+*** 706,712 ****
+ close_dll(hPerlLib);
+ hPerlLib = NULL;
+ if (verbose)
+! EMSG2(_(e_loadfunc), perl_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+--- 706,712 ----
+ close_dll(hPerlLib);
+ hPerlLib = NULL;
+ if (verbose)
+! semsg((const char *)_(e_loadfunc), perl_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 998,1004 ****
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! EMSG(_(e_noperl));
+ vim_free(script);
+ return;
+ }
+--- 998,1004 ----
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! emsg(_(e_noperl));
+ vim_free(script);
+ return;
+ }
+***************
+*** 1025,1031 ****
+ safe = perl_get_sv("VIM::safe", FALSE);
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+! EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+ {
+--- 1025,1031 ----
+ safe = perl_get_sv("VIM::safe", FALSE);
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+! emsg(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+ {
+***************
+*** 1235,1241 ****
+ key = hv_iterkey(entry, &key_len);
+
+ if (!key || !key_len || strlen(key) < (size_t)key_len) {
+! EMSG2("Malformed key Dictionary '%s'", key && *key ? key : "(empty)");
+ break;
+ }
+
+--- 1235,1241 ----
+ key = hv_iterkey(entry, &key_len);
+
+ if (!key || !key_len || strlen(key) < (size_t)key_len) {
+! semsg("Malformed key Dictionary '%s'", key && *key ? key : "(empty)");
+ break;
+ }
+
+***************
+*** 1286,1292 ****
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! EMSG(_(e_noperl));
+ return;
+ }
+ #endif
+--- 1286,1292 ----
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! emsg(_(e_noperl));
+ return;
+ }
+ #endif
+***************
+*** 1304,1310 ****
+ safe = get_sv("VIM::safe", FALSE);
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+! EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+ {
+--- 1304,1310 ----
+ safe = get_sv("VIM::safe", FALSE);
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+! emsg(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+ else
+ # endif
+ {
+***************
+*** 1356,1362 ****
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! EMSG(_(e_noperl));
+ return;
+ }
+ #endif
+--- 1356,1362 ----
+ #ifdef DYNAMIC_PERL
+ if (!perl_enabled(TRUE))
+ {
+! emsg(_(e_noperl));
+ return;
+ }
+ #endif
+*** ../vim-8.1.0742/src/if_py_both.h 2019-01-12 22:47:01.260088089 +0100
+--- src/if_py_both.h 2019-01-13 19:58:18.909048411 +0100
+***************
+*** 536,542 ****
+
+ if (PyErr_Occurred())
+ {
+! EMSG(_("E264: Python: Error initialising I/O objects"));
+ return -1;
+ }
+
+--- 536,542 ----
+
+ if (PyErr_Occurred())
+ {
+! emsg(_("E264: Python: Error initialising I/O objects"));
+ return -1;
+ }
+
+***************
+*** 5664,5670 ****
+ }
+ else if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+! EMSG2(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ }
+ else
+--- 5664,5670 ----
+ }
+ else if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+! semsg(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ }
+ else
+***************
+*** 5691,5697 ****
+
+ if (u_save((linenr_T)RangeStart - 1, (linenr_T)RangeEnd + 1) != OK)
+ {
+! EMSG(_("cannot save undo information"));
+ return;
+ }
+
+--- 5691,5697 ----
+
+ if (u_save((linenr_T)RangeStart - 1, (linenr_T)RangeEnd + 1) != OK)
+ {
+! emsg(_("cannot save undo information"));
+ return;
+ }
+
+***************
+*** 5709,5715 ****
+ else if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+ PyMem_Free(code);
+! EMSG2(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ return;
+ }
+--- 5709,5715 ----
+ else if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+ PyMem_Free(code);
+! semsg(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ return;
+ }
+***************
+*** 5720,5726 ****
+
+ if (status)
+ {
+! EMSG(_("failed to run the code"));
+ return;
+ }
+
+--- 5720,5726 ----
+
+ if (status)
+ {
+! emsg(_("failed to run the code"));
+ return;
+ }
+
+***************
+*** 5810,5829 ****
+ {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+! EMSG2(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ }
+ else
+ {
+ if (PyErr_Occurred() && !msg_silent)
+ PyErr_PrintEx(0);
+! EMSG(_("E858: Eval did not return a valid python object"));
+ }
+ }
+ else
+ {
+ if (ConvertFromPyObject(run_ret, rettv) == -1)
+! EMSG(_("E859: Failed to convert returned python object to vim value"));
+ Py_DECREF(run_ret);
+ }
+ PyErr_Clear();
+--- 5810,5829 ----
+ {
+ if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
+ {
+! semsg(_(e_py_systemexit), "python");
+ PyErr_Clear();
+ }
+ else
+ {
+ if (PyErr_Occurred() && !msg_silent)
+ PyErr_PrintEx(0);
+! emsg(_("E858: Eval did not return a valid python object"));
+ }
+ }
+ else
+ {
+ if (ConvertFromPyObject(run_ret, rettv) == -1)
+! emsg(_("E859: Failed to convert returned python object to vim value"));
+ Py_DECREF(run_ret);
+ }
+ PyErr_Clear();
+***************
+*** 6727,6733 ****
+ else
+ {
+ VimTryStart();
+! EMSG(_("Failed to set path hook: sys.path_hooks is not a list\n"
+ "You should now do the following:\n"
+ "- append vim.path_hook to sys.path_hooks\n"
+ "- append vim.VIM_SPECIAL_PATH to sys.path\n"));
+--- 6727,6733 ----
+ else
+ {
+ VimTryStart();
+! emsg(_("Failed to set path hook: sys.path_hooks is not a list\n"
+ "You should now do the following:\n"
+ "- append vim.path_hook to sys.path_hooks\n"
+ "- append vim.VIM_SPECIAL_PATH to sys.path\n"));
+***************
+*** 6757,6763 ****
+ else
+ {
+ VimTryStart();
+! EMSG(_("Failed to set path: sys.path is not a list\n"
+ "You should now append vim.VIM_SPECIAL_PATH to sys.path"));
+ VimTryEnd(); /* Discard the error */
+ }
+--- 6757,6763 ----
+ else
+ {
+ VimTryStart();
+! emsg(_("Failed to set path: sys.path is not a list\n"
+ "You should now append vim.VIM_SPECIAL_PATH to sys.path"));
+ VimTryEnd(); /* Discard the error */
+ }
+*** ../vim-8.1.0742/src/if_python.c 2019-01-12 22:47:01.260088089 +0100
+--- src/if_python.c 2019-01-13 19:52:08.008236404 +0100
+***************
+*** 685,691 ****
+ if (python3_loaded())
+ {
+ if (verbose)
+! EMSG(_("E836: This Vim cannot execute :python after using :py3"));
+ return FAIL;
+ }
+ #endif
+--- 685,691 ----
+ if (python3_loaded())
+ {
+ if (verbose)
+! emsg(_("E836: This Vim cannot execute :python after using :py3"));
+ return FAIL;
+ }
+ #endif
+***************
+*** 696,702 ****
+ if (!hinstPython)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+--- 696,702 ----
+ if (!hinstPython)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+***************
+*** 708,714 ****
+ close_dll(hinstPython);
+ hinstPython = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), python_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+--- 708,714 ----
+ close_dll(hinstPython);
+ hinstPython = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), python_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 725,731 ****
+ close_dll(hinstPython);
+ hinstPython = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
+ return FAIL;
+ }
+
+--- 725,731 ----
+ close_dll(hinstPython);
+ hinstPython = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), "PyUnicode_UCSX_*");
+ return FAIL;
+ }
+
+***************
+*** 928,934 ****
+ #ifdef DYNAMIC_PYTHON
+ if (!python_enabled(TRUE))
+ {
+! EMSG(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
+ goto fail;
+ }
+ #endif
+--- 928,934 ----
+ #ifdef DYNAMIC_PYTHON
+ if (!python_enabled(TRUE))
+ {
+! emsg(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
+ goto fail;
+ }
+ #endif
+***************
+*** 960,966 ****
+ site = PyImport_ImportModule("site");
+ if (site == NULL)
+ {
+! EMSG(_("E887: Sorry, this command is disabled, the Python's site module could not be loaded."));
+ goto fail;
+ }
+ Py_DECREF(site);
+--- 960,966 ----
+ site = PyImport_ImportModule("site");
+ if (site == NULL)
+ {
+! emsg(_("E887: Sorry, this command is disabled, the Python's site module could not be loaded."));
+ goto fail;
+ }
+ Py_DECREF(site);
+***************
+*** 1035,1041 ****
+ #ifndef PY_CAN_RECURSE
+ if (recursive)
+ {
+! EMSG(_("E659: Cannot invoke Python recursively"));
+ return;
+ }
+ ++recursive;
+--- 1035,1041 ----
+ #ifndef PY_CAN_RECURSE
+ if (recursive)
+ {
+! emsg(_("E659: Cannot invoke Python recursively"));
+ return;
+ }
+ ++recursive;
+*** ../vim-8.1.0742/src/if_python3.c 2019-01-12 22:47:01.260088089 +0100
+--- src/if_python3.c 2019-01-13 19:52:20.724122796 +0100
+***************
+*** 634,640 ****
+ if (python_loaded())
+ {
+ if (verbose)
+! EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
+ return FAIL;
+ }
+ # endif
+--- 634,640 ----
+ if (python_loaded())
+ {
+ if (verbose)
+! emsg(_("E837: This Vim cannot execute :py3 after using :python"));
+ return FAIL;
+ }
+ # endif
+***************
+*** 646,652 ****
+ if (!hinstPy3)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+--- 646,652 ----
+ if (!hinstPy3)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+***************
+*** 658,664 ****
+ close_dll(hinstPy3);
+ hinstPy3 = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), py3_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+--- 658,664 ----
+ close_dll(hinstPy3);
+ hinstPy3 = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), py3_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 693,699 ****
+ close_dll(hinstPy3);
+ hinstPy3 = 0;
+ if (verbose)
+! EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
+ return FAIL;
+ }
+
+--- 693,699 ----
+ close_dll(hinstPy3);
+ hinstPy3 = 0;
+ if (verbose)
+! semsg(_(e_loadfunc), "PyUnicode_UCSX_*");
+ return FAIL;
+ }
+
+***************
+*** 864,870 ****
+ #ifdef DYNAMIC_PYTHON3
+ if (!python3_enabled(TRUE))
+ {
+! EMSG(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
+ goto fail;
+ }
+ #endif
+--- 864,870 ----
+ #ifdef DYNAMIC_PYTHON3
+ if (!python3_enabled(TRUE))
+ {
+! emsg(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
+ goto fail;
+ }
+ #endif
+*** ../vim-8.1.0742/src/if_ruby.c 2019-01-12 22:47:01.264088074 +0100
+--- src/if_ruby.c 2019-01-13 19:52:26.720069358 +0100
+***************
+*** 745,751 ****
+ if (!hinstRuby)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+--- 745,751 ----
+ if (!hinstRuby)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), libname);
+ return FAIL;
+ }
+
+***************
+*** 757,763 ****
+ close_dll(hinstRuby);
+ hinstRuby = NULL;
+ if (verbose)
+! EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+--- 757,763 ----
+ close_dll(hinstRuby);
+ hinstRuby = NULL;
+ if (verbose)
+! semsg(_(e_loadfunc), ruby_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 885,891 ****
+ {
+ if (TYPE(line) != T_STRING)
+ {
+! EMSG(_("E265: $_ must be an instance of String"));
+ return;
+ }
+ ml_replace(i, (char_u *) StringValuePtr(line), 1);
+--- 885,891 ----
+ {
+ if (TYPE(line) != T_STRING)
+ {
+! emsg(_("E265: $_ must be an instance of String"));
+ return;
+ }
+ ml_replace(i, (char_u *) StringValuePtr(line), 1);
+***************
+*** 979,985 ****
+ }
+ else
+ {
+! EMSG(_("E266: Sorry, this command is disabled, the Ruby library could not be loaded."));
+ return 0;
+ }
+ #endif
+--- 979,985 ----
+ }
+ else
+ {
+! emsg(_("E266: Sorry, this command is disabled, the Ruby library could not be loaded."));
+ return 0;
+ }
+ #endif
+***************
+*** 1013,1031 ****
+ switch (state)
+ {
+ case TAG_RETURN:
+! EMSG(_("E267: unexpected return"));
+ break;
+ case TAG_NEXT:
+! EMSG(_("E268: unexpected next"));
+ break;
+ case TAG_BREAK:
+! EMSG(_("E269: unexpected break"));
+ break;
+ case TAG_REDO:
+! EMSG(_("E270: unexpected redo"));
+ break;
+ case TAG_RETRY:
+! EMSG(_("E271: retry outside of rescue clause"));
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+--- 1013,1031 ----
+ switch (state)
+ {
+ case TAG_RETURN:
+! emsg(_("E267: unexpected return"));
+ break;
+ case TAG_NEXT:
+! emsg(_("E268: unexpected next"));
+ break;
+ case TAG_BREAK:
+! emsg(_("E269: unexpected break"));
+ break;
+ case TAG_REDO:
+! emsg(_("E270: unexpected redo"));
+ break;
+ case TAG_RETRY:
+! emsg(_("E271: retry outside of rescue clause"));
+ break;
+ case TAG_RAISE:
+ case TAG_FATAL:
+***************
+*** 1038,1044 ****
+ einfo = rb_obj_as_string(error);
+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0)
+ {
+! EMSG(_("E272: unhandled exception"));
+ }
+ else
+ {
+--- 1038,1044 ----
+ einfo = rb_obj_as_string(error);
+ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0)
+ {
+! emsg(_("E272: unhandled exception"));
+ }
+ else
+ {
+***************
+*** 1050,1056 ****
+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+! EMSG(buff);
+ }
+
+ attr = syn_name2attr((char_u *)"Error");
+--- 1050,1056 ----
+ RSTRING_PTR(epath), RSTRING_PTR(einfo));
+ p = strchr(buff, '\n');
+ if (p) *p = '\0';
+! emsg(buff);
+ }
+
+ attr = syn_name2attr((char_u *)"Error");
+***************
+*** 1066,1072 ****
+ break;
+ default:
+ vim_snprintf(buff, BUFSIZ, _("E273: unknown longjmp status %d"), state);
+! EMSG(buff);
+ break;
+ }
+ }
+--- 1066,1072 ----
+ break;
+ default:
+ vim_snprintf(buff, BUFSIZ, _("E273: unknown longjmp status %d"), state);
+! emsg(buff);
+ break;
+ }
+ }
+*** ../vim-8.1.0742/src/if_tcl.c 2018-11-16 16:21:01.641310033 +0100
+--- src/if_tcl.c 2019-01-13 19:52:34.236002492 +0100
+***************
+*** 213,219 ****
+ if (!(hTclLib = load_dll(libname)))
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), libname);
+ return FAIL;
+ }
+ for (i = 0; tcl_funcname_table[i].ptr; ++i)
+--- 213,219 ----
+ if (!(hTclLib = load_dll(libname)))
+ {
+ if (verbose)
+! semsg(_(e_loadlib), libname);
+ return FAIL;
+ }
+ for (i = 0; tcl_funcname_table[i].ptr; ++i)
+***************
+*** 224,230 ****
+ close_dll(hTclLib);
+ hTclLib = NULL;
+ if (verbose)
+! EMSG2(_(e_loadfunc), tcl_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+--- 224,230 ----
+ close_dll(hTclLib);
+ hTclLib = NULL;
+ if (verbose)
+! semsg(_(e_loadfunc), tcl_funcname_table[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 1539,1545 ****
+ reflist = reflist->next;
+ }
+ /* This should never happen. Famous last word? */
+! EMSG(_("E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.org"));
+ Tcl_SetResult(interp, _("cannot register callback command: buffer/window reference not found"), TCL_STATIC);
+ return TCL_ERROR;
+ }
+--- 1539,1545 ----
+ reflist = reflist->next;
+ }
+ /* This should never happen. Famous last word? */
+! emsg(_("E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim.org"));
+ Tcl_SetResult(interp, _("cannot register callback command: buffer/window reference not found"), TCL_STATIC);
+ return TCL_ERROR;
+ }
+***************
+*** 1709,1715 ****
+ #ifdef DYNAMIC_TCL
+ if (!tcl_enabled(TRUE))
+ {
+! EMSG(_("E571: Sorry, this command is disabled: the Tcl library could not be loaded."));
+ return FAIL;
+ }
+ #endif
+--- 1709,1715 ----
+ #ifdef DYNAMIC_TCL
+ if (!tcl_enabled(TRUE))
+ {
+! emsg(_("E571: Sorry, this command is disabled: the Tcl library could not be loaded."));
+ return FAIL;
+ }
+ #endif
+***************
+*** 1817,1827 ****
+ while ((next=strchr(text, '\n')))
+ {
+ *next++ = '\0';
+! EMSG(text);
+ text = next;
+ }
+ if (*text)
+! EMSG(text);
+ }
+
+ static void
+--- 1817,1827 ----
+ while ((next=strchr(text, '\n')))
+ {
+ *next++ = '\0';
+! emsg(text);
+ text = next;
+ }
+ if (*text)
+! emsg(text);
+ }
+
+ static void
+*** ../vim-8.1.0742/src/if_xcmdsrv.c 2018-09-30 21:43:17.195693290 +0200
+--- src/if_xcmdsrv.c 2019-01-13 19:52:40.651945512 +0100
+***************
+*** 427,433 ****
+ if (w == None)
+ {
+ if (!silent)
+! EMSG2(_(e_noserver), name);
+ return -1;
+ }
+ else if (loosename != NULL)
+--- 427,433 ----
+ if (w == None)
+ {
+ if (!silent)
+! semsg(_(e_noserver), name);
+ return -1;
+ }
+ else if (loosename != NULL)
+***************
+*** 467,473 ****
+ vim_free(property);
+ if (res < 0)
+ {
+! EMSG(_("E248: Failed to send command to the destination program"));
+ return -1;
+ }
+
+--- 467,473 ----
+ vim_free(property);
+ if (res < 0)
+ {
+! emsg(_("E248: Failed to send command to the destination program"));
+ return -1;
+ }
+
+***************
+*** 732,738 ****
+
+ sscanf((char *)str, "0x%x", &id);
+ if (id == None)
+! EMSG2(_("E573: Invalid server id used: %s"), str);
+
+ return (Window)id;
+ }
+--- 732,738 ----
+
+ sscanf((char *)str, "0x%x", &id);
+ if (id == None)
+! semsg(_("E573: Invalid server id used: %s"), str);
+
+ return (Window)id;
+ }
+***************
+*** 1110,1116 ****
+ XFree(*regPropp);
+ XDeleteProperty(dpy, RootWindow(dpy, 0), registryProperty);
+ if (domsg)
+! EMSG(_("E251: VIM instance registry property is badly formed. Deleted!"));
+ return FAIL;
+ }
+ return OK;
+--- 1110,1116 ----
+ XFree(*regPropp);
+ XDeleteProperty(dpy, RootWindow(dpy, 0), registryProperty);
+ if (domsg)
+! emsg(_("E251: VIM instance registry property is badly formed. Deleted!"));
+ return FAIL;
+ }
+ return OK;
+*** ../vim-8.1.0742/src/json.c 2019-01-12 22:47:01.264088074 +0100
+--- src/json.c 2019-01-13 19:52:49.323868645 +0100
+***************
+*** 232,238 ****
+ case VAR_JOB:
+ case VAR_CHANNEL:
+ /* no JSON equivalent TODO: better error */
+! EMSG(_(e_invarg));
+ return FAIL;
+
+ case VAR_BLOB:
+--- 232,238 ----
+ case VAR_JOB:
+ case VAR_CHANNEL:
+ /* no JSON equivalent TODO: better error */
+! emsg(_(e_invarg));
+ return FAIL;
+
+ case VAR_BLOB:
+***************
+*** 739,745 ****
+ retval = json_decode_string(reader, cur_item, *p);
+ else
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ }
+ break;
+--- 739,745 ----
+ retval = json_decode_string(reader, cur_item, *p);
+ else
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ }
+ break;
+***************
+*** 747,753 ****
+ case ',': /* comma: empty item */
+ if ((options & JSON_JS) == 0)
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ break;
+ }
+--- 747,753 ----
+ case ',': /* comma: empty item */
+ if ((options & JSON_JS) == 0)
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ break;
+ }
+***************
+*** 777,783 ****
+ }
+ if (!VIM_ISDIGIT(*sp))
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ break;
+ }
+--- 777,783 ----
+ }
+ if (!VIM_ISDIGIT(*sp))
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ break;
+ }
+***************
+*** 915,921 ****
+ if (top_item->jd_key == NULL)
+ {
+ clear_tv(cur_item);
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ goto theend;
+ }
+--- 915,921 ----
+ if (top_item->jd_key == NULL)
+ {
+ clear_tv(cur_item);
+! emsg(_(e_invarg));
+ retval = FAIL;
+ goto theend;
+ }
+***************
+*** 953,959 ****
+ retval = MAYBE;
+ else
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+--- 953,959 ----
+ retval = MAYBE;
+ else
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+***************
+*** 971,977 ****
+ retval = MAYBE;
+ else
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+--- 971,977 ----
+ retval = MAYBE;
+ else
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+***************
+*** 988,994 ****
+ && dict_find(top_item->jd_tv.vval.v_dict,
+ top_item->jd_key, -1) != NULL)
+ {
+! EMSG2(_("E938: Duplicate key in JSON: \"%s\""),
+ top_item->jd_key);
+ clear_tv(&top_item->jd_key_tv);
+ clear_tv(cur_item);
+--- 988,994 ----
+ && dict_find(top_item->jd_tv.vval.v_dict,
+ top_item->jd_key, -1) != NULL)
+ {
+! semsg(_("E938: Duplicate key in JSON: \"%s\""),
+ top_item->jd_key);
+ clear_tv(&top_item->jd_key_tv);
+ clear_tv(cur_item);
+***************
+*** 1027,1033 ****
+ retval = MAYBE;
+ else
+ {
+! EMSG(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+--- 1027,1033 ----
+ retval = MAYBE;
+ else
+ {
+! emsg(_(e_invarg));
+ retval = FAIL;
+ }
+ goto theend;
+***************
+*** 1046,1052 ****
+ res->v_type = VAR_SPECIAL;
+ res->vval.v_number = VVAL_NONE;
+ }
+! EMSG(_(e_invarg));
+
+ theend:
+ ga_clear(&stack);
+--- 1046,1052 ----
+ res->v_type = VAR_SPECIAL;
+ res->vval.v_number = VVAL_NONE;
+ }
+! emsg(_(e_invarg));
+
+ theend:
+ ga_clear(&stack);
+***************
+*** 1070,1082 ****
+ if (ret != OK)
+ {
+ if (ret == MAYBE)
+! EMSG(_(e_invarg));
+ return FAIL;
+ }
+ json_skip_white(reader);
+ if (reader->js_buf[reader->js_used] != NUL)
+ {
+! EMSG(_(e_trailing));
+ return FAIL;
+ }
+ return OK;
+--- 1070,1082 ----
+ if (ret != OK)
+ {
+ if (ret == MAYBE)
+! emsg(_(e_invarg));
+ return FAIL;
+ }
+ json_skip_white(reader);
+ if (reader->js_buf[reader->js_used] != NUL)
+ {
+! emsg(_(e_trailing));
+ return FAIL;
+ }
+ return OK;
+*** ../vim-8.1.0742/src/list.c 2018-12-21 16:04:16.316437487 +0100
+--- src/list.c 2019-01-13 19:52:56.739803042 +0100
+***************
+*** 417,423 ****
+ li = list_find(l, idx - 1);
+ if (li == NULL)
+ {
+! EMSGN(_(e_listidx), idx);
+ return NULL;
+ }
+ return tv_get_string(&li->li_tv);
+--- 417,423 ----
+ li = list_find(l, idx - 1);
+ if (li == NULL)
+ {
+! semsg(_(e_listidx), idx);
+ return NULL;
+ }
+ return tv_get_string(&li->li_tv);
+***************
+*** 914,920 ****
+ break;
+ if (**arg != ',')
+ {
+! EMSG2(_("E696: Missing comma in List: %s"), *arg);
+ goto failret;
+ }
+ *arg = skipwhite(*arg + 1);
+--- 914,920 ----
+ break;
+ if (**arg != ',')
+ {
+! semsg(_("E696: Missing comma in List: %s"), *arg);
+ goto failret;
+ }
+ *arg = skipwhite(*arg + 1);
+***************
+*** 922,928 ****
+
+ if (**arg != ']')
+ {
+! EMSG2(_("E697: Missing end of List ']': %s"), *arg);
+ failret:
+ if (evaluate)
+ list_free(l);
+--- 922,928 ----
+
+ if (**arg != ']')
+ {
+! semsg(_("E697: Missing end of List ']': %s"), *arg);
+ failret:
+ if (evaluate)
+ list_free(l);
+***************
+*** 969,975 ****
+ }
+ if (ret == FAIL)
+ {
+! EMSG(_(e_write));
+ break;
+ }
+ }
+--- 969,975 ----
+ }
+ if (ret == FAIL)
+ {
+! emsg(_(e_write));
+ break;
+ }
+ }
+*** ../vim-8.1.0742/src/main.c 2019-01-11 20:34:18.296314730 +0100
+--- src/main.c 2019-01-13 19:27:43.424613996 +0100
+***************
+*** 945,951 ****
+
+ /*
+ * Allocate space for the generic buffers (needed for set_init_1() and
+! * EMSG2()).
+ */
+ if ((IObuff = alloc(IOSIZE)) == NULL
+ || (NameBuff = alloc(MAXPATHL)) == NULL)
+--- 945,951 ----
+
+ /*
+ * Allocate space for the generic buffers (needed for set_init_1() and
+! * emsg()).
+ */
+ if ((IObuff = alloc(IOSIZE)) == NULL
+ || (NameBuff = alloc(MAXPATHL)) == NULL)
+***************
+*** 3020,3026 ****
+ else
+ {
+ if (do_source(parmp->use_vimrc, FALSE, DOSO_NONE) != OK)
+! EMSG2(_("E282: Cannot read from \"%s\""), parmp->use_vimrc);
+ }
+ }
+ else if (!silent_mode)
+--- 3020,3026 ----
+ else
+ {
+ if (do_source(parmp->use_vimrc, FALSE, DOSO_NONE) != OK)
+! semsg(_("E282: Cannot read from \"%s\""), parmp->use_vimrc);
+ }
+ }
+ else if (!silent_mode)
+*** ../vim-8.1.0742/src/mark.c 2018-12-31 23:58:20.246887218 +0100
+--- src/mark.c 2019-01-13 19:55:26.054505500 +0100
+***************
+*** 606,612 ****
+ {
+ if (pos == NULL)
+ {
+! EMSG(_(e_umark));
+ return FAIL;
+ }
+ if (pos->lnum <= 0)
+--- 606,612 ----
+ {
+ if (pos == NULL)
+ {
+! emsg(_(e_umark));
+ return FAIL;
+ }
+ if (pos->lnum <= 0)
+***************
+*** 614,625 ****
+ /* lnum is negative if mark is in another file can can't get that
+ * file, error message already give then. */
+ if (pos->lnum == 0)
+! EMSG(_(e_marknotset));
+ return FAIL;
+ }
+ if (pos->lnum > curbuf->b_ml.ml_line_count)
+ {
+! EMSG(_(e_markinval));
+ return FAIL;
+ }
+ return OK;
+--- 614,625 ----
+ /* lnum is negative if mark is in another file can can't get that
+ * file, error message already give then. */
+ if (pos->lnum == 0)
+! emsg(_(e_marknotset));
+ return FAIL;
+ }
+ if (pos->lnum > curbuf->b_ml.ml_line_count)
+ {
+! emsg(_(e_markinval));
+ return FAIL;
+ }
+ return OK;
+***************
+*** 763,769 ****
+ if (arg == NULL)
+ MSG(_("No marks set"));
+ else
+! EMSG2(_("E283: No marks matching \"%s\""), arg);
+ }
+ }
+ /* don't output anything if 'q' typed at --more-- prompt */
+--- 763,769 ----
+ if (arg == NULL)
+ MSG(_("No marks set"));
+ else
+! semsg(_("E283: No marks matching \"%s\""), arg);
+ }
+ }
+ /* don't output anything if 'q' typed at --more-- prompt */
+***************
+*** 815,823 ****
+ /* clear all marks */
+ clrallmarks(curbuf);
+ else if (eap->forceit)
+! EMSG(_(e_invarg));
+ else if (*eap->arg == NUL)
+! EMSG(_(e_argreq));
+ else
+ {
+ /* clear specified marks only */
+--- 815,823 ----
+ /* clear all marks */
+ clrallmarks(curbuf);
+ else if (eap->forceit)
+! emsg(_(e_invarg));
+ else if (*eap->arg == NUL)
+! emsg(_(e_argreq));
+ else
+ {
+ /* clear specified marks only */
+***************
+*** 837,843 ****
+ : ASCII_ISUPPER(p[2])))
+ || to < from)
+ {
+! EMSG2(_(e_invarg2), p);
+ return;
+ }
+ p += 2;
+--- 837,843 ----
+ : ASCII_ISUPPER(p[2])))
+ || to < from)
+ {
+! semsg(_(e_invarg2), p);
+ return;
+ }
+ p += 2;
+***************
+*** 875,881 ****
+ case '<': curbuf->b_visual.vi_start.lnum = 0; break;
+ case '>': curbuf->b_visual.vi_end.lnum = 0; break;
+ case ' ': break;
+! default: EMSG2(_(e_invarg2), p);
+ return;
+ }
+ }
+--- 875,881 ----
+ case '<': curbuf->b_visual.vi_start.lnum = 0; break;
+ case '>': curbuf->b_visual.vi_end.lnum = 0; break;
+ case ' ': break;
+! default: semsg(_(e_invarg2), p);
+ return;
+ }
+ }
+*** ../vim-8.1.0742/src/mbyte.c 2018-09-30 21:43:17.195693290 +0200
+--- src/mbyte.c 2019-01-13 20:12:29.878230171 +0100
+***************
+*** 199,205 ****
+ fd = mch_fopen("xim.log", "w");
+ if (fd == NULL)
+ {
+! EMSG("Cannot open xim.log");
+ fd = (FILE *)-1;
+ return;
+ }
+--- 199,205 ----
+ fd = mch_fopen("xim.log", "w");
+ if (fd == NULL)
+ {
+! emsg("Cannot open xim.log");
+ fd = (FILE *)-1;
+ return;
+ }
+***************
+*** 509,515 ****
+ * When there is something wrong: Returns an error message and doesn't change
+ * anything.
+ */
+! char_u *
+ mb_init(void)
+ {
+ int i;
+--- 509,515 ----
+ * When there is something wrong: Returns an error message and doesn't change
+ * anything.
+ */
+! char *
+ mb_init(void)
+ {
+ int i;
+***************
+*** 4749,4755 ****
+ if (verbose && p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG2(_(e_loadlib),
+ hIconvDLL == 0 ? DYNAMIC_ICONV_DLL : DYNAMIC_MSVCRT_DLL);
+ verbose_leave();
+ }
+--- 4749,4755 ----
+ if (verbose && p_verbose > 0)
+ {
+ verbose_enter();
+! semsg(_(e_loadlib),
+ hIconvDLL == 0 ? DYNAMIC_ICONV_DLL : DYNAMIC_MSVCRT_DLL);
+ verbose_leave();
+ }
+***************
+*** 4771,4777 ****
+ if (verbose && p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG2(_(e_loadfunc), "for libiconv");
+ verbose_leave();
+ }
+ return FALSE;
+--- 4771,4777 ----
+ if (verbose && p_verbose > 0)
+ {
+ verbose_enter();
+! semsg(_(e_loadfunc), "for libiconv");
+ verbose_leave();
+ }
+ return FALSE;
+***************
+*** 6028,6034 ****
+ XNLineSpace, line_space,
+ NULL);
+ if (XSetICValues(xic, XNPreeditAttributes, attr_list, NULL))
+! EMSG(_("E284: Cannot set IC values"));
+ XFree(attr_list);
+ }
+ }
+--- 6028,6034 ----
+ XNLineSpace, line_space,
+ NULL);
+ if (XSetICValues(xic, XNPreeditAttributes, attr_list, NULL))
+! emsg(_("E284: Cannot set IC values"));
+ XFree(attr_list);
+ }
+ }
+***************
+*** 6187,6193 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG(_("E286: Failed to open input method"));
+ verbose_leave();
+ }
+ return FALSE;
+--- 6187,6193 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! emsg(_("E286: Failed to open input method"));
+ verbose_leave();
+ }
+ return FALSE;
+***************
+*** 6200,6212 ****
+ destroy_cb.callback = xim_destroy_cb;
+ destroy_cb.client_data = NULL;
+ if (XSetIMValues(xim, XNDestroyCallback, &destroy_cb, NULL))
+! EMSG(_("E287: Warning: Could not set destroy callback to IM"));
+ }
+ # endif
+
+ if (XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL) || !xim_styles)
+ {
+! EMSG(_("E288: input method doesn't support any style"));
+ XCloseIM(xim);
+ return FALSE;
+ }
+--- 6200,6212 ----
+ destroy_cb.callback = xim_destroy_cb;
+ destroy_cb.client_data = NULL;
+ if (XSetIMValues(xim, XNDestroyCallback, &destroy_cb, NULL))
+! emsg(_("E287: Warning: Could not set destroy callback to IM"));
+ }
+ # endif
+
+ if (XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL) || !xim_styles)
+ {
+! emsg(_("E288: input method doesn't support any style"));
+ XCloseIM(xim);
+ return FALSE;
+ }
+***************
+*** 6265,6271 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG(_("E289: input method doesn't support my preedit type"));
+ verbose_leave();
+ }
+ XCloseIM(xim);
+--- 6265,6271 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! emsg(_("E289: input method doesn't support my preedit type"));
+ verbose_leave();
+ }
+ XCloseIM(xim);
+***************
+*** 6329,6335 ****
+ else
+ {
+ if (!is_not_a_term())
+! EMSG(_(e_xim));
+ XCloseIM(xim);
+ return FALSE;
+ }
+--- 6329,6335 ----
+ else
+ {
+ if (!is_not_a_term())
+! emsg(_(e_xim));
+ XCloseIM(xim);
+ return FALSE;
+ }
+*** ../vim-8.1.0742/src/memfile.c 2018-09-21 14:48:49.644214400 +0200
+--- src/memfile.c 2019-01-13 19:55:35.550424328 +0100
+***************
+*** 245,251 ****
+ if (mfp->mf_fd >= 0)
+ {
+ if (close(mfp->mf_fd) < 0)
+! EMSG(_(e_swapclose));
+ }
+ if (del_file && mfp->mf_fname != NULL)
+ mch_remove(mfp->mf_fname);
+--- 245,251 ----
+ if (mfp->mf_fd >= 0)
+ {
+ if (close(mfp->mf_fd) < 0)
+! emsg(_(e_swapclose));
+ }
+ if (del_file && mfp->mf_fname != NULL)
+ mch_remove(mfp->mf_fname);
+***************
+*** 291,297 ****
+ }
+
+ if (close(mfp->mf_fd) < 0) /* close the file */
+! EMSG(_(e_swapclose));
+ mfp->mf_fd = -1;
+
+ if (mfp->mf_fname != NULL)
+--- 291,297 ----
+ }
+
+ if (close(mfp->mf_fd) < 0) /* close the file */
+! emsg(_(e_swapclose));
+ mfp->mf_fd = -1;
+
+ if (mfp->mf_fname != NULL)
+***************
+*** 480,486 ****
+ flags = hp->bh_flags;
+
+ if ((flags & BH_LOCKED) == 0)
+! IEMSG(_("E293: block was not locked"));
+ flags &= ~BH_LOCKED;
+ if (dirty)
+ {
+--- 480,486 ----
+ flags = hp->bh_flags;
+
+ if ((flags & BH_LOCKED) == 0)
+! iemsg(_("E293: block was not locked"));
+ flags &= ~BH_LOCKED;
+ if (dirty)
+ {
+***************
+*** 1040,1046 ****
+ * space becomes available.
+ */
+ if (!did_swapwrite_msg)
+! EMSG(_("E297: Write error in swap file"));
+ did_swapwrite_msg = TRUE;
+ return FAIL;
+ }
+--- 1040,1046 ----
+ * space becomes available.
+ */
+ if (!did_swapwrite_msg)
+! emsg(_("E297: Write error in swap file"));
+ did_swapwrite_msg = TRUE;
+ return FAIL;
+ }
+***************
+*** 1256,1262 ****
+ if ((flags & O_CREAT) && mch_lstat((char *)mfp->mf_fname, &sb) >= 0)
+ {
+ mfp->mf_fd = -1;
+! EMSG(_("E300: Swap file already exists (symlink attack?)"));
+ }
+ else
+ #endif
+--- 1256,1262 ----
+ if ((flags & O_CREAT) && mch_lstat((char *)mfp->mf_fname, &sb) >= 0)
+ {
+ mfp->mf_fd = -1;
+! emsg(_("E300: Swap file already exists (symlink attack?)"));
+ }
+ else
+ #endif
+*** ../vim-8.1.0742/src/memline.c 2019-01-04 15:09:52.918373097 +0100
+--- src/memline.c 2019-01-13 19:55:40.714380247 +0100
+***************
+*** 8,14 ****
+ */
+
+ /* for debugging */
+! /* #define CHECK(c, s) do { if (c) EMSG(s); } while (0) */
+ #define CHECK(c, s) do { /**/ } while (0)
+
+ /*
+--- 8,14 ----
+ */
+
+ /* for debugging */
+! /* #define CHECK(c, s) do { if (c) emsg((s)); } while (0) */
+ #define CHECK(c, s) do { /**/ } while (0)
+
+ /*
+***************
+*** 328,334 ****
+ goto error;
+ if (hp->bh_bnum != 0)
+ {
+! IEMSG(_("E298: Didn't get block nr 0?"));
+ goto error;
+ }
+ b0p = (ZERO_BL *)(hp->bh_data);
+--- 328,334 ----
+ goto error;
+ if (hp->bh_bnum != 0)
+ {
+! iemsg(_("E298: Didn't get block nr 0?"));
+ goto error;
+ }
+ b0p = (ZERO_BL *)(hp->bh_data);
+***************
+*** 378,384 ****
+ goto error;
+ if (hp->bh_bnum != 1)
+ {
+! IEMSG(_("E298: Didn't get block nr 1?"));
+ goto error;
+ }
+ pp = (PTR_BL *)(hp->bh_data);
+--- 378,384 ----
+ goto error;
+ if (hp->bh_bnum != 1)
+ {
+! iemsg(_("E298: Didn't get block nr 1?"));
+ goto error;
+ }
+ pp = (PTR_BL *)(hp->bh_data);
+***************
+*** 396,402 ****
+ goto error;
+ if (hp->bh_bnum != 2)
+ {
+! IEMSG(_("E298: Didn't get block nr 2?"));
+ goto error;
+ }
+
+--- 396,402 ----
+ goto error;
+ if (hp->bh_bnum != 2)
+ {
+! iemsg(_("E298: Didn't get block nr 2?"));
+ goto error;
+ }
+
+***************
+*** 610,616 ****
+ mf_put(mfp, hp, FALSE, FALSE); /* release previous block */
+
+ if (error > 0)
+! EMSG(_("E843: Error while updating swap file crypt"));
+ }
+
+ mfp->mf_old_key = NULL;
+--- 610,616 ----
+ mf_put(mfp, hp, FALSE, FALSE); /* release previous block */
+
+ if (error > 0)
+! emsg(_("E843: Error while updating swap file crypt"));
+ }
+
+ mfp->mf_old_key = NULL;
+***************
+*** 708,714 ****
+ if (mfp->mf_fd < 0)
+ {
+ /* could not (re)open the swap file, what can we do???? */
+! EMSG(_("E301: Oops, lost the swap file!!!"));
+ return;
+ }
+ #ifdef HAVE_FD_CLOEXEC
+--- 708,714 ----
+ if (mfp->mf_fd < 0)
+ {
+ /* could not (re)open the swap file, what can we do???? */
+! emsg(_("E301: Oops, lost the swap file!!!"));
+ return;
+ }
+ #ifdef HAVE_FD_CLOEXEC
+***************
+*** 720,726 ****
+ #endif
+ }
+ if (!success)
+! EMSG(_("E302: Could not rename swap file"));
+ }
+
+ /*
+--- 720,726 ----
+ #endif
+ }
+ if (!success)
+! emsg(_("E302: Could not rename swap file"));
+ }
+
+ /*
+***************
+*** 811,817 ****
+ {
+ need_wait_return = TRUE; /* call wait_return later */
+ ++no_wait_return;
+! (void)EMSG2(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname);
+ --no_wait_return;
+ }
+--- 811,817 ----
+ {
+ need_wait_return = TRUE; /* call wait_return later */
+ ++no_wait_return;
+! (void)semsg(_("E303: Unable to open swap file for \"%s\", recovery impossible"),
+ buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname);
+ --no_wait_return;
+ }
+***************
+*** 946,952 ****
+
+ b0p = (ZERO_BL *)(hp->bh_data);
+ if (ml_check_b0_id(b0p) == FAIL)
+! IEMSG(_("E304: ml_upd_block0(): Didn't get block 0??"));
+ else
+ {
+ if (what == UB_FNAME)
+--- 946,952 ----
+
+ b0p = (ZERO_BL *)(hp->bh_data);
+ if (ml_check_b0_id(b0p) == FAIL)
+! iemsg(_("E304: ml_upd_block0(): Didn't get block 0??"));
+ else
+ {
+ if (what == UB_FNAME)
+***************
+*** 1164,1170 ****
+ len = recover_names(fname, FALSE, 0, NULL);
+ if (len == 0) /* no swap files found */
+ {
+! EMSG2(_("E305: No swap file found for %s"), fname);
+ goto theend;
+ }
+ if (len == 1) /* one swap file found, use it */
+--- 1164,1170 ----
+ len = recover_names(fname, FALSE, 0, NULL);
+ if (len == 0) /* no swap files found */
+ {
+! semsg(_("E305: No swap file found for %s"), fname);
+ goto theend;
+ }
+ if (len == 1) /* one swap file found, use it */
+***************
+*** 1221,1227 ****
+ if (mfp == NULL || mfp->mf_fd < 0)
+ {
+ if (fname_used != NULL)
+! EMSG2(_("E306: Cannot open %s"), fname_used);
+ goto theend;
+ }
+ buf->b_ml.ml_mfp = mfp;
+--- 1221,1227 ----
+ if (mfp == NULL || mfp->mf_fd < 0)
+ {
+ if (fname_used != NULL)
+! semsg(_("E306: Cannot open %s"), fname_used);
+ goto theend;
+ }
+ buf->b_ml.ml_mfp = mfp;
+***************
+*** 1263,1269 ****
+ }
+ if (ml_check_b0_id(b0p) == FAIL)
+ {
+! EMSG2(_("E307: %s does not look like a Vim swap file"), mfp->mf_fname);
+ goto theend;
+ }
+ if (b0_magic_wrong(b0p))
+--- 1263,1269 ----
+ }
+ if (ml_check_b0_id(b0p) == FAIL)
+ {
+! semsg(_("E307: %s does not look like a Vim swap file"), mfp->mf_fname);
+ goto theend;
+ }
+ if (b0_magic_wrong(b0p))
+***************
+*** 1297,1303 ****
+ #else
+ if (b0p->b0_id[1] != BLOCK0_ID1)
+ {
+! EMSG2(_("E833: %s is encrypted and this version of Vim does not support encryption"), mfp->mf_fname);
+ goto theend;
+ }
+ #endif
+--- 1297,1303 ----
+ #else
+ if (b0p->b0_id[1] != BLOCK0_ID1)
+ {
+! semsg(_("E833: %s is encrypted and this version of Vim does not support encryption"), mfp->mf_fname);
+ goto theend;
+ }
+ #endif
+***************
+*** 1347,1359 ****
+ }
+
+ home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Using swap file \"%s\""), NameBuff);
+
+ if (buf_spname(curbuf) != NULL)
+ vim_strncpy(NameBuff, buf_spname(curbuf), MAXPATHL - 1);
+ else
+ home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Original file \"%s\""), NameBuff);
+ msg_putchar('\n');
+
+ /*
+--- 1347,1359 ----
+ }
+
+ home_replace(NULL, mfp->mf_fname, NameBuff, MAXPATHL, TRUE);
+! smsg(_("Using swap file \"%s\""), NameBuff);
+
+ if (buf_spname(curbuf) != NULL)
+ vim_strncpy(NameBuff, buf_spname(curbuf), MAXPATHL - 1);
+ else
+ home_replace(NULL, curbuf->b_ffname, NameBuff, MAXPATHL, TRUE);
+! smsg(_("Original file \"%s\""), NameBuff);
+ msg_putchar('\n');
+
+ /*
+***************
+*** 1366,1372 ****
+ && org_stat.st_mtime > swp_stat.st_mtime)
+ || org_stat.st_mtime != mtime))
+ {
+! EMSG(_("E308: Warning: Original file may have been changed"));
+ }
+ out_flush();
+
+--- 1366,1372 ----
+ && org_stat.st_mtime > swp_stat.st_mtime)
+ || org_stat.st_mtime != mtime))
+ {
+! emsg(_("E308: Warning: Original file may have been changed"));
+ }
+ out_flush();
+
+***************
+*** 1412,1425 ****
+ * without a key, will probably get garbage text. */
+ if (*curbuf->b_p_key != NUL)
+ {
+! smsg((char_u *)_("Swap file is encrypted: \"%s\""), fname_used);
+ MSG_PUTS(_("\nIf you entered a new crypt key but did not write the text file,"));
+ MSG_PUTS(_("\nenter the new crypt key."));
+ MSG_PUTS(_("\nIf you wrote the text file after changing the crypt key press enter"));
+ MSG_PUTS(_("\nto use the same key for text file and swap file"));
+ }
+ else
+! smsg((char_u *)_(need_key_msg), fname_used);
+ buf->b_p_key = crypt_get_key(FALSE, FALSE);
+ if (buf->b_p_key == NULL)
+ buf->b_p_key = curbuf->b_p_key;
+--- 1412,1425 ----
+ * without a key, will probably get garbage text. */
+ if (*curbuf->b_p_key != NUL)
+ {
+! smsg(_("Swap file is encrypted: \"%s\""), fname_used);
+ MSG_PUTS(_("\nIf you entered a new crypt key but did not write the text file,"));
+ MSG_PUTS(_("\nenter the new crypt key."));
+ MSG_PUTS(_("\nIf you wrote the text file after changing the crypt key press enter"));
+ MSG_PUTS(_("\nto use the same key for text file and swap file"));
+ }
+ else
+! smsg(_(need_key_msg), fname_used);
+ buf->b_p_key = crypt_get_key(FALSE, FALSE);
+ if (buf->b_p_key == NULL)
+ buf->b_p_key = curbuf->b_p_key;
+***************
+*** 1471,1477 ****
+ {
+ if (bnum == 1)
+ {
+! EMSG2(_("E309: Unable to read block 1 from %s"), mfp->mf_fname);
+ goto theend;
+ }
+ ++error;
+--- 1471,1477 ----
+ {
+ if (bnum == 1)
+ {
+! semsg(_("E309: Unable to read block 1 from %s"), mfp->mf_fname);
+ goto theend;
+ }
+ ++error;
+***************
+*** 1557,1563 ****
+ {
+ if (bnum == 1)
+ {
+! EMSG2(_("E310: Block 1 ID wrong (%s not a .swp file?)"),
+ mfp->mf_fname);
+ goto theend;
+ }
+--- 1557,1563 ----
+ {
+ if (bnum == 1)
+ {
+! semsg(_("E310: Block 1 ID wrong (%s not a .swp file?)"),
+ mfp->mf_fname);
+ goto theend;
+ }
+***************
+*** 1677,1688 ****
+
+ recoverymode = FALSE;
+ if (got_int)
+! EMSG(_("E311: Recovery Interrupted"));
+ else if (error)
+ {
+ ++no_wait_return;
+ MSG(">>>>>>>>>>>>>");
+! EMSG(_("E312: Errors detected while recovering; look for lines starting with ???"));
+ --no_wait_return;
+ MSG(_("See \":help E312\" for more information."));
+ MSG(">>>>>>>>>>>>>");
+--- 1677,1688 ----
+
+ recoverymode = FALSE;
+ if (got_int)
+! emsg(_("E311: Recovery Interrupted"));
+ else if (error)
+ {
+ ++no_wait_return;
+ MSG(">>>>>>>>>>>>>");
+! emsg(_("E312: Errors detected while recovering; look for lines starting with ???"));
+ --no_wait_return;
+ MSG(_("See \":help E312\" for more information."));
+ MSG(">>>>>>>>>>>>>");
+***************
+*** 2361,2367 ****
+ if (mfp == NULL || mfp->mf_fname == NULL)
+ {
+ if (message)
+! EMSG(_("E313: Cannot preserve, there is no swap file"));
+ return;
+ }
+
+--- 2361,2367 ----
+ if (mfp == NULL || mfp->mf_fname == NULL)
+ {
+ if (message)
+! emsg(_("E313: Cannot preserve, there is no swap file"));
+ return;
+ }
+
+***************
+*** 2416,2422 ****
+ if (status == OK)
+ MSG(_("File preserved"));
+ else
+! EMSG(_("E314: Preserve failed"));
+ }
+ }
+
+--- 2416,2422 ----
+ if (status == OK)
+ MSG(_("File preserved"));
+ else
+! emsg(_("E314: Preserve failed"));
+ }
+ }
+
+***************
+*** 2490,2496 ****
+ /* Avoid giving this message for a recursive call, may happen when
+ * the GUI redraws part of the text. */
+ ++recursive;
+! IEMSGN(_("E315: ml_get: invalid lnum: %ld"), lnum);
+ --recursive;
+ }
+ errorret:
+--- 2490,2496 ----
+ /* Avoid giving this message for a recursive call, may happen when
+ * the GUI redraws part of the text. */
+ ++recursive;
+! siemsg(_("E315: ml_get: invalid lnum: %ld"), lnum);
+ --recursive;
+ }
+ errorret:
+***************
+*** 2529,2535 ****
+ /* Avoid giving this message for a recursive call, may happen
+ * when the GUI redraws part of the text. */
+ ++recursive;
+! IEMSGN(_("E316: ml_get: cannot find line %ld"), lnum);
+ --recursive;
+ }
+ goto errorret;
+--- 2529,2535 ----
+ /* Avoid giving this message for a recursive call, may happen
+ * when the GUI redraws part of the text. */
+ ++recursive;
+! siemsg(_("E316: ml_get: cannot find line %ld"), lnum);
+ --recursive;
+ }
+ goto errorret;
+***************
+*** 3026,3032 ****
+ pp = (PTR_BL *)(hp->bh_data); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! IEMSG(_("E317: pointer block id wrong 3"));
+ mf_put(mfp, hp, FALSE, FALSE);
+ goto theend;
+ }
+--- 3026,3032 ----
+ pp = (PTR_BL *)(hp->bh_data); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! iemsg(_("E317: pointer block id wrong 3"));
+ mf_put(mfp, hp, FALSE, FALSE);
+ goto theend;
+ }
+***************
+*** 3168,3174 ****
+ */
+ if (stack_idx < 0)
+ {
+! IEMSG(_("E318: Updated too many blocks?"));
+ buf->b_ml.ml_stack_top = 0; /* invalidate stack */
+ }
+ }
+--- 3168,3174 ----
+ */
+ if (stack_idx < 0)
+ {
+! iemsg(_("E318: Updated too many blocks?"));
+ buf->b_ml.ml_stack_top = 0; /* invalidate stack */
+ }
+ }
+***************
+*** 3544,3550 ****
+ pp = (PTR_BL *)(hp->bh_data); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! IEMSG(_("E317: pointer block id wrong 4"));
+ mf_put(mfp, hp, FALSE, FALSE);
+ goto theend;
+ }
+--- 3544,3550 ----
+ pp = (PTR_BL *)(hp->bh_data); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! iemsg(_("E317: pointer block id wrong 4"));
+ mf_put(mfp, hp, FALSE, FALSE);
+ goto theend;
+ }
+***************
+*** 3770,3776 ****
+
+ hp = ml_find_line(buf, lnum, ML_FIND);
+ if (hp == NULL)
+! IEMSGN(_("E320: Cannot find line %ld"), lnum);
+ else
+ {
+ dp = (DATA_BL *)(hp->bh_data);
+--- 3770,3776 ----
+
+ hp = ml_find_line(buf, lnum, ML_FIND);
+ if (hp == NULL)
+! siemsg(_("E320: Cannot find line %ld"), lnum);
+ else
+ {
+ dp = (DATA_BL *)(hp->bh_data);
+***************
+*** 4012,4018 ****
+ pp = (PTR_BL *)(dp); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! IEMSG(_("E317: pointer block id wrong"));
+ goto error_block;
+ }
+
+--- 4012,4018 ----
+ pp = (PTR_BL *)(dp); /* must be pointer block */
+ if (pp->pb_id != PTR_ID)
+ {
+! iemsg(_("E317: pointer block id wrong"));
+ goto error_block;
+ }
+
+***************
+*** 4057,4067 ****
+ if (idx >= (int)pp->pb_count) /* past the end: something wrong! */
+ {
+ if (lnum > buf->b_ml.ml_line_count)
+! IEMSGN(_("E322: line number out of range: %ld past the end"),
+ lnum - buf->b_ml.ml_line_count);
+
+ else
+! IEMSGN(_("E323: line count wrong in block %ld"), bnum);
+ goto error_block;
+ }
+ if (action == ML_DELETE)
+--- 4057,4067 ----
+ if (idx >= (int)pp->pb_count) /* past the end: something wrong! */
+ {
+ if (lnum > buf->b_ml.ml_line_count)
+! siemsg(_("E322: line number out of range: %ld past the end"),
+ lnum - buf->b_ml.ml_line_count);
+
+ else
+! siemsg(_("E323: line count wrong in block %ld"), bnum);
+ goto error_block;
+ }
+ if (action == ML_DELETE)
+***************
+*** 4155,4161 ****
+ if (pp->pb_id != PTR_ID)
+ {
+ mf_put(mfp, hp, FALSE, FALSE);
+! IEMSG(_("E317: pointer block id wrong 2"));
+ break;
+ }
+ pp->pb_pointer[ip->ip_index].pe_line_count += count;
+--- 4155,4161 ----
+ if (pp->pb_id != PTR_ID)
+ {
+ mf_put(mfp, hp, FALSE, FALSE);
+! iemsg(_("E317: pointer block id wrong 2"));
+ break;
+ }
+ pp->pb_pointer[ip->ip_index].pe_line_count += count;
+***************
+*** 4190,4196 ****
+ /* Limit symlink depth to 100, catch recursive loops. */
+ if (++depth == 100)
+ {
+! EMSG2(_("E773: Symlink loop for \"%s\""), fname);
+ return FAIL;
+ }
+
+--- 4190,4196 ----
+ /* Limit symlink depth to 100, catch recursive loops. */
+ if (++depth == 100)
+ {
+! semsg(_("E773: Symlink loop for \"%s\""), fname);
+ return FAIL;
+ }
+
+***************
+*** 4372,4378 ****
+ char *p;
+
+ ++no_wait_return;
+! (void)EMSG(_("E325: ATTENTION"));
+ MSG_PUTS(_("\nFound a swap file by the name \""));
+ msg_home_replace(fname);
+ MSG_PUTS("\"\n");
+--- 4372,4378 ----
+ char *p;
+
+ ++no_wait_return;
+! (void)emsg(_("E325: ATTENTION"));
+ MSG_PUTS(_("\nFound a swap file by the name \""));
+ msg_home_replace(fname);
+ MSG_PUTS("\"\n");
+***************
+*** 4915,4921 ****
+ {
+ if (fname[n - 2] == 'a') /* ".saa": tried enough, give up */
+ {
+! EMSG(_("E326: Too many swap files found"));
+ VIM_CLEAR(fname);
+ break;
+ }
+--- 4915,4921 ----
+ {
+ if (fname[n - 2] == 'a') /* ".saa": tried enough, give up */
+ {
+! emsg(_("E326: Too many swap files found"));
+ VIM_CLEAR(fname);
+ break;
+ }
+*** ../vim-8.1.0742/src/menu.c 2019-01-06 13:10:46.328499104 +0100
+--- src/menu.c 2019-01-13 19:55:44.242350157 +0100
+***************
+*** 274,280 ****
+ menu_path = arg;
+ if (*menu_path == '.')
+ {
+! EMSG2(_(e_invarg2), menu_path);
+ goto theend;
+ }
+
+--- 274,280 ----
+ menu_path = arg;
+ if (*menu_path == '.')
+ {
+! semsg(_(e_invarg2), menu_path);
+ goto theend;
+ }
+
+***************
+*** 290,296 ****
+ }
+ else if (*map_to != NUL && (unmenu || enable != MAYBE))
+ {
+! EMSG(_(e_trailing));
+ goto theend;
+ }
+ #if defined(FEAT_GUI) && !(defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON))
+--- 290,296 ----
+ }
+ else if (*map_to != NUL && (unmenu || enable != MAYBE))
+ {
+! emsg(_(e_trailing));
+ goto theend;
+ }
+ #if defined(FEAT_GUI) && !(defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON))
+***************
+*** 515,521 ****
+ if (*dname == NUL)
+ {
+ /* Only a mnemonic or accelerator is not valid. */
+! EMSG(_("E792: Empty menu name"));
+ goto erret;
+ }
+
+--- 515,521 ----
+ if (*dname == NUL)
+ {
+ /* Only a mnemonic or accelerator is not valid. */
+! emsg(_("E792: Empty menu name"));
+ goto erret;
+ }
+
+***************
+*** 533,539 ****
+ if (*next_name == NUL && menu->children != NULL)
+ {
+ if (!sys_menu)
+! EMSG(_("E330: Menu path must not lead to a sub-menu"));
+ goto erret;
+ }
+ if (*next_name != NUL && menu->children == NULL
+--- 533,539 ----
+ if (*next_name == NUL && menu->children != NULL)
+ {
+ if (!sys_menu)
+! emsg(_("E330: Menu path must not lead to a sub-menu"));
+ goto erret;
+ }
+ if (*next_name != NUL && menu->children == NULL
+***************
+*** 543,549 ****
+ )
+ {
+ if (!sys_menu)
+! EMSG(_(e_notsubmenu));
+ goto erret;
+ }
+ break;
+--- 543,549 ----
+ )
+ {
+ if (!sys_menu)
+! emsg(_(e_notsubmenu));
+ goto erret;
+ }
+ break;
+***************
+*** 572,584 ****
+ {
+ if (*next_name == NUL && parent == NULL)
+ {
+! EMSG(_("E331: Must not add menu items directly to menu bar"));
+ goto erret;
+ }
+
+ if (menu_is_separator(dname) && *next_name != NUL)
+ {
+! EMSG(_("E332: Separator cannot be part of a menu path"));
+ goto erret;
+ }
+
+--- 572,584 ----
+ {
+ if (*next_name == NUL && parent == NULL)
+ {
+! emsg(_("E331: Must not add menu items directly to menu bar"));
+ goto erret;
+ }
+
+ if (menu_is_separator(dname) && *next_name != NUL)
+ {
+! emsg(_("E332: Separator cannot be part of a menu path"));
+ goto erret;
+ }
+
+***************
+*** 867,873 ****
+ {
+ if (menu->children == NULL)
+ {
+! EMSG(_(e_notsubmenu));
+ return FAIL;
+ }
+ if (menu_nable_recurse(menu->children, p, modes, enable)
+--- 867,873 ----
+ {
+ if (menu->children == NULL)
+ {
+! emsg(_(e_notsubmenu));
+ return FAIL;
+ }
+ if (menu_nable_recurse(menu->children, p, modes, enable)
+***************
+*** 892,898 ****
+ }
+ if (*name != NUL && *name != '*' && menu == NULL)
+ {
+! EMSG2(_(e_nomenu), name);
+ return FAIL;
+ }
+
+--- 892,898 ----
+ }
+ if (*name != NUL && *name != '*' && menu == NULL)
+ {
+! semsg(_(e_nomenu), name);
+ return FAIL;
+ }
+
+***************
+*** 933,939 ****
+ if (*p != NUL && menu->children == NULL)
+ {
+ if (!silent)
+! EMSG(_(e_notsubmenu));
+ return FAIL;
+ }
+ if ((menu->modes & modes) != 0x0)
+--- 933,939 ----
+ if (*p != NUL && menu->children == NULL)
+ {
+ if (!silent)
+! emsg(_(e_notsubmenu));
+ return FAIL;
+ }
+ if ((menu->modes & modes) != 0x0)
+***************
+*** 955,961 ****
+ else if (*name != NUL)
+ {
+ if (!silent)
+! EMSG(_(e_menuothermode));
+ return FAIL;
+ }
+
+--- 955,961 ----
+ else if (*name != NUL)
+ {
+ if (!silent)
+! emsg(_(e_menuothermode));
+ return FAIL;
+ }
+
+***************
+*** 985,991 ****
+ if (menu == NULL)
+ {
+ if (!silent)
+! EMSG2(_(e_nomenu), name);
+ return FAIL;
+ }
+
+--- 985,991 ----
+ if (menu == NULL)
+ {
+ if (!silent)
+! semsg(_(e_nomenu), name);
+ return FAIL;
+ }
+
+***************
+*** 1123,1135 ****
+ /* Found menu */
+ if (*p != NUL && menu->children == NULL)
+ {
+! EMSG(_(e_notsubmenu));
+ vim_free(path_name);
+ return FAIL;
+ }
+ else if ((menu->modes & modes) == 0x0)
+ {
+! EMSG(_(e_menuothermode));
+ vim_free(path_name);
+ return FAIL;
+ }
+--- 1123,1135 ----
+ /* Found menu */
+ if (*p != NUL && menu->children == NULL)
+ {
+! emsg(_(e_notsubmenu));
+ vim_free(path_name);
+ return FAIL;
+ }
+ else if ((menu->modes & modes) == 0x0)
+ {
+! emsg(_(e_menuothermode));
+ vim_free(path_name);
+ return FAIL;
+ }
+***************
+*** 1139,1145 ****
+ }
+ if (menu == NULL)
+ {
+! EMSG2(_(e_nomenu), name);
+ vim_free(path_name);
+ return FAIL;
+ }
+--- 1139,1145 ----
+ }
+ if (menu == NULL)
+ {
+! semsg(_(e_nomenu), name);
+ vim_free(path_name);
+ return FAIL;
+ }
+***************
+*** 2400,2406 ****
+ default:
+ mode = (char_u *)"Normal";
+ }
+! EMSG2(_("E335: Menu not defined for %s mode"), mode);
+ }
+ }
+
+--- 2400,2406 ----
+ default:
+ mode = (char_u *)"Normal";
+ }
+! semsg(_("E335: Menu not defined for %s mode"), mode);
+ }
+ }
+
+***************
+*** 2430,2436 ****
+ case 't': mode_idx = MENU_INDEX_TERMINAL; break;
+ case 'i': mode_idx = MENU_INDEX_INSERT; break;
+ case 'c': mode_idx = MENU_INDEX_CMDLINE; break;
+! default: EMSG2(_(e_invarg2), arg);
+ return;
+ }
+ arg = skipwhite(arg + 2);
+--- 2430,2436 ----
+ case 't': mode_idx = MENU_INDEX_TERMINAL; break;
+ case 'i': mode_idx = MENU_INDEX_INSERT; break;
+ case 'c': mode_idx = MENU_INDEX_CMDLINE; break;
+! default: semsg(_(e_invarg2), arg);
+ return;
+ }
+ arg = skipwhite(arg + 2);
+***************
+*** 2453,2465 ****
+ {
+ if (*p == NUL && menu->children != NULL)
+ {
+! EMSG(_("E333: Menu path must lead to a menu item"));
+ gave_emsg = TRUE;
+ menu = NULL;
+ }
+ else if (*p != NUL && menu->children == NULL)
+ {
+! EMSG(_(e_notsubmenu));
+ menu = NULL;
+ }
+ break;
+--- 2453,2465 ----
+ {
+ if (*p == NUL && menu->children != NULL)
+ {
+! emsg(_("E333: Menu path must lead to a menu item"));
+ gave_emsg = TRUE;
+ menu = NULL;
+ }
+ else if (*p != NUL && menu->children == NULL)
+ {
+! emsg(_(e_notsubmenu));
+ menu = NULL;
+ }
+ break;
+***************
+*** 2475,2481 ****
+ if (menu == NULL)
+ {
+ if (!gave_emsg)
+! EMSG2(_("E334: Menu not found: %s"), arg);
+ return;
+ }
+
+--- 2475,2481 ----
+ if (menu == NULL)
+ {
+ if (!gave_emsg)
+! semsg(_("E334: Menu not found: %s"), arg);
+ return;
+ }
+
+***************
+*** 2567,2575 ****
+ {
+ /* found a menu item instead of a sub-menu */
+ if (*p == NUL)
+! EMSG(_("E336: Menu path must lead to a sub-menu"));
+ else
+! EMSG(_(e_notsubmenu));
+ menu = NULL;
+ goto theend;
+ }
+--- 2567,2575 ----
+ {
+ /* found a menu item instead of a sub-menu */
+ if (*p == NUL)
+! emsg(_("E336: Menu path must lead to a sub-menu"));
+ else
+! emsg(_(e_notsubmenu));
+ menu = NULL;
+ goto theend;
+ }
+***************
+*** 2588,2594 ****
+ }
+
+ if (menu == NULL)
+! EMSG(_("E337: Menu not found - check menu names"));
+ theend:
+ vim_free(saved_name);
+ return menu;
+--- 2588,2594 ----
+ }
+
+ if (menu == NULL)
+! emsg(_("E337: Menu not found - check menu names"));
+ theend:
+ vim_free(saved_name);
+ return menu;
+***************
+*** 2654,2660 ****
+ *arg = NUL;
+ arg = menu_skip_part(to);
+ if (arg == to)
+! EMSG(_(e_invarg));
+ else
+ {
+ if (ga_grow(&menutrans_ga, 1) == OK)
+--- 2654,2660 ----
+ *arg = NUL;
+ arg = menu_skip_part(to);
+ if (arg == to)
+! emsg(_(e_invarg));
+ else
+ {
+ if (ga_grow(&menutrans_ga, 1) == OK)
+*** ../vim-8.1.0742/src/message.c 2018-12-22 13:27:59.119503967 +0100
+--- src/message.c 2019-01-13 23:00:36.661000639 +0100
+***************
+*** 358,380 ****
+
+ /*
+ * Automatic prototype generation does not understand this function.
+! * Note: Caller of smgs() and smsg_attr() must check the resulting string is
+ * shorter than IOSIZE!!!
+ */
+ #ifndef PROTO
+
+! int vim_snprintf(char *str, size_t str_m, char *fmt, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg(char_u *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, (char *)s, arglist);
+ va_end(arglist);
+ return msg(IObuff);
+ }
+--- 358,380 ----
+
+ /*
+ * Automatic prototype generation does not understand this function.
+! * Note: Caller of smsg() and smsg_attr() must check the resulting string is
+ * shorter than IOSIZE!!!
+ */
+ #ifndef PROTO
+
+! int vim_snprintf(char *str, size_t str_m, const char *fmt, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg(const char *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, s, arglist);
+ va_end(arglist);
+ return msg(IObuff);
+ }
+***************
+*** 383,394 ****
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr(int attr, char_u *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, (char *)s, arglist);
+ va_end(arglist);
+ return msg_attr(IObuff, attr);
+ }
+--- 383,394 ----
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr(int attr, const char *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, s, arglist);
+ va_end(arglist);
+ return msg_attr(IObuff, attr);
+ }
+***************
+*** 397,408 ****
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr_keep(int attr, char_u *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, (char *)s, arglist);
+ va_end(arglist);
+ return msg_attr_keep(IObuff, attr, TRUE);
+ }
+--- 397,408 ----
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr_keep(int attr, const char *s, ...)
+ {
+ va_list arglist;
+
+ va_start(arglist, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, s, arglist);
+ va_end(arglist);
+ return msg_attr_keep(IObuff, attr, TRUE);
+ }
+***************
+*** 582,602 ****
+ {
+ perror(msg);
+ ++emsg_silent;
+! emsg((char_u *)msg);
+ --emsg_silent;
+ }
+ #endif
+
+ /*
+! * emsg() - display an error message
+ *
+ * Rings the bell, if appropriate, and calls message() to do the real work
+ * When terminal not initialized (yet) mch_errmsg(..) is used.
+ *
+! * return TRUE if wait_return not called
+ */
+! int
+! emsg(char_u *s)
+ {
+ int attr;
+ char_u *p;
+--- 582,603 ----
+ {
+ perror(msg);
+ ++emsg_silent;
+! emsg(msg);
+ --emsg_silent;
+ }
+ #endif
+
+ /*
+! * emsg_core() - display an error message
+ *
+ * Rings the bell, if appropriate, and calls message() to do the real work
+ * When terminal not initialized (yet) mch_errmsg(..) is used.
+ *
+! * Return TRUE if wait_return not called.
+! * Note: caller must check 'emsg_not_now()' before calling this.
+ */
+! static int
+! emsg_core(char_u *s)
+ {
+ int attr;
+ char_u *p;
+***************
+*** 606,615 ****
+ int severe;
+ #endif
+
+- /* Skip this if not giving error messages at the moment. */
+- if (emsg_not_now())
+- return TRUE;
+-
+ #ifdef FEAT_EVAL
+ /* When testing some errors are turned into a normal message. */
+ if (ignore_error(s))
+--- 607,612 ----
+***************
+*** 727,766 ****
+ return r;
+ }
+
+-
+ /*
+! * Print an error message with one "%s" and one string argument.
+ */
+ int
+! emsg2(char_u *s, char_u *a1)
+ {
+! return emsg3(s, a1, NULL);
+ }
+
+ /*
+! * Print an error message with one or two "%s" and one or two string arguments.
+! * This is not in message.c to avoid a warning for prototypes.
+ */
+ int
+! emsg3(char_u *s, char_u *a1, char_u *a2)
+ {
+! if (emsg_not_now())
+! return TRUE; /* no error messages at the moment */
+! vim_snprintf((char *)IObuff, IOSIZE, (char *)s, a1, a2);
+! return emsg(IObuff);
+! }
+
+! /*
+! * Print an error message with one "%ld" and one long int argument.
+! * This is not in message.c to avoid a warning for prototypes.
+! */
+! int
+! emsgn(char_u *s, long n)
+! {
+! if (emsg_not_now())
+! return TRUE; /* no error messages at the moment */
+! vim_snprintf((char *)IObuff, IOSIZE, (char *)s, n);
+! return emsg(IObuff);
+ }
+
+ /*
+--- 724,759 ----
+ return r;
+ }
+
+ /*
+! * Print an error message.
+ */
+ int
+! emsg(char *s)
+ {
+! /* Skip this if not giving error messages at the moment. */
+! if (!emsg_not_now())
+! return emsg_core((char_u *)s);
+! return TRUE; /* no error messages at the moment */
+ }
+
+ /*
+! * Print an error message with format string and variable arguments.
+! * Note: caller must not pass 'IObuff' as 1st argument.
+ */
+ int
+! semsg(const char *s, ...)
+ {
+! /* Skip this if not giving error messages at the moment. */
+! if (!emsg_not_now())
+! {
+! va_list ap;
+
+! va_start(ap, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, s, ap);
+! va_end(ap);
+! return emsg_core(IObuff);
+! }
+! return TRUE; /* no error messages at the moment */
+ }
+
+ /*
+***************
+*** 769,806 ****
+ * detected when fuzzing vim.
+ */
+ void
+! iemsg(char_u *s)
+ {
+! emsg(s);
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ #endif
+ }
+
+-
+ /*
+! * Same as emsg2(...) but abort on error when ABORT_ON_INTERNAL_ERROR is
+ * defined. It is used for internal errors only, so that they can be
+ * detected when fuzzing vim.
+ */
+ void
+! iemsg2(char_u *s, char_u *a1)
+ {
+! emsg2(s, a1);
+! #ifdef ABORT_ON_INTERNAL_ERROR
+! abort();
+! #endif
+! }
+
+! /*
+! * Same as emsgn(...) but abort on error when ABORT_ON_INTERNAL_ERROR is
+! * defined. It is used for internal errors only, so that they can be
+! * detected when fuzzing vim.
+! */
+! void
+! iemsgn(char_u *s, long n)
+! {
+! emsgn(s, n);
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ #endif
+--- 762,794 ----
+ * detected when fuzzing vim.
+ */
+ void
+! iemsg(char *s)
+ {
+! if (!emsg_not_now())
+! emsg_core((char_u *)s);
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ #endif
+ }
+
+ /*
+! * Same as semsg(...) but abort on error when ABORT_ON_INTERNAL_ERROR is
+ * defined. It is used for internal errors only, so that they can be
+ * detected when fuzzing vim.
++ * Note: caller must not pass 'IObuff' as 1st argument.
+ */
+ void
+! siemsg(const char *s, ...)
+ {
+! if (!emsg_not_now())
+! {
+! va_list ap;
+
+! va_start(ap, s);
+! vim_vsnprintf((char *)IObuff, IOSIZE, s, ap);
+! va_end(ap);
+! emsg_core(IObuff);
+! }
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ #endif
+***************
+*** 812,818 ****
+ void
+ internal_error(char *where)
+ {
+! IEMSG2(_(e_intern2), where);
+ }
+
+ /* emsg3() and emsgn() are in misc2.c to avoid warnings for the prototypes. */
+--- 800,806 ----
+ void
+ internal_error(char *where)
+ {
+! siemsg(_(e_intern2), where);
+ }
+
+ /* emsg3() and emsgn() are in misc2.c to avoid warnings for the prototypes. */
+***************
+*** 820,826 ****
+ void
+ emsg_invreg(int name)
+ {
+! EMSG2(_("E354: Invalid register name: '%s'"), transchar(name));
+ }
+
+ /*
+--- 808,814 ----
+ void
+ emsg_invreg(int name)
+ {
+! semsg(_("E354: Invalid register name: '%s'"), transchar(name));
+ }
+
+ /*
+***************
+*** 969,975 ****
+
+ if (*eap->arg != NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 957,963 ----
+
+ if (*eap->arg != NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 3473,3479 ****
+ verbose_fd = mch_fopen((char *)p_vfile, "a");
+ if (verbose_fd == NULL)
+ {
+! EMSG2(_(e_notopen), p_vfile);
+ return FAIL;
+ }
+ }
+--- 3461,3467 ----
+ verbose_fd = mch_fopen((char *)p_vfile, "a");
+ if (verbose_fd == NULL)
+ {
+! semsg(_(e_notopen), p_vfile);
+ return FAIL;
+ }
+ }
+***************
+*** 4092,4098 ****
+ # endif
+ {
+ /* TODO: non-GUI file selector here */
+! EMSG(_("E338: Sorry, no file browser in console mode"));
+ fname = NULL;
+ }
+
+--- 4080,4086 ----
+ # endif
+ {
+ /* TODO: non-GUI file selector here */
+! emsg(_("E338: Sorry, no file browser in console mode"));
+ fname = NULL;
+ }
+
+***************
+*** 4136,4142 ****
+ int err = FALSE;
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! EMSG(_(e_printf));
+ else
+ {
+ ++*idxp;
+--- 4124,4130 ----
+ int err = FALSE;
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! emsg(_(e_printf));
+ else
+ {
+ ++*idxp;
+***************
+*** 4163,4169 ****
+ static char_u numbuf[NUMBUFLEN];
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! EMSG(_(e_printf));
+ else
+ {
+ ++*idxp;
+--- 4151,4157 ----
+ static char_u numbuf[NUMBUFLEN];
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! emsg(_(e_printf));
+ else
+ {
+ ++*idxp;
+***************
+*** 4186,4192 ****
+ double f = 0;
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! EMSG(_(e_printf));
+ else
+ {
+ ++*idxp;
+--- 4174,4180 ----
+ double f = 0;
+
+ if (tvs[idx].v_type == VAR_UNKNOWN)
+! emsg(_(e_printf));
+ else
+ {
+ ++*idxp;
+***************
+*** 4195,4201 ****
+ else if (tvs[idx].v_type == VAR_NUMBER)
+ f = (double)tvs[idx].vval.v_number;
+ else
+! EMSG(_("E807: Expected Float argument for printf()"));
+ }
+ return f;
+ }
+--- 4183,4189 ----
+ else if (tvs[idx].v_type == VAR_NUMBER)
+ f = (double)tvs[idx].vval.v_number;
+ else
+! emsg(_("E807: Expected Float argument for printf()"));
+ }
+ return f;
+ }
+***************
+*** 4274,4280 ****
+
+ /* Like vim_vsnprintf() but append to the string. */
+ int
+! vim_snprintf_add(char *str, size_t str_m, char *fmt, ...)
+ {
+ va_list ap;
+ int str_l;
+--- 4262,4268 ----
+
+ /* Like vim_vsnprintf() but append to the string. */
+ int
+! vim_snprintf_add(char *str, size_t str_m, const char *fmt, ...)
+ {
+ va_list ap;
+ int str_l;
+***************
+*** 4292,4298 ****
+ }
+
+ int
+! vim_snprintf(char *str, size_t str_m, char *fmt, ...)
+ {
+ va_list ap;
+ int str_l;
+--- 4280,4286 ----
+ }
+
+ int
+! vim_snprintf(char *str, size_t str_m, const char *fmt, ...)
+ {
+ va_list ap;
+ int str_l;
+***************
+*** 4307,4313 ****
+ vim_vsnprintf(
+ char *str,
+ size_t str_m,
+! char *fmt,
+ va_list ap)
+ {
+ return vim_vsnprintf_typval(str, str_m, fmt, ap, NULL);
+--- 4295,4301 ----
+ vim_vsnprintf(
+ char *str,
+ size_t str_m,
+! const char *fmt,
+ va_list ap)
+ {
+ return vim_vsnprintf_typval(str, str_m, fmt, ap, NULL);
+***************
+*** 4317,4328 ****
+ vim_vsnprintf_typval(
+ char *str,
+ size_t str_m,
+! char *fmt,
+ va_list ap,
+ typval_T *tvs)
+ {
+ size_t str_l = 0;
+! char *p = fmt;
+ int arg_idx = 1;
+
+ if (p == NULL)
+--- 4305,4316 ----
+ vim_vsnprintf_typval(
+ char *str,
+ size_t str_m,
+! const char *fmt,
+ va_list ap,
+ typval_T *tvs)
+ {
+ size_t str_l = 0;
+! const char *p = fmt;
+ int arg_idx = 1;
+
+ if (p == NULL)
+***************
+*** 4370,4376 ****
+ char tmp[TMP_LEN];
+
+ /* string address in case of string argument */
+! char *str_arg;
+
+ /* natural field width of arg without padding and sign */
+ size_t str_arg_l;
+--- 4358,4364 ----
+ char tmp[TMP_LEN];
+
+ /* string address in case of string argument */
+! const char *str_arg = NULL;
+
+ /* natural field width of arg without padding and sign */
+ size_t str_arg_l;
+***************
+*** 4394,4400 ****
+ char_u *tofree = NULL;
+
+
+- str_arg = NULL;
+ p++; /* skip '%' */
+
+ /* parse flags */
+--- 4382,4387 ----
+***************
+*** 5239,5245 ****
+ }
+
+ if (tvs != NULL && tvs[arg_idx - 1].v_type != VAR_UNKNOWN)
+! EMSG(_("E767: Too many arguments to printf()"));
+
+ /* Return the number of characters formatted (excluding trailing nul
+ * character), that is, the number of characters that would have been
+--- 5226,5232 ----
+ }
+
+ if (tvs != NULL && tvs[arg_idx - 1].v_type != VAR_UNKNOWN)
+! emsg(_("E767: Too many arguments to printf()"));
+
+ /* Return the number of characters formatted (excluding trailing nul
+ * character), that is, the number of characters that would have been
+*** ../vim-8.1.0742/src/misc1.c 2019-01-11 14:10:00.344749757 +0100
+--- src/misc1.c 2019-01-13 23:00:56.632861979 +0100
+***************
+*** 2658,2664 ****
+ /* If "count" is negative the caller must be doing something wrong. */
+ if (count < 1)
+ {
+! IEMSGN("E950: Invalid count for del_bytes(): %ld", count);
+ return FAIL;
+ }
+
+--- 2658,2664 ----
+ /* If "count" is negative the caller must be doing something wrong. */
+ if (count < 1)
+ {
+! siemsg("E950: Invalid count for del_bytes(): %ld", count);
+ return FAIL;
+ }
+
+***************
+*** 3521,3527 ****
+ while (r != 'y' && r != 'n')
+ {
+ /* same highlighting as for wait_return */
+! smsg_attr(HL_ATTR(HLF_R), (char_u *)"%s (y/n)?", str);
+ if (direct)
+ r = get_keystroke();
+ else
+--- 3521,3527 ----
+ while (r != 'y' && r != 'n')
+ {
+ /* same highlighting as for wait_return */
+! smsg_attr(HL_ATTR(HLF_R), "%s (y/n)?", str);
+ if (direct)
+ r = get_keystroke();
+ else
+***************
+*** 4060,4066 ****
+ if (!mch_chdir((char *)var) && mch_dirname(IObuff, IOSIZE) == OK)
+ var = IObuff;
+ if (mch_chdir((char *)NameBuff) != 0)
+! EMSG(_(e_prev_dir));
+ }
+ #endif
+ homedir = vim_strsave(var);
+--- 4060,4066 ----
+ if (!mch_chdir((char *)var) && mch_dirname(IObuff, IOSIZE) == OK)
+ var = IObuff;
+ if (mch_chdir((char *)NameBuff) != 0)
+! emsg(_(e_prev_dir));
+ }
+ #endif
+ homedir = vim_strsave(var);
+***************
+*** 9942,9948 ****
+ int ret = FAIL;
+ char_u *eval_pat = NULL;
+ char_u *exp_pat = *pat;
+! char_u *ignored_msg;
+ int usedlen;
+
+ if (*exp_pat == '%' || *exp_pat == '#' || *exp_pat == '<')
+--- 9942,9948 ----
+ int ret = FAIL;
+ char_u *eval_pat = NULL;
+ char_u *exp_pat = *pat;
+! char *ignored_msg;
+ int usedlen;
+
+ if (*exp_pat == '%' || *exp_pat == '#' || *exp_pat == '<')
+***************
+*** 11434,11440 ****
+ /* get a name for the temp file */
+ if ((tempname = vim_tempname('o', FALSE)) == NULL)
+ {
+! EMSG(_(e_notmp));
+ return NULL;
+ }
+
+--- 11434,11440 ----
+ /* get a name for the temp file */
+ if ((tempname = vim_tempname('o', FALSE)) == NULL)
+ {
+! emsg(_(e_notmp));
+ return NULL;
+ }
+
+***************
+*** 11465,11471 ****
+
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), tempname);
+ goto done;
+ }
+
+--- 11465,11471 ----
+
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), tempname);
+ goto done;
+ }
+
+***************
+*** 11485,11491 ****
+ #endif
+ if (i != len)
+ {
+! EMSG2(_(e_notread), tempname);
+ VIM_CLEAR(buffer);
+ }
+ else if (ret_len == NULL)
+--- 11485,11491 ----
+ #endif
+ if (i != len)
+ {
+! semsg(_(e_notread), tempname);
+ VIM_CLEAR(buffer);
+ }
+ else if (ret_len == NULL)
+*** ../vim-8.1.0742/src/misc2.c 2019-01-11 16:15:57.891171040 +0100
+--- src/misc2.c 2019-01-13 20:17:36.527835979 +0100
+***************
+*** 920,926 ****
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+! EMSG(_("E340: Line is becoming too long"));
+ return NULL;
+ }
+ #endif
+--- 920,926 ----
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+! emsg(_("E340: Line is becoming too long"));
+ return NULL;
+ }
+ #endif
+***************
+*** 960,966 ****
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+! IEMSGN(_("E341: Internal error: lalloc(%ld, )"), size);
+ return NULL;
+ }
+
+--- 960,966 ----
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+! siemsg(_("E341: Internal error: lalloc(%ld, )"), size);
+ return NULL;
+ }
+
+***************
+*** 1079,1085 ****
+ * message fails, e.g. when setting v:errmsg. */
+ did_outofmem_msg = TRUE;
+
+! EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
+ }
+ }
+
+--- 1079,1085 ----
+ * message fails, e.g. when setting v:errmsg. */
+ did_outofmem_msg = TRUE;
+
+! semsg(_("E342: Out of memory! (allocating %lu bytes)"), size);
+ }
+ }
+
+***************
+*** 3272,3278 ****
+ if (p_verbose > 3)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Calling shell to execute: \"%s\""),
+ cmd == NULL ? p_sh : cmd);
+ out_char('\n');
+ cursor_on();
+--- 3272,3278 ----
+ if (p_verbose > 3)
+ {
+ verbose_enter();
+! smsg(_("Calling shell to execute: \"%s\""),
+ cmd == NULL ? p_sh : cmd);
+ out_char('\n');
+ cursor_on();
+***************
+*** 3286,3292 ****
+
+ if (*p_sh == NUL)
+ {
+! EMSG(_(e_shellempty));
+ retval = -1;
+ }
+ else
+--- 3286,3292 ----
+
+ if (*p_sh == NUL)
+ {
+! emsg(_(e_shellempty));
+ retval = -1;
+ }
+ else
+***************
+*** 3538,3544 ****
+ * ("what" is SHAPE_MOUSE).
+ * Returns error message for an illegal option, NULL otherwise.
+ */
+! char_u *
+ parse_shape_opt(int what)
+ {
+ char_u *modep;
+--- 3538,3544 ----
+ * ("what" is SHAPE_MOUSE).
+ * Returns error message for an illegal option, NULL otherwise.
+ */
+! char *
+ parse_shape_opt(int what)
+ {
+ char_u *modep;
+***************
+*** 3574,3582 ****
+ commap = vim_strchr(modep, ',');
+
+ if (colonp == NULL || (commap != NULL && commap < colonp))
+! return (char_u *)N_("E545: Missing colon");
+ if (colonp == modep)
+! return (char_u *)N_("E546: Illegal mode");
+
+ /*
+ * Repeat for all mode's before the colon.
+--- 3574,3582 ----
+ commap = vim_strchr(modep, ',');
+
+ if (colonp == NULL || (commap != NULL && commap < colonp))
+! return N_("E545: Missing colon");
+ if (colonp == modep)
+! return N_("E546: Illegal mode");
+
+ /*
+ * Repeat for all mode's before the colon.
+***************
+*** 3602,3608 ****
+ break;
+ if (idx == SHAPE_IDX_COUNT
+ || (shape_table[idx].used_for & what) == 0)
+! return (char_u *)N_("E546: Illegal mode");
+ if (len == 2 && modep[0] == 'v' && modep[1] == 'e')
+ found_ve = TRUE;
+ }
+--- 3602,3608 ----
+ break;
+ if (idx == SHAPE_IDX_COUNT
+ || (shape_table[idx].used_for & what) == 0)
+! return N_("E546: Illegal mode");
+ if (len == 2 && modep[0] == 'v' && modep[1] == 'e')
+ found_ve = TRUE;
+ }
+***************
+*** 3641,3647 ****
+ if (mshape_names[i] == NULL)
+ {
+ if (!VIM_ISDIGIT(*p))
+! return (char_u *)N_("E547: Illegal mouseshape");
+ if (round == 2)
+ shape_table[idx].mshape =
+ getdigits(&p) + MSHAPE_NUMBERED;
+--- 3641,3647 ----
+ if (mshape_names[i] == NULL)
+ {
+ if (!VIM_ISDIGIT(*p))
+! return N_("E547: Illegal mouseshape");
+ if (round == 2)
+ shape_table[idx].mshape =
+ getdigits(&p) + MSHAPE_NUMBERED;
+***************
+*** 3681,3692 ****
+ {
+ p += len;
+ if (!VIM_ISDIGIT(*p))
+! return (char_u *)N_("E548: digit expected");
+ n = getdigits(&p);
+ if (len == 3) /* "ver" or "hor" */
+ {
+ if (n == 0)
+! return (char_u *)N_("E549: Illegal percentage");
+ if (round == 2)
+ {
+ if (TOLOWER_ASC(i) == 'v')
+--- 3681,3692 ----
+ {
+ p += len;
+ if (!VIM_ISDIGIT(*p))
+! return N_("E548: digit expected");
+ n = getdigits(&p);
+ if (len == 3) /* "ver" or "hor" */
+ {
+ if (n == 0)
+! return N_("E549: Illegal percentage");
+ if (round == 2)
+ {
+ if (TOLOWER_ASC(i) == 'v')
+***************
+*** 4385,4391 ****
+ {
+ if (len + 5 >= MAXPATHL)
+ {
+! EMSG(_(e_pathtoolong));
+ break;
+ }
+ if (STRNCMP(wc_part, "**", 2) == 0)
+--- 4385,4391 ----
+ {
+ if (len + 5 >= MAXPATHL)
+ {
+! emsg(_(e_pathtoolong));
+ break;
+ }
+ if (STRNCMP(wc_part, "**", 2) == 0)
+***************
+*** 4404,4410 ****
+ wc_part = (char_u *)errpt;
+ if (*wc_part != NUL && !vim_ispathsep(*wc_part))
+ {
+! EMSG2(_("E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'."), PATHSEPSTR);
+ goto error_return;
+ }
+ }
+--- 4404,4410 ----
+ wc_part = (char_u *)errpt;
+ if (*wc_part != NUL && !vim_ispathsep(*wc_part))
+ {
+! semsg(_("E343: Invalid path: '**[number]' must be at the end of the path or be followed by '%s'."), PATHSEPSTR);
+ goto error_return;
+ }
+ }
+***************
+*** 4436,4442 ****
+ if (STRLEN(search_ctx->ffsc_start_dir)
+ + STRLEN(search_ctx->ffsc_fix_path) + 3 >= MAXPATHL)
+ {
+! EMSG(_(e_pathtoolong));
+ goto error_return;
+ }
+ STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
+--- 4436,4442 ----
+ if (STRLEN(search_ctx->ffsc_start_dir)
+ + STRLEN(search_ctx->ffsc_fix_path) + 3 >= MAXPATHL)
+ {
+! emsg(_(e_pathtoolong));
+ goto error_return;
+ }
+ STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
+***************
+*** 4667,4673 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"Already Searched: %s (%s)",
+ stackp->ffs_fix_path, stackp->ffs_wc_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+--- 4667,4673 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("Already Searched: %s (%s)",
+ stackp->ffs_fix_path, stackp->ffs_wc_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+***************
+*** 4681,4687 ****
+ else if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"Searching: %s (%s)",
+ stackp->ffs_fix_path, stackp->ffs_wc_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+--- 4681,4687 ----
+ else if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("Searching: %s (%s)",
+ stackp->ffs_fix_path, stackp->ffs_wc_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+***************
+*** 4900,4906 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"Already: %s",
+ file_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+--- 4900,4906 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("Already: %s",
+ file_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+***************
+*** 4928,4934 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"HIT: %s", file_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+ verbose_leave_scroll();
+--- 4928,4934 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("HIT: %s", file_path);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+ verbose_leave_scroll();
+***************
+*** 5128,5134 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"ff_get_visited_list: FOUND list for %s",
+ filename);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+--- 5128,5134 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("ff_get_visited_list: FOUND list for %s",
+ filename);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+***************
+*** 5145,5151 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg((char_u *)"ff_get_visited_list: new list for %s", filename);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+ verbose_leave_scroll();
+--- 5145,5151 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter_scroll();
+! smsg("ff_get_visited_list: new list for %s", filename);
+ /* don't overwrite this either */
+ msg_puts((char_u *)"\n");
+ verbose_leave_scroll();
+***************
+*** 5766,5784 ****
+ if (first == TRUE)
+ {
+ if (find_what == FINDFILE_DIR)
+! EMSG2(_("E344: Can't find directory \"%s\" in cdpath"),
+ ff_file_to_find);
+ else
+! EMSG2(_("E345: Can't find file \"%s\" in path"),
+ ff_file_to_find);
+ }
+ else
+ {
+ if (find_what == FINDFILE_DIR)
+! EMSG2(_("E346: No more directory \"%s\" found in cdpath"),
+ ff_file_to_find);
+ else
+! EMSG2(_("E347: No more file \"%s\" found in path"),
+ ff_file_to_find);
+ }
+ }
+--- 5766,5784 ----
+ if (first == TRUE)
+ {
+ if (find_what == FINDFILE_DIR)
+! semsg(_("E344: Can't find directory \"%s\" in cdpath"),
+ ff_file_to_find);
+ else
+! semsg(_("E345: Can't find file \"%s\" in path"),
+ ff_file_to_find);
+ }
+ else
+ {
+ if (find_what == FINDFILE_DIR)
+! semsg(_("E346: No more directory \"%s\" found in cdpath"),
+ ff_file_to_find);
+ else
+! semsg(_("E347: No more file \"%s\" found in path"),
+ ff_file_to_find);
+ }
+ }
+*** ../vim-8.1.0742/src/netbeans.c 2019-01-12 22:47:01.264088074 +0100
+--- src/netbeans.c 2019-01-13 23:16:36.741428594 +0100
+***************
+*** 257,263 ****
+ {
+ nbdebug(("Wrong access mode for NetBeans connection info file: \"%s\"\n",
+ file));
+! EMSG2(_("E668: Wrong access mode for NetBeans connection info file: \"%s\""),
+ file);
+ return FAIL;
+ }
+--- 257,263 ----
+ {
+ nbdebug(("Wrong access mode for NetBeans connection info file: \"%s\"\n",
+ file));
+! semsg(_("E668: Wrong access mode for NetBeans connection info file: \"%s\""),
+ file);
+ return FAIL;
+ }
+***************
+*** 477,483 ****
+ if (*verb != ':')
+ {
+ nbdebug((" missing colon: %s\n", cmd));
+! EMSG2("E627: missing colon: %s", cmd);
+ return;
+ }
+ ++verb; /* skip colon */
+--- 477,483 ----
+ if (*verb != ':')
+ {
+ nbdebug((" missing colon: %s\n", cmd));
+! semsg("E627: missing colon: %s", cmd);
+ return;
+ }
+ ++verb; /* skip colon */
+***************
+*** 501,507 ****
+ if (isfunc < 0)
+ {
+ nbdebug((" missing ! or / in: %s\n", cmd));
+! EMSG2("E628: missing ! or / in: %s", cmd);
+ return;
+ }
+
+--- 501,507 ----
+ if (isfunc < 0)
+ {
+ nbdebug((" missing ! or / in: %s\n", cmd));
+! semsg("E628: missing ! or / in: %s", cmd);
+ return;
+ }
+
+***************
+*** 518,524 ****
+ * so I'm disabling it except for debugging.
+ */
+ nbdebug(("nb_parse_cmd: Command error for \"%s\"\n", cmd));
+! EMSG("E629: bad return from nb_do_cmd");
+ #endif
+ }
+ }
+--- 518,524 ----
+ * so I'm disabling it except for debugging.
+ */
+ nbdebug(("nb_parse_cmd: Command error for \"%s\"\n", cmd));
+! emsg("E629: bad return from nb_do_cmd");
+ #endif
+ }
+ }
+***************
+*** 1032,1038 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" Invalid buffer identifier in getAnno\n"));
+! EMSG("E652: Invalid buffer identifier in getAnno");
+ retval = FAIL;
+ }
+ else
+--- 1032,1038 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" Invalid buffer identifier in getAnno\n"));
+! emsg("E652: Invalid buffer identifier in getAnno");
+ retval = FAIL;
+ }
+ else
+***************
+*** 1055,1061 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in getLength\n"));
+! EMSG("E632: invalid buffer identifier in getLength");
+ retval = FAIL;
+ }
+ else
+--- 1055,1061 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in getLength\n"));
+! emsg("E632: invalid buffer identifier in getLength");
+ retval = FAIL;
+ }
+ else
+***************
+*** 1077,1083 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in getText\n"));
+! EMSG("E633: invalid buffer identifier in getText");
+ retval = FAIL;
+ }
+ else
+--- 1077,1083 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in getText\n"));
+! emsg("E633: invalid buffer identifier in getText");
+ retval = FAIL;
+ }
+ else
+***************
+*** 1141,1147 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in remove\n"));
+! EMSG("E634: invalid buffer identifier in remove");
+ retval = FAIL;
+ }
+ else
+--- 1141,1147 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in remove\n"));
+! emsg("E634: invalid buffer identifier in remove");
+ retval = FAIL;
+ }
+ else
+***************
+*** 1311,1317 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in insert\n"));
+! EMSG("E635: invalid buffer identifier in insert");
+ retval = FAIL;
+ }
+ else if (args != NULL)
+--- 1311,1317 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in insert\n"));
+! emsg("E635: invalid buffer identifier in insert");
+ retval = FAIL;
+ }
+ else if (args != NULL)
+***************
+*** 1471,1477 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in create\n"));
+! EMSG("E636: invalid buffer identifier in create");
+ return FAIL;
+ }
+ VIM_CLEAR(buf->displayname);
+--- 1471,1477 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in create\n"));
+! emsg("E636: invalid buffer identifier in create");
+ return FAIL;
+ }
+ VIM_CLEAR(buf->displayname);
+***************
+*** 1521,1527 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in startDocumentListen\n"));
+! EMSG("E637: invalid buffer identifier in startDocumentListen");
+ return FAIL;
+ }
+ buf->fireChanges = 1;
+--- 1521,1527 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in startDocumentListen\n"));
+! emsg("E637: invalid buffer identifier in startDocumentListen");
+ return FAIL;
+ }
+ buf->fireChanges = 1;
+***************
+*** 1532,1538 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in stopDocumentListen\n"));
+! EMSG("E638: invalid buffer identifier in stopDocumentListen");
+ return FAIL;
+ }
+ buf->fireChanges = 0;
+--- 1532,1538 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in stopDocumentListen\n"));
+! emsg("E638: invalid buffer identifier in stopDocumentListen");
+ return FAIL;
+ }
+ buf->fireChanges = 0;
+***************
+*** 1541,1547 ****
+ if (!buf->bufp->b_netbeans_file)
+ {
+ nbdebug(("E658: NetBeans connection lost for buffer %ld\n", buf->bufp->b_fnum));
+! EMSGN(_("E658: NetBeans connection lost for buffer %ld"),
+ buf->bufp->b_fnum);
+ }
+ else
+--- 1541,1547 ----
+ if (!buf->bufp->b_netbeans_file)
+ {
+ nbdebug(("E658: NetBeans connection lost for buffer %ld\n", buf->bufp->b_fnum));
+! semsg(_("E658: NetBeans connection lost for buffer %ld"),
+ buf->bufp->b_fnum);
+ }
+ else
+***************
+*** 1561,1567 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setTitle\n"));
+! EMSG("E639: invalid buffer identifier in setTitle");
+ return FAIL;
+ }
+ vim_free(buf->displayname);
+--- 1561,1567 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setTitle\n"));
+! emsg("E639: invalid buffer identifier in setTitle");
+ return FAIL;
+ }
+ vim_free(buf->displayname);
+***************
+*** 1573,1579 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in initDone\n"));
+! EMSG("E640: invalid buffer identifier in initDone");
+ return FAIL;
+ }
+ do_update = 1;
+--- 1573,1579 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in initDone\n"));
+! emsg("E640: invalid buffer identifier in initDone");
+ return FAIL;
+ }
+ do_update = 1;
+***************
+*** 1594,1600 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setBufferNumber\n"));
+! EMSG("E641: invalid buffer identifier in setBufferNumber");
+ return FAIL;
+ }
+ path = (char_u *)nb_unquote(args, NULL);
+--- 1594,1600 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setBufferNumber\n"));
+! emsg("E641: invalid buffer identifier in setBufferNumber");
+ return FAIL;
+ }
+ path = (char_u *)nb_unquote(args, NULL);
+***************
+*** 1605,1611 ****
+ if (bufp == NULL)
+ {
+ nbdebug((" File %s not found in setBufferNumber\n", args));
+! EMSG2("E642: File %s not found in setBufferNumber", args);
+ return FAIL;
+ }
+ buf->bufp = bufp;
+--- 1605,1611 ----
+ if (bufp == NULL)
+ {
+ nbdebug((" File %s not found in setBufferNumber\n", args));
+! semsg("E642: File %s not found in setBufferNumber", args);
+ return FAIL;
+ }
+ buf->bufp = bufp;
+***************
+*** 1630,1636 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setFullName\n"));
+! EMSG("E643: invalid buffer identifier in setFullName");
+ return FAIL;
+ }
+ vim_free(buf->displayname);
+--- 1630,1636 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setFullName\n"));
+! emsg("E643: invalid buffer identifier in setFullName");
+ return FAIL;
+ }
+ vim_free(buf->displayname);
+***************
+*** 1653,1659 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in editFile\n"));
+! EMSG("E644: invalid buffer identifier in editFile");
+ return FAIL;
+ }
+ /* Edit a file: like create + setFullName + read the file. */
+--- 1653,1659 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in editFile\n"));
+! emsg("E644: invalid buffer identifier in editFile");
+ return FAIL;
+ }
+ /* Edit a file: like create + setFullName + read the file. */
+***************
+*** 1681,1687 ****
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! EMSG("E645: invalid buffer identifier in setVisible");
+ return FAIL;
+ }
+ if (streq((char *)args, "T") && buf->bufp != curbuf)
+--- 1681,1687 ----
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! emsg("E645: invalid buffer identifier in setVisible");
+ return FAIL;
+ }
+ if (streq((char *)args, "T") && buf->bufp != curbuf)
+***************
+*** 1721,1727 ****
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! EMSG("E646: invalid buffer identifier in setModified");
+ return FAIL;
+ }
+ prev_b_changed = buf->bufp->b_changed;
+--- 1721,1727 ----
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! emsg("E646: invalid buffer identifier in setModified");
+ return FAIL;
+ }
+ prev_b_changed = buf->bufp->b_changed;
+***************
+*** 1803,1809 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setDot\n"));
+! EMSG("E647: invalid buffer identifier in setDot");
+ return FAIL;
+ }
+
+--- 1803,1809 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in setDot\n"));
+! emsg("E647: invalid buffer identifier in setDot");
+ return FAIL;
+ }
+
+***************
+*** 1856,1862 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in close\n"));
+! EMSG("E648: invalid buffer identifier in close");
+ return FAIL;
+ }
+
+--- 1856,1862 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in close\n"));
+! emsg("E648: invalid buffer identifier in close");
+ return FAIL;
+ }
+
+***************
+*** 1870,1876 ****
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! EMSG("E649: invalid buffer identifier in close");
+ }
+ nbdebug((" CLOSE %d: %s\n", bufno, name));
+ #ifdef FEAT_GUI
+--- 1870,1876 ----
+ /* This message was commented out, probably because it can
+ * happen when shutting down. */
+ if (p_verbose > 0)
+! emsg("E649: invalid buffer identifier in close");
+ }
+ nbdebug((" CLOSE %d: %s\n", bufno, name));
+ #ifdef FEAT_GUI
+***************
+*** 1909,1915 ****
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in defineAnnoType\n"));
+! EMSG("E650: invalid buffer identifier in defineAnnoType");
+ return FAIL;
+ }
+
+--- 1909,1915 ----
+ if (buf == NULL)
+ {
+ nbdebug((" invalid buffer identifier in defineAnnoType\n"));
+! emsg("E650: invalid buffer identifier in defineAnnoType");
+ return FAIL;
+ }
+
+***************
+*** 1937,1943 ****
+ bg = vim_strsave(p);
+ if (STRLEN(fg) > MAX_COLOR_LENGTH || STRLEN(bg) > MAX_COLOR_LENGTH)
+ {
+! EMSG("E532: highlighting color name too long in defineAnnoType");
+ vim_free(typeName);
+ parse_error = TRUE;
+ }
+--- 1937,1943 ----
+ bg = vim_strsave(p);
+ if (STRLEN(fg) > MAX_COLOR_LENGTH || STRLEN(bg) > MAX_COLOR_LENGTH)
+ {
+! emsg("E532: highlighting color name too long in defineAnnoType");
+ vim_free(typeName);
+ parse_error = TRUE;
+ }
+***************
+*** 1968,1974 ****
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in addAnno\n"));
+! EMSG("E651: invalid buffer identifier in addAnno");
+ return FAIL;
+ }
+
+--- 1968,1974 ----
+ if (buf == NULL || buf->bufp == NULL)
+ {
+ nbdebug((" invalid buffer identifier in addAnno\n"));
+! emsg("E651: invalid buffer identifier in addAnno");
+ return FAIL;
+ }
+
+***************
+*** 2352,2358 ****
+ && !defined(FEAT_GUI_W32)
+ if (gui.in_use)
+ {
+! EMSG(_("E838: netbeans is not supported with this GUI"));
+ return;
+ }
+ # endif
+--- 2352,2358 ----
+ && !defined(FEAT_GUI_W32)
+ if (gui.in_use)
+ {
+! emsg(_("E838: netbeans is not supported with this GUI"));
+ return;
+ }
+ # endif
+***************
+*** 2517,2523 ****
+
+ if (NETBEANS_OPEN)
+ {
+! EMSG(_("E511: netbeans already connected"));
+ return;
+ }
+
+--- 2517,2523 ----
+
+ if (NETBEANS_OPEN)
+ {
+! emsg(_("E511: netbeans already connected"));
+ return;
+ }
+
+***************
+*** 3482,3491 ****
+ }
+ else
+ {
+! char_u msgbuf[IOSIZE];
+
+! vim_snprintf((char *)msgbuf, IOSIZE,
+! _("E505: %s is read-only (add ! to override)"), IObuff);
+ nbdebug((" %s\n", msgbuf));
+ emsg(msgbuf);
+ }
+--- 3482,3491 ----
+ }
+ else
+ {
+! char msgbuf[IOSIZE];
+
+! vim_snprintf(msgbuf, IOSIZE,
+! _("E505: %s is read-only (add ! to override)"), IObuff);
+ nbdebug((" %s\n", msgbuf));
+ emsg(msgbuf);
+ }
+*** ../vim-8.1.0742/src/normal.c 2019-01-11 20:34:18.300314693 +0100
+--- src/normal.c 2019-01-13 19:56:01.662201860 +0100
+***************
+*** 2211,2217 ****
+ # endif
+
+ if (*p_opfunc == NUL)
+! EMSG(_("E774: 'operatorfunc' is empty"));
+ else
+ {
+ /* Set '[ and '] marks to text to be operated on. */
+--- 2211,2217 ----
+ # endif
+
+ if (*p_opfunc == NUL)
+! emsg(_("E774: 'operatorfunc' is empty"));
+ else
+ {
+ /* Set '[ and '] marks to text to be operated on. */
+***************
+*** 2243,2249 ****
+ # endif
+ }
+ #else
+! EMSG(_("E775: Eval feature not available"));
+ #endif
+ }
+
+--- 2243,2249 ----
+ # endif
+ }
+ #else
+! emsg(_("E775: Eval feature not available"));
+ #endif
+ }
+
+***************
+*** 3542,3550 ****
+ * didn't find an identifier or string
+ */
+ if (find_type & FIND_STRING)
+! EMSG(_("E348: No string under cursor"));
+ else
+! EMSG(_(e_noident));
+ return 0;
+ }
+ ptr += col;
+--- 3542,3550 ----
+ * didn't find an identifier or string
+ */
+ if (find_type & FIND_STRING)
+! emsg(_("E348: No string under cursor"));
+ else
+! emsg(_(e_noident));
+ return 0;
+ }
+ ptr += col;
+***************
+*** 5016,5022 ****
+ deleteFold((linenr_T)1, curbuf->b_ml.ml_line_count,
+ TRUE, FALSE);
+ else
+! EMSG(_("E352: Cannot erase folds with current 'foldmethod'"));
+ break;
+
+ /* "zn": fold none: reset 'foldenable' */
+--- 5016,5022 ----
+ deleteFold((linenr_T)1, curbuf->b_ml.ml_line_count,
+ TRUE, FALSE);
+ else
+! emsg(_("E352: Cannot erase folds with current 'foldmethod'"));
+ break;
+
+ /* "zn": fold none: reset 'foldenable' */
+***************
+*** 5616,5622 ****
+ || STRCMP(kp, ":help") == 0);
+ if (kp_help && *skipwhite(ptr) == NUL)
+ {
+! EMSG(_(e_noident)); /* found white space only */
+ return;
+ }
+ kp_ex = (*kp == ':');
+--- 5616,5622 ----
+ || STRCMP(kp, ":help") == 0);
+ if (kp_help && *skipwhite(ptr) == NUL)
+ {
+! emsg(_(e_noident)); /* found white space only */
+ return;
+ }
+ kp_ex = (*kp == ':');
+***************
+*** 5667,5673 ****
+ }
+ if (n == 0)
+ {
+! EMSG(_(e_noident)); /* found dashes only */
+ vim_free(buf);
+ return;
+ }
+--- 5667,5673 ----
+ }
+ if (n == 0)
+ {
+! emsg(_(e_noident)); /* found dashes only */
+ vim_free(buf);
+ return;
+ }
+***************
+*** 7275,7281 ****
+ else if (!checkclearopq(cap->oap))
+ {
+ if (!curbuf->b_p_ma)
+! EMSG(_(e_modifiable));
+ else
+ {
+ #ifdef FEAT_VIRTUALEDIT
+--- 7275,7281 ----
+ else if (!checkclearopq(cap->oap))
+ {
+ if (!curbuf->b_p_ma)
+! emsg(_(e_modifiable));
+ else
+ {
+ #ifdef FEAT_VIRTUALEDIT
+***************
+*** 7302,7308 ****
+ else if (!checkclearopq(cap->oap))
+ {
+ if (!curbuf->b_p_ma)
+! EMSG(_(e_modifiable));
+ else
+ {
+ if (cap->extra_char == Ctrl_V) /* get another character */
+--- 7302,7308 ----
+ else if (!checkclearopq(cap->oap))
+ {
+ if (!curbuf->b_p_ma)
+! emsg(_(e_modifiable));
+ else
+ {
+ if (cap->extra_char == Ctrl_V) /* get another character */
+***************
+*** 7629,7639 ****
+ else if (cap->cmdchar == 'g')
+ {
+ if (curbuf->b_changelistlen == 0)
+! EMSG(_("E664: changelist is empty"));
+ else if (cap->count1 < 0)
+! EMSG(_("E662: At start of changelist"));
+ else
+! EMSG(_("E663: At end of changelist"));
+ }
+ else
+ clearopbeep(cap->oap);
+--- 7629,7639 ----
+ else if (cap->cmdchar == 'g')
+ {
+ if (curbuf->b_changelistlen == 0)
+! emsg(_("E664: changelist is empty"));
+ else if (cap->count1 < 0)
+! emsg(_("E662: At start of changelist"));
+ else
+! emsg(_("E663: At end of changelist"));
+ }
+ else
+ clearopbeep(cap->oap);
+***************
+*** 8514,8527 ****
+ if (curwin->w_p_cole > 0 && oldline != curwin->w_cursor.lnum)
+ redrawWinline(curwin, oldline);
+ #endif
+- /* When '#' is in 'cpoptions' ignore the count. */
+- if (vim_strchr(p_cpo, CPO_HASH) != NULL)
+- cap->count1 = 1;
+ #ifdef FEAT_SYN_HL
+ if (curwin->w_p_cul)
+ /* force redraw of cursorline */
+ curwin->w_valid &= ~VALID_CROW;
+ #endif
+ invoke_edit(cap, FALSE, cap->cmdchar, TRUE);
+ }
+ }
+--- 8514,8527 ----
+ if (curwin->w_p_cole > 0 && oldline != curwin->w_cursor.lnum)
+ redrawWinline(curwin, oldline);
+ #endif
+ #ifdef FEAT_SYN_HL
+ if (curwin->w_p_cul)
+ /* force redraw of cursorline */
+ curwin->w_valid &= ~VALID_CROW;
+ #endif
++ /* When '#' is in 'cpoptions' ignore the count. */
++ if (vim_strchr(p_cpo, CPO_HASH) != NULL)
++ cap->count1 = 1;
+ invoke_edit(cap, FALSE, cap->cmdchar, TRUE);
+ }
+ }
+***************
+*** 9107,9113 ****
+ else if (!curbuf->b_p_ma && !p_im)
+ {
+ /* Only give this error when 'insertmode' is off. */
+! EMSG(_(e_modifiable));
+ clearop(cap->oap);
+ if (cap->cmdchar == K_PS)
+ /* drop the pasted text */
+--- 9107,9113 ----
+ else if (!curbuf->b_p_ma && !p_im)
+ {
+ /* Only give this error when 'insertmode' is off. */
+! emsg(_(e_modifiable));
+ clearop(cap->oap);
+ if (cap->cmdchar == K_PS)
+ /* drop the pasted text */
+*** ../vim-8.1.0742/src/ops.c 2019-01-11 16:15:57.895171010 +0100
+--- src/ops.c 2019-01-13 19:56:05.486169368 +0100
+***************
+*** 712,718 ****
+ /* Don't even try when 'modifiable' is off. */
+ if (!curbuf->b_p_ma)
+ {
+! EMSG(_(e_modifiable));
+ return;
+ }
+
+--- 712,718 ----
+ /* Don't even try when 'modifiable' is off. */
+ if (!curbuf->b_p_ma)
+ {
+! emsg(_(e_modifiable));
+ return;
+ }
+
+***************
+*** 724,730 ****
+ if (i > 1
+ && (i % 50 == 0 || i == oap->line_count - 1)
+ && oap->line_count > p_report)
+! smsg((char_u *)_("%ld lines to indent... "), i);
+
+ /*
+ * Be vi-compatible: For lisp indenting the first line is not
+--- 724,730 ----
+ if (i > 1
+ && (i % 50 == 0 || i == oap->line_count - 1)
+ && oap->line_count > p_report)
+! smsg(_("%ld lines to indent... "), i);
+
+ /*
+ * Be vi-compatible: For lisp indenting the first line is not
+***************
+*** 770,776 ****
+ if (oap->line_count > p_report)
+ {
+ i = oap->line_count - (i + 1);
+! smsg((char_u *)NGETTEXT("%ld line indented ",
+ "%ld lines indented ", i), i);
+ }
+ /* set '[ and '] marks */
+--- 770,776 ----
+ if (oap->line_count > p_report)
+ {
+ i = oap->line_count - (i + 1);
+! smsg(NGETTEXT("%ld line indented ",
+ "%ld lines indented ", i), i);
+ }
+ /* set '[ and '] marks */
+***************
+*** 1218,1224 ****
+ {
+ if (execreg_lastc == NUL)
+ {
+! EMSG(_("E748: No previously used register"));
+ return FAIL;
+ }
+ regname = execreg_lastc;
+--- 1218,1224 ----
+ {
+ if (execreg_lastc == NUL)
+ {
+! emsg(_("E748: No previously used register"));
+ return FAIL;
+ }
+ regname = execreg_lastc;
+***************
+*** 1243,1249 ****
+ {
+ if (last_cmdline == NULL)
+ {
+! EMSG(_(e_nolastcmd));
+ return FAIL;
+ }
+ VIM_CLEAR(new_last_cmdline); /* don't keep the cmdline containing @: */
+--- 1243,1249 ----
+ {
+ if (last_cmdline == NULL)
+ {
+! emsg(_(e_nolastcmd));
+ return FAIL;
+ }
+ VIM_CLEAR(new_last_cmdline); /* don't keep the cmdline containing @: */
+***************
+*** 1277,1283 ****
+ p = get_last_insert_save();
+ if (p == NULL)
+ {
+! EMSG(_(e_noinstext));
+ return FAIL;
+ }
+ retval = put_in_typebuf(p, FALSE, colon, silent);
+--- 1277,1283 ----
+ p = get_last_insert_save();
+ if (p == NULL)
+ {
+! emsg(_(e_noinstext));
+ return FAIL;
+ }
+ retval = put_in_typebuf(p, FALSE, colon, silent);
+***************
+*** 1535,1547 ****
+
+ case ':': /* last command line */
+ if (last_cmdline == NULL && errmsg)
+! EMSG(_(e_nolastcmd));
+ *argp = last_cmdline;
+ return TRUE;
+
+ case '/': /* last search-pattern */
+ if (last_search_pat() == NULL && errmsg)
+! EMSG(_(e_noprevre));
+ *argp = last_search_pat();
+ return TRUE;
+
+--- 1535,1547 ----
+
+ case ':': /* last command line */
+ if (last_cmdline == NULL && errmsg)
+! emsg(_(e_nolastcmd));
+ *argp = last_cmdline;
+ return TRUE;
+
+ case '/': /* last search-pattern */
+ if (last_search_pat() == NULL && errmsg)
+! emsg(_(e_noprevre));
+ *argp = last_search_pat();
+ return TRUE;
+
+***************
+*** 1549,1555 ****
+ *argp = get_last_insert_save();
+ *allocated = TRUE;
+ if (*argp == NULL && errmsg)
+! EMSG(_(e_noinstext));
+ return TRUE;
+
+ #ifdef FEAT_SEARCHPATH
+--- 1549,1555 ----
+ *argp = get_last_insert_save();
+ *allocated = TRUE;
+ if (*argp == NULL && errmsg)
+! emsg(_(e_noinstext));
+ return TRUE;
+
+ #ifdef FEAT_SEARCHPATH
+***************
+*** 1761,1767 ****
+
+ if (!curbuf->b_p_ma)
+ {
+! EMSG(_(e_modifiable));
+ return FAIL;
+ }
+
+--- 1761,1767 ----
+
+ if (!curbuf->b_p_ma)
+ {
+! emsg(_(e_modifiable));
+ return FAIL;
+ }
+
+***************
+*** 1884,1890 ****
+ msg_silent = msg_silent_save;
+ if (n != 'y')
+ {
+! EMSG(_(e_abort));
+ return FAIL;
+ }
+ }
+--- 1884,1890 ----
+ msg_silent = msg_silent_save;
+ if (n != 'y')
+ {
+! emsg(_(e_abort));
+ return FAIL;
+ }
+ }
+***************
+*** 2506,2512 ****
+ curbuf->b_op_end = oap->end;
+
+ if (oap->line_count > p_report)
+! smsg((char_u *)NGETTEXT("%ld line changed", "%ld lines changed",
+ oap->line_count), oap->line_count);
+ }
+
+--- 2506,2512 ----
+ curbuf->b_op_end = oap->end;
+
+ if (oap->line_count > p_report)
+! smsg(NGETTEXT("%ld line changed", "%ld lines changed",
+ oap->line_count), oap->line_count);
+ }
+
+***************
+*** 3038,3044 ****
+ * Overwrite this message with any next message.
+ */
+ ++no_wait_return;
+! smsg((char_u *)_("freeing %ld lines"), i + 1);
+ --no_wait_return;
+ msg_didout = FALSE;
+ msg_col = 0;
+--- 3038,3044 ----
+ * Overwrite this message with any next message.
+ */
+ ++no_wait_return;
+! smsg(_("freeing %ld lines"), i + 1);
+ --no_wait_return;
+ msg_didout = FALSE;
+ msg_col = 0;
+***************
+*** 3325,3337 ****
+ update_topline_redraw();
+ if (oap->block_mode)
+ {
+! smsg((char_u *)NGETTEXT("block of %ld line yanked%s",
+ "block of %ld lines yanked%s", yanklines),
+ yanklines, namebuf);
+ }
+ else
+ {
+! smsg((char_u *)NGETTEXT("%ld line yanked%s",
+ "%ld lines yanked%s", yanklines),
+ yanklines, namebuf);
+ }
+--- 3325,3337 ----
+ update_topline_redraw();
+ if (oap->block_mode)
+ {
+! smsg(NGETTEXT("block of %ld line yanked%s",
+ "block of %ld lines yanked%s", yanklines),
+ yanklines, namebuf);
+ }
+ else
+ {
+! smsg(NGETTEXT("%ld line yanked%s",
+ "%ld lines yanked%s", yanklines),
+ yanklines, namebuf);
+ }
+***************
+*** 3649,3655 ****
+
+ if (y_size == 0 || y_array == NULL)
+ {
+! EMSG2(_("E353: Nothing in register %s"),
+ regname == 0 ? (char_u *)"\"" : transchar(regname));
+ goto end;
+ }
+--- 3649,3655 ----
+
+ if (y_size == 0 || y_array == NULL)
+ {
+! semsg(_("E353: Nothing in register %s"),
+ regname == 0 ? (char_u *)"\"" : transchar(regname));
+ goto end;
+ }
+***************
+*** 5646,5652 ****
+ curbuf->b_op_start = startpos;
+
+ if (change_cnt > p_report)
+! smsg((char_u *)NGETTEXT("%ld line changed", "%ld lines changed",
+ change_cnt), change_cnt);
+ }
+ }
+--- 5646,5652 ----
+ curbuf->b_op_start = startpos;
+
+ if (change_cnt > p_report)
+! smsg(NGETTEXT("%ld line changed", "%ld lines changed",
+ change_cnt), change_cnt);
+ }
+ }
+***************
+*** 6423,6431 ****
+ type = (char_u *)"BLOCK";
+ break;
+ default:
+! sprintf((char *)IObuff, _("E574: Unknown register type %d"),
+! y_ptr->y_type);
+! emsg(IObuff);
+ type = (char_u *)"LINE";
+ break;
+ }
+--- 6423,6429 ----
+ type = (char_u *)"BLOCK";
+ break;
+ default:
+! semsg(_("E574: Unknown register type %d"), y_ptr->y_type);
+ type = (char_u *)"LINE";
+ break;
+ }
+***************
+*** 7054,7060 ****
+ s = (char_u *)"";
+ else if (strings[1] != NULL)
+ {
+! EMSG(_("E883: search pattern and expression register may not "
+ "contain two or more lines"));
+ return;
+ }
+--- 7052,7058 ----
+ s = (char_u *)"";
+ else if (strings[1] != NULL)
+ {
+! emsg(_("E883: search pattern and expression register may not "
+ "contain two or more lines"));
+ return;
+ }
+***************
+*** 7110,7116 ****
+
+ buf = buflist_findnr(num);
+ if (buf == NULL)
+! EMSGN(_(e_nobufnr), (long)num);
+ }
+ else
+ buf = buflist_findnr(buflist_findpat(str, str + STRLEN(str),
+--- 7108,7114 ----
+
+ buf = buflist_findnr(num);
+ if (buf == NULL)
+! semsg(_(e_nobufnr), (long)num);
+ }
+ else
+ buf = buflist_findnr(buflist_findpat(str, str + STRLEN(str),
+*** ../vim-8.1.0742/src/option.c 2018-12-21 13:03:24.292337854 +0100
+--- src/option.c 2019-01-13 23:05:44.642834290 +0100
+***************
+*** 3295,3314 ****
+ # define insecure_flag(opt_idx, opt_flags) (&options[opt_idx].flags)
+ #endif
+ static void set_string_option_global(int opt_idx, char_u **varp);
+! static char_u *did_set_string_option(int opt_idx, char_u **varp, int new_value_alloced, char_u *oldval, char_u *errbuf, int opt_flags, int *value_checked);
+! static char_u *set_chars_option(char_u **varp);
+ #ifdef FEAT_CLIPBOARD
+! static char_u *check_clipboard_option(void);
+ #endif
+ #ifdef FEAT_SPELL
+! static char_u *did_set_spell_option(int is_spellfile);
+! static char_u *compile_cap_prog(synblock_T *synblock);
+ #endif
+ #ifdef FEAT_EVAL
+ static void set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx);
+ #endif
+! static char_u *set_bool_option(int opt_idx, char_u *varp, int value, int opt_flags);
+! static char_u *set_num_option(int opt_idx, char_u *varp, long value, char_u *errbuf, size_t errbuflen, int opt_flags);
+ static void check_redraw(long_u flags);
+ static int findoption(char_u *);
+ static int find_key_option(char_u *arg_arg, int has_lt);
+--- 3295,3314 ----
+ # define insecure_flag(opt_idx, opt_flags) (&options[opt_idx].flags)
+ #endif
+ static void set_string_option_global(int opt_idx, char_u **varp);
+! static char *did_set_string_option(int opt_idx, char_u **varp, int new_value_alloced, char_u *oldval, char *errbuf, int opt_flags, int *value_checked);
+! static char *set_chars_option(char_u **varp);
+ #ifdef FEAT_CLIPBOARD
+! static char *check_clipboard_option(void);
+ #endif
+ #ifdef FEAT_SPELL
+! static char *did_set_spell_option(int is_spellfile);
+! static char *compile_cap_prog(synblock_T *synblock);
+ #endif
+ #ifdef FEAT_EVAL
+ static void set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx);
+ #endif
+! static char *set_bool_option(int opt_idx, char_u *varp, int value, int opt_flags);
+! static char *set_num_option(int opt_idx, char_u *varp, long value, char *errbuf, size_t errbuflen, int opt_flags);
+ static void check_redraw(long_u flags);
+ static int findoption(char_u *);
+ static int find_key_option(char_u *arg_arg, int has_lt);
+***************
+*** 3708,3718 ****
+ }
+
+ #if defined(MSWIN) || defined(MACOS_X) || defined(VMS)
+! if (STRCMP(p_enc, "latin1") == 0
+! # ifdef FEAT_MBYTE
+! || enc_utf8
+! # endif
+! )
+ {
+ /* Adjust the default for 'isprint' and 'iskeyword' to match
+ * latin1. Also set the defaults for when 'nocompatible' is
+--- 3708,3714 ----
+ }
+
+ #if defined(MSWIN) || defined(MACOS_X) || defined(VMS)
+! if (STRCMP(p_enc, "latin1") == 0 || enc_utf8)
+ {
+ /* Adjust the default for 'isprint' and 'iskeyword' to match
+ * latin1. Also set the defaults for when 'nocompatible' is
+***************
+*** 4393,4400 ****
+ int opt_flags)
+ {
+ int opt_idx;
+! char_u *errmsg;
+! char_u errbuf[80];
+ char_u *startarg;
+ int prefix; /* 1: nothing, 0: "no", 2: "inv" in front of name */
+ int nextchar; /* next non-white char after option name */
+--- 4389,4396 ----
+ int opt_flags)
+ {
+ int opt_idx;
+! char *errmsg;
+! char errbuf[80];
+ char_u *startarg;
+ int prefix; /* 1: nothing, 0: "no", 2: "inv" in front of name */
+ int nextchar; /* next non-white char after option name */
+***************
+*** 4546,4552 ****
+
+ if (opt_idx == -1 && key == 0) /* found a mismatch: skip */
+ {
+! errmsg = (char_u *)N_("E518: Unknown option");
+ goto skip;
+ }
+
+--- 4542,4548 ----
+
+ if (opt_idx == -1 && key == 0) /* found a mismatch: skip */
+ {
+! errmsg = N_("E518: Unknown option");
+ goto skip;
+ }
+
+***************
+*** 4559,4565 ****
+ if (vim_strchr((char_u *)"=:!&<", nextchar) == NULL
+ && (!(options[opt_idx].flags & P_BOOL)
+ || nextchar == '?'))
+! errmsg = (char_u *)N_("E519: Option not supported");
+ goto skip;
+ }
+
+--- 4555,4561 ----
+ if (vim_strchr((char_u *)"=:!&<", nextchar) == NULL
+ && (!(options[opt_idx].flags & P_BOOL)
+ || nextchar == '?'))
+! errmsg = N_("E519: Option not supported");
+ goto skip;
+ }
+
+***************
+*** 4597,4603 ****
+ {
+ if (flags & (P_SECURE | P_NO_ML))
+ {
+! errmsg = (char_u *)_("E520: Not allowed in a modeline");
+ goto skip;
+ }
+ #ifdef FEAT_DIFF
+--- 4593,4599 ----
+ {
+ if (flags & (P_SECURE | P_NO_ML))
+ {
+! errmsg = _("E520: Not allowed in a modeline");
+ goto skip;
+ }
+ #ifdef FEAT_DIFF
+***************
+*** 4619,4625 ****
+ /* Disallow changing some options in the sandbox */
+ if (sandbox != 0 && (flags & P_SECURE))
+ {
+! errmsg = (char_u *)_(e_sandbox);
+ goto skip;
+ }
+ #endif
+--- 4615,4621 ----
+ /* Disallow changing some options in the sandbox */
+ if (sandbox != 0 && (flags & P_SECURE))
+ {
+! errmsg = _(e_sandbox);
+ goto skip;
+ }
+ #endif
+***************
+*** 4693,4699 ****
+ p = find_termcode(key_name);
+ if (p == NULL)
+ {
+! errmsg = (char_u *)N_("E846: Key code not set");
+ goto skip;
+ }
+ else
+--- 4689,4695 ----
+ p = find_termcode(key_name);
+ if (p == NULL)
+ {
+! errmsg = N_("E846: Key code not set");
+ goto skip;
+ }
+ else
+***************
+*** 4822,4828 ****
+ }
+ else
+ {
+! errmsg = (char_u *)N_("E521: Number required after =");
+ goto skip;
+ }
+
+--- 4818,4824 ----
+ }
+ else
+ {
+! errmsg = N_("E521: Number required after =");
+ goto skip;
+ }
+
+***************
+*** 4923,4929 ****
+ {
+ STRCPY(errbuf, ":help");
+ save_arg = arg;
+! arg = errbuf;
+ }
+ /*
+ * Convert 'backspace' number to string, for
+--- 4919,4925 ----
+ {
+ STRCPY(errbuf, ":help");
+ save_arg = arg;
+! arg = (char_u *)errbuf;
+ }
+ /*
+ * Convert 'backspace' number to string, for
+***************
+*** 4975,4981 ****
+ if (*errbuf != NUL) /* remove trailing , */
+ errbuf[STRLEN(errbuf) - 1] = NUL;
+ save_arg = arg;
+! arg = errbuf;
+ }
+ /*
+ * Remove '>' before 'dir' and 'bdir', for
+--- 4971,4977 ----
+ if (*errbuf != NUL) /* remove trailing , */
+ errbuf[STRLEN(errbuf) - 1] = NUL;
+ save_arg = arg;
+! arg = (char_u *)errbuf;
+ }
+ /*
+ * Remove '>' before 'dir' and 'bdir', for
+***************
+*** 5259,5265 ****
+ if (nextchar == '&')
+ {
+ if (add_termcap_entry(key_name, TRUE) == FAIL)
+! errmsg = (char_u *)N_("E522: Not found in termcap");
+ }
+ else
+ {
+--- 5255,5261 ----
+ if (nextchar == '&')
+ {
+ if (add_termcap_entry(key_name, TRUE) == FAIL)
+! errmsg = N_("E522: Not found in termcap");
+ }
+ else
+ {
+***************
+*** 5315,5322 ****
+ /* make sure all characters are printable */
+ trans_characters(IObuff, IOSIZE);
+
+! ++no_wait_return; /* wait_return done later */
+! emsg(IObuff); /* show error highlighted */
+ --no_wait_return;
+
+ return FAIL;
+--- 5311,5318 ----
+ /* make sure all characters are printable */
+ trans_characters(IObuff, IOSIZE);
+
+! ++no_wait_return; // wait_return done later
+! emsg((char *)IObuff); // show error highlighted
+ --no_wait_return;
+
+ return FAIL;
+***************
+*** 5371,5381 ****
+ *p = *p & ~P_INSECURE;
+ }
+
+! static char_u *
+! illegal_char(char_u *errbuf, int c)
+ {
+ if (errbuf == NULL)
+! return (char_u *)"";
+ sprintf((char *)errbuf, _("E539: Illegal character <%s>"),
+ (char *)transchar(c));
+ return errbuf;
+--- 5367,5377 ----
+ *p = *p & ~P_INSECURE;
+ }
+
+! static char *
+! illegal_char(char *errbuf, int c)
+ {
+ if (errbuf == NULL)
+! return "";
+ sprintf((char *)errbuf, _("E539: Illegal character <%s>"),
+ (char *)transchar(c));
+ return errbuf;
+***************
+*** 5403,5409 ****
+ * Check value of 'cedit' and set cedit_key.
+ * Returns NULL if value is OK, error message otherwise.
+ */
+! static char_u *
+ check_cedit(void)
+ {
+ int n;
+--- 5399,5405 ----
+ * Check value of 'cedit' and set cedit_key.
+ * Returns NULL if value is OK, error message otherwise.
+ */
+! static char *
+ check_cedit(void)
+ {
+ int n;
+***************
+*** 5945,5952 ****
+ idx = findoption(name);
+ if (idx < 0) /* not found (should not happen) */
+ {
+! EMSG2(_(e_intern2), "set_string_option_direct()");
+! IEMSG2(_("For option %s"), name);
+ return;
+ }
+ }
+--- 5941,5948 ----
+ idx = findoption(name);
+ if (idx < 0) /* not found (should not happen) */
+ {
+! semsg(_(e_intern2), "set_string_option_direct()");
+! siemsg(_("For option %s"), name);
+ return;
+ }
+ }
+***************
+*** 6024,6030 ****
+ *
+ * Returns NULL on success or error message on error.
+ */
+! static char_u *
+ set_string_option(
+ int opt_idx,
+ char_u *value,
+--- 6020,6026 ----
+ *
+ * Returns NULL on success or error message on error.
+ */
+! static char *
+ set_string_option(
+ int opt_idx,
+ char_u *value,
+***************
+*** 6037,6043 ****
+ char_u *saved_oldval = NULL;
+ char_u *saved_newval = NULL;
+ #endif
+! char_u *r = NULL;
+ int value_checked = FALSE;
+
+ if (options[opt_idx].var == NULL) /* don't set hidden option */
+--- 6033,6039 ----
+ char_u *saved_oldval = NULL;
+ char_u *saved_newval = NULL;
+ #endif
+! char *r = NULL;
+ int value_checked = FALSE;
+
+ if (options[opt_idx].var == NULL) /* don't set hidden option */
+***************
+*** 6100,6117 ****
+ * Handle string options that need some action to perform when changed.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char_u *
+ did_set_string_option(
+ int opt_idx, // index in options[] table
+ char_u **varp, // pointer to the option variable
+ int new_value_alloced, // new value was allocated
+ char_u *oldval, // previous value of the option
+! char_u *errbuf, // buffer for errors, or NULL
+ int opt_flags, // OPT_LOCAL and/or OPT_GLOBAL
+ int *value_checked) // value was checked to be save, no
+ // need to set P_INSECURE
+ {
+! char_u *errmsg = NULL;
+ char_u *s, *p;
+ int did_chartab = FALSE;
+ char_u **gvarp;
+--- 6096,6113 ----
+ * Handle string options that need some action to perform when changed.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char *
+ did_set_string_option(
+ int opt_idx, // index in options[] table
+ char_u **varp, // pointer to the option variable
+ int new_value_alloced, // new value was allocated
+ char_u *oldval, // previous value of the option
+! char *errbuf, // buffer for errors, or NULL
+ int opt_flags, // OPT_LOCAL and/or OPT_GLOBAL
+ int *value_checked) // value was checked to be save, no
+ // need to set P_INSECURE
+ {
+! char *errmsg = NULL;
+ char_u *s, *p;
+ int did_chartab = FALSE;
+ char_u **gvarp;
+***************
+*** 6155,6169 ****
+ else if (varp == &T_NAME)
+ {
+ if (T_NAME[0] == NUL)
+! errmsg = (char_u *)N_("E529: Cannot set 'term' to empty string");
+ #ifdef FEAT_GUI
+ if (gui.in_use)
+! errmsg = (char_u *)N_("E530: Cannot change term in GUI");
+ else if (term_is_gui(T_NAME))
+! errmsg = (char_u *)N_("E531: Use \":gui\" to start the GUI");
+ #endif
+ else if (set_termname(T_NAME) == FAIL)
+! errmsg = (char_u *)N_("E522: Not found in termcap");
+ else
+ {
+ /* Screen colors may have changed. */
+--- 6151,6165 ----
+ else if (varp == &T_NAME)
+ {
+ if (T_NAME[0] == NUL)
+! errmsg = N_("E529: Cannot set 'term' to empty string");
+ #ifdef FEAT_GUI
+ if (gui.in_use)
+! errmsg = N_("E530: Cannot change term in GUI");
+ else if (term_is_gui(T_NAME))
+! errmsg = N_("E531: Use \":gui\" to start the GUI");
+ #endif
+ else if (set_termname(T_NAME) == FAIL)
+! errmsg = N_("E522: Not found in termcap");
+ else
+ {
+ /* Screen colors may have changed. */
+***************
+*** 6211,6217 ****
+ {
+ if (STRCMP(*p_bex == '.' ? p_bex + 1 : p_bex,
+ *p_pm == '.' ? p_pm + 1 : p_pm) == 0)
+! errmsg = (char_u *)N_("E589: 'backupext' and 'patchmode' are equal");
+ }
+ #ifdef FEAT_LINEBREAK
+ /* 'breakindentopt' */
+--- 6207,6213 ----
+ {
+ if (STRCMP(*p_bex == '.' ? p_bex + 1 : p_bex,
+ *p_pm == '.' ? p_pm + 1 : p_pm) == 0)
+! errmsg = N_("E589: 'backupext' and 'patchmode' are equal");
+ }
+ #ifdef FEAT_LINEBREAK
+ /* 'breakindentopt' */
+***************
+*** 6328,6336 ****
+ if (check_opt_strings(p_ambw, p_ambw_values, FALSE) != OK)
+ errmsg = e_invarg;
+ else if (set_chars_option(&p_lcs) != NULL)
+! errmsg = (char_u *)_("E834: Conflicts with value of 'listchars'");
+ else if (set_chars_option(&p_fcs) != NULL)
+! errmsg = (char_u *)_("E835: Conflicts with value of 'fillchars'");
+ }
+ #endif
+
+--- 6324,6332 ----
+ if (check_opt_strings(p_ambw, p_ambw_values, FALSE) != OK)
+ errmsg = e_invarg;
+ else if (set_chars_option(&p_lcs) != NULL)
+! errmsg = _("E834: Conflicts with value of 'listchars'");
+ else if (set_chars_option(&p_fcs) != NULL)
+! errmsg = _("E835: Conflicts with value of 'fillchars'");
+ }
+ #endif
+
+***************
+*** 6454,6460 ****
+ {
+ /* GTK+ 2 uses only a single encoding, and that is UTF-8. */
+ if (STRCMP(p_tenc, "utf-8") != 0)
+! errmsg = (char_u *)N_("E617: Cannot be changed in the GTK+ 2 GUI");
+ }
+ # endif
+
+--- 6450,6456 ----
+ {
+ /* GTK+ 2 uses only a single encoding, and that is UTF-8. */
+ if (STRCMP(p_tenc, "utf-8") != 0)
+! errmsg = N_("E617: Cannot be changed in the GTK+ 2 GUI");
+ }
+ # endif
+
+***************
+*** 6475,6481 ****
+ if (convert_setup(&input_conv, p_tenc, p_enc) == FAIL
+ || convert_setup(&output_conv, p_enc, p_tenc) == FAIL)
+ {
+! EMSG3(_("E950: Cannot convert between %s and %s"),
+ p_tenc, p_enc);
+ errmsg = e_invarg;
+ }
+--- 6471,6477 ----
+ if (convert_setup(&input_conv, p_tenc, p_enc) == FAIL
+ || convert_setup(&output_conv, p_enc, p_tenc) == FAIL)
+ {
+! semsg(_("E950: Cannot convert between %s and %s"),
+ p_tenc, p_enc);
+ errmsg = e_invarg;
+ }
+***************
+*** 6748,6756 ****
+ ++s;
+ }
+ if (*s++ == NUL)
+! errmsg = (char_u *)N_("E524: Missing colon");
+ else if (*s == ',' || *s == NUL)
+! errmsg = (char_u *)N_("E525: Zero length string");
+ if (errmsg != NULL)
+ break;
+ while (*s && *s != ',')
+--- 6744,6752 ----
+ ++s;
+ }
+ if (*s++ == NUL)
+! errmsg = N_("E524: Missing colon");
+ else if (*s == ',' || *s == NUL)
+! errmsg = N_("E525: Zero length string");
+ if (errmsg != NULL)
+ break;
+ while (*s && *s != ',')
+***************
+*** 6830,6842 ****
+ {
+ if (errbuf != NULL)
+ {
+! sprintf((char *)errbuf,
+! _("E526: Missing number after <%s>"),
+ transchar_byte(*(s - 1)));
+ errmsg = errbuf;
+ }
+ else
+! errmsg = (char_u *)"";
+ break;
+ }
+ }
+--- 6826,6837 ----
+ {
+ if (errbuf != NULL)
+ {
+! sprintf(errbuf, _("E526: Missing number after <%s>"),
+ transchar_byte(*(s - 1)));
+ errmsg = errbuf;
+ }
+ else
+! errmsg = "";
+ break;
+ }
+ }
+***************
+*** 6845,6858 ****
+ else if (*s)
+ {
+ if (errbuf != NULL)
+! errmsg = (char_u *)N_("E527: Missing comma");
+ else
+! errmsg = (char_u *)"";
+ break;
+ }
+ }
+ if (*p_viminfo && errmsg == NULL && get_viminfo_parameter('\'') < 0)
+! errmsg = (char_u *)N_("E528: Must specify a ' value");
+ }
+ #endif /* FEAT_VIMINFO */
+
+--- 6840,6853 ----
+ else if (*s)
+ {
+ if (errbuf != NULL)
+! errmsg = N_("E527: Missing comma");
+ else
+! errmsg = "";
+ break;
+ }
+ }
+ if (*p_viminfo && errmsg == NULL && get_viminfo_parameter('\'') < 0)
+! errmsg = N_("E528: Must specify a ' value");
+ }
+ #endif /* FEAT_VIMINFO */
+
+***************
+*** 6917,6923 ****
+ for (s = p_sbr; *s; )
+ {
+ if (ptr2cells(s) != 1)
+! errmsg = (char_u *)N_("E595: contains unprintable or wide character");
+ MB_PTR_ADV(s);
+ }
+ }
+--- 6912,6918 ----
+ for (s = p_sbr; *s; )
+ {
+ if (ptr2cells(s) != 1)
+! errmsg = N_("E595: contains unprintable or wide character");
+ MB_PTR_ADV(s);
+ }
+ }
+***************
+*** 6961,6967 ****
+ }
+ else
+ # endif
+! errmsg = (char_u *)N_("E596: Invalid font(s)");
+ }
+ }
+ redraw_gui_only = TRUE;
+--- 6956,6962 ----
+ }
+ else
+ # endif
+! errmsg = N_("E596: Invalid font(s)");
+ }
+ }
+ redraw_gui_only = TRUE;
+***************
+*** 6980,6988 ****
+ else if (varp == &p_guifontwide)
+ {
+ if (STRCMP(p_guifontwide, "*") == 0)
+! errmsg = (char_u *)N_("E533: can't select wide font");
+ else if (gui_get_wide_font() == FAIL)
+! errmsg = (char_u *)N_("E534: Invalid wide font");
+ redraw_gui_only = TRUE;
+ }
+ # endif
+--- 6975,6983 ----
+ else if (varp == &p_guifontwide)
+ {
+ if (STRCMP(p_guifontwide, "*") == 0)
+! errmsg = N_("E533: can't select wide font");
+ else if (gui_get_wide_font() == FAIL)
+! errmsg = N_("E534: Invalid wide font");
+ redraw_gui_only = TRUE;
+ }
+ # endif
+***************
+*** 7285,7291 ****
+ errmsg = errbuf;
+ }
+ else
+! errmsg = (char_u *)"";
+ break;
+ }
+ }
+--- 7280,7286 ----
+ errmsg = errbuf;
+ }
+ else
+! errmsg = "";
+ break;
+ }
+ }
+***************
+*** 7445,7451 ****
+ {
+ p = vim_strchr(*varp, ',');
+ if (p == NULL)
+! errmsg = (char_u *)N_("E536: comma required");
+ else if (p == *varp || p[1] == NUL)
+ errmsg = e_invarg;
+ else if (foldmethodIsMarker(curwin))
+--- 7440,7446 ----
+ {
+ p = vim_strchr(*varp, ',');
+ if (p == NULL)
+! errmsg = N_("E536: comma required");
+ else if (p == *varp || p[1] == NUL)
+ errmsg = e_invarg;
+ else if (foldmethodIsMarker(curwin))
+***************
+*** 7455,7461 ****
+ else if (gvarp == &p_cms)
+ {
+ if (**varp != NUL && strstr((char *)*varp, "%s") == NULL)
+! errmsg = (char_u *)N_("E537: 'commentstring' must be empty or contain %s");
+ }
+ /* 'foldopen' */
+ else if (varp == &p_fdo)
+--- 7450,7456 ----
+ else if (gvarp == &p_cms)
+ {
+ if (**varp != NUL && strstr((char *)*varp, "%s") == NULL)
+! errmsg = N_("E537: 'commentstring' must be empty or contain %s");
+ }
+ /* 'foldopen' */
+ else if (varp == &p_fdo)
+***************
+*** 7878,7884 ****
+ * Handle setting 'colorcolumn' or 'textwidth' in window "wp".
+ * Returns error message, NULL if it's OK.
+ */
+! char_u *
+ check_colorcolumn(win_T *wp)
+ {
+ char_u *s;
+--- 7873,7879 ----
+ * Handle setting 'colorcolumn' or 'textwidth' in window "wp".
+ * Returns error message, NULL if it's OK.
+ */
+! char *
+ check_colorcolumn(win_T *wp)
+ {
+ char_u *s;
+***************
+*** 7949,7955 ****
+ * Handle setting 'listchars' or 'fillchars'.
+ * Returns error message, NULL if it's OK.
+ */
+! static char_u *
+ set_chars_option(char_u **varp)
+ {
+ int round, i, len, entries;
+--- 7944,7950 ----
+ * Handle setting 'listchars' or 'fillchars'.
+ * Returns error message, NULL if it's OK.
+ */
+! static char *
+ set_chars_option(char_u **varp)
+ {
+ int round, i, len, entries;
+***************
+*** 8075,8086 ****
+ * Check validity of options with the 'statusline' format.
+ * Return error message or NULL.
+ */
+! char_u *
+ check_stl_option(char_u *s)
+ {
+ int itemcnt = 0;
+ int groupdepth = 0;
+! static char_u errbuf[80];
+
+ while (*s && itemcnt < STL_MAX_ITEM)
+ {
+--- 8070,8081 ----
+ * Check validity of options with the 'statusline' format.
+ * Return error message or NULL.
+ */
+! char *
+ check_stl_option(char_u *s)
+ {
+ int itemcnt = 0;
+ int groupdepth = 0;
+! static char errbuf[80];
+
+ while (*s && itemcnt < STL_MAX_ITEM)
+ {
+***************
+*** 8131,8143 ****
+ while (*s != '}' && *s)
+ s++;
+ if (*s != '}')
+! return (char_u *)N_("E540: Unclosed expression sequence");
+ }
+ }
+ if (itemcnt >= STL_MAX_ITEM)
+! return (char_u *)N_("E541: too many items");
+ if (groupdepth != 0)
+! return (char_u *)N_("E542: unbalanced groups");
+ return NULL;
+ }
+ #endif
+--- 8126,8138 ----
+ while (*s != '}' && *s)
+ s++;
+ if (*s != '}')
+! return N_("E540: Unclosed expression sequence");
+ }
+ }
+ if (itemcnt >= STL_MAX_ITEM)
+! return N_("E541: too many items");
+ if (groupdepth != 0)
+! return N_("E542: unbalanced groups");
+ return NULL;
+ }
+ #endif
+***************
+*** 8145,8152 ****
+ #ifdef FEAT_CLIPBOARD
+ /*
+ * Extract the items in the 'clipboard' option and set global values.
+ */
+! static char_u *
+ check_clipboard_option(void)
+ {
+ int new_unnamed = 0;
+--- 8140,8148 ----
+ #ifdef FEAT_CLIPBOARD
+ /*
+ * Extract the items in the 'clipboard' option and set global values.
++ * Return an error message or NULL for success.
+ */
+! static char *
+ check_clipboard_option(void)
+ {
+ int new_unnamed = 0;
+***************
+*** 8155,8161 ****
+ int new_autoselectml = FALSE;
+ int new_html = FALSE;
+ regprog_T *new_exclude_prog = NULL;
+! char_u *errmsg = NULL;
+ char_u *p;
+
+ for (p = p_cb; *p != NUL; )
+--- 8151,8157 ----
+ int new_autoselectml = FALSE;
+ int new_html = FALSE;
+ regprog_T *new_exclude_prog = NULL;
+! char *errmsg = NULL;
+ char_u *p;
+
+ for (p = p_cb; *p != NUL; )
+***************
+*** 8235,8244 ****
+ #endif
+
+ #ifdef FEAT_SPELL
+! static char_u *
+ did_set_spell_option(int is_spellfile)
+ {
+! char_u *errmsg = NULL;
+ win_T *wp;
+ int l;
+
+--- 8231,8244 ----
+ #endif
+
+ #ifdef FEAT_SPELL
+! /*
+! * Handle side effects of setting 'spell'.
+! * Return an error message or NULL for success.
+! */
+! static char *
+ did_set_spell_option(int is_spellfile)
+ {
+! char *errmsg = NULL;
+ win_T *wp;
+ int l;
+
+***************
+*** 8266,8272 ****
+ * Set curbuf->b_cap_prog to the regexp program for 'spellcapcheck'.
+ * Return error message when failed, NULL when OK.
+ */
+! static char_u *
+ compile_cap_prog(synblock_T *synblock)
+ {
+ regprog_T *rp = synblock->b_cap_prog;
+--- 8266,8272 ----
+ * Set curbuf->b_cap_prog to the regexp program for 'spellcapcheck'.
+ * Return error message when failed, NULL when OK.
+ */
+! static char *
+ compile_cap_prog(synblock_T *synblock)
+ {
+ regprog_T *rp = synblock->b_cap_prog;
+***************
+*** 8353,8359 ****
+ * Set the value of a boolean option, and take care of side effects.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char_u *
+ set_bool_option(
+ int opt_idx, /* index in options[] table */
+ char_u *varp, /* pointer to the option variable */
+--- 8353,8359 ----
+ * Set the value of a boolean option, and take care of side effects.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char *
+ set_bool_option(
+ int opt_idx, /* index in options[] table */
+ char_u *varp, /* pointer to the option variable */
+***************
+*** 8471,8477 ****
+ && curbuf->b_term != NULL && !term_is_finished(curbuf))))
+ {
+ curbuf->b_p_ma = FALSE;
+! return (char_u *)N_("E946: Cannot make a terminal with running job modifiable");
+ }
+ # endif
+ # ifdef FEAT_TITLE
+--- 8471,8477 ----
+ && curbuf->b_term != NULL && !term_is_finished(curbuf))))
+ {
+ curbuf->b_p_ma = FALSE;
+! return N_("E946: Cannot make a terminal with running job modifiable");
+ }
+ # endif
+ # ifdef FEAT_TITLE
+***************
+*** 8607,8613 ****
+ if (win->w_p_pvw && win != curwin)
+ {
+ curwin->w_p_pvw = FALSE;
+! return (char_u *)N_("E590: A preview window already exists");
+ }
+ }
+ }
+--- 8607,8613 ----
+ if (win->w_p_pvw && win != curwin)
+ {
+ curwin->w_p_pvw = FALSE;
+! return N_("E590: A preview window already exists");
+ }
+ }
+ }
+***************
+*** 8765,8773 ****
+ {
+ if (curwin->w_p_spell)
+ {
+! char_u *errmsg = did_set_spelllang(curwin);
+ if (errmsg != NULL)
+! EMSG(_(errmsg));
+ }
+ }
+ #endif
+--- 8765,8774 ----
+ {
+ if (curwin->w_p_spell)
+ {
+! char *errmsg = did_set_spelllang(curwin);
+!
+ if (errmsg != NULL)
+! emsg(_(errmsg));
+ }
+ }
+ #endif
+***************
+*** 8989,9005 ****
+ * Set the value of a number option, and take care of side effects.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char_u *
+ set_num_option(
+ int opt_idx, /* index in options[] table */
+ char_u *varp, /* pointer to the option variable */
+ long value, /* new value */
+! char_u *errbuf, /* buffer for error messages */
+ size_t errbuflen, /* length of "errbuf" */
+ int opt_flags) /* OPT_LOCAL, OPT_GLOBAL and
+ OPT_MODELINE */
+ {
+! char_u *errmsg = NULL;
+ long old_value = *(long *)varp;
+ long old_Rows = Rows; /* remember old Rows */
+ long old_Columns = Columns; /* remember old Columns */
+--- 8990,9006 ----
+ * Set the value of a number option, and take care of side effects.
+ * Returns NULL for success, or an error message for an error.
+ */
+! static char *
+ set_num_option(
+ int opt_idx, /* index in options[] table */
+ char_u *varp, /* pointer to the option variable */
+ long value, /* new value */
+! char *errbuf, /* buffer for error messages */
+ size_t errbuflen, /* length of "errbuf" */
+ int opt_flags) /* OPT_LOCAL, OPT_GLOBAL and
+ OPT_MODELINE */
+ {
+! char *errmsg = NULL;
+ long old_value = *(long *)varp;
+ long old_Rows = Rows; /* remember old Rows */
+ long old_Columns = Columns; /* remember old Columns */
+***************
+*** 9937,9943 ****
+ *
+ * Returns NULL on success or error message on error.
+ */
+! char_u *
+ set_option_value(
+ char_u *name,
+ long number,
+--- 9938,9944 ----
+ *
+ * Returns NULL on success or error message on error.
+ */
+! char *
+ set_option_value(
+ char_u *name,
+ long number,
+***************
+*** 9975,9981 ****
+ return NULL;
+ }
+
+! EMSG2(_("E355: Unknown option: %s"), name);
+ }
+ else
+ {
+--- 9976,9982 ----
+ return NULL;
+ }
+
+! semsg(_("E355: Unknown option: %s"), name);
+ }
+ else
+ {
+***************
+*** 9984,9990 ****
+ /* Disallow changing some options in the sandbox */
+ if (sandbox > 0 && (flags & P_SECURE))
+ {
+! EMSG(_(e_sandbox));
+ return NULL;
+ }
+ #endif
+--- 9985,9991 ----
+ /* Disallow changing some options in the sandbox */
+ if (sandbox > 0 && (flags & P_SECURE))
+ {
+! emsg(_(e_sandbox));
+ return NULL;
+ }
+ #endif
+***************
+*** 10008,10014 ****
+ /* There's another character after zeros or the string
+ * is empty. In both cases, we are trying to set a
+ * num option using a string. */
+! EMSG3(_("E521: Number required: &%s = '%s'"),
+ name, string);
+ return NULL; /* do nothing as we hit an error */
+
+--- 10009,10015 ----
+ /* There's another character after zeros or the string
+ * is empty. In both cases, we are trying to set a
+ * num option using a string. */
+! semsg(_("E521: Number required: &%s = '%s'"),
+ name, string);
+ return NULL; /* do nothing as we hit an error */
+
+***************
+*** 11086,11092 ****
+ case PV_VSTS: return (char_u *)&(curbuf->b_p_vsts);
+ case PV_VTS: return (char_u *)&(curbuf->b_p_vts);
+ #endif
+! default: IEMSG(_("E356: get_varp ERROR"));
+ }
+ /* always return a valid pointer to avoid a crash! */
+ return (char_u *)&(curbuf->b_p_wm);
+--- 11087,11093 ----
+ case PV_VSTS: return (char_u *)&(curbuf->b_p_vsts);
+ case PV_VTS: return (char_u *)&(curbuf->b_p_vts);
+ #endif
+! default: iemsg(_("E356: get_varp ERROR"));
+ }
+ /* always return a valid pointer to avoid a crash! */
+ return (char_u *)&(curbuf->b_p_wm);
+***************
+*** 12283,12289 ****
+ }
+ if (to == NUL)
+ {
+! EMSG2(_("E357: 'langmap': Matching character missing for %s"),
+ transchar(from));
+ return;
+ }
+--- 12284,12290 ----
+ }
+ if (to == NUL)
+ {
+! semsg(_("E357: 'langmap': Matching character missing for %s"),
+ transchar(from));
+ return;
+ }
+***************
+*** 12307,12313 ****
+ {
+ if (p[0] != ',')
+ {
+! EMSG2(_("E358: 'langmap': Extra characters after semicolon: %s"), p);
+ return;
+ }
+ ++p;
+--- 12308,12314 ----
+ {
+ if (p[0] != ',')
+ {
+! semsg(_("E358: 'langmap': Extra characters after semicolon: %s"), p);
+ return;
+ }
+ ++p;
+***************
+*** 12877,12885 ****
+ if (strtol((char *)cp, (char **)&end, 10) <= 0)
+ {
+ if (cp != end)
+! EMSG(_(e_positive));
+ else
+! EMSG(_(e_invarg));
+ return FALSE;
+ }
+ }
+--- 12878,12886 ----
+ if (strtol((char *)cp, (char **)&end, 10) <= 0)
+ {
+ if (cp != end)
+! emsg(_(e_positive));
+ else
+! emsg(_(e_invarg));
+ return FALSE;
+ }
+ }
+***************
+*** 12891,12897 ****
+ ++valcount;
+ continue;
+ }
+! EMSG(_(e_invarg));
+ return FALSE;
+ }
+
+--- 12892,12898 ----
+ ++valcount;
+ continue;
+ }
+! emsg(_(e_invarg));
+ return FALSE;
+ }
+
+*** ../vim-8.1.0742/src/os_amiga.c 2018-11-16 16:21:01.641310033 +0100
+--- src/os_amiga.c 2019-01-13 19:56:11.854115310 +0100
+***************
+*** 963,969 ****
+ int
+ mch_screenmode(char_u *arg)
+ {
+! EMSG(_(e_screenmode));
+ return FAIL;
+ }
+
+--- 963,969 ----
+ int
+ mch_screenmode(char_u *arg)
+ {
+! emsg(_(e_screenmode));
+ return FAIL;
+ }
+
+***************
+*** 1189,1195 ****
+ if (close_win)
+ {
+ /* if Vim opened a window: Executing a shell may cause crashes */
+! EMSG(_("E360: Cannot execute shell with -f option"));
+ return -1;
+ }
+
+--- 1189,1195 ----
+ if (close_win)
+ {
+ /* if Vim opened a window: Executing a shell may cause crashes */
+! emsg(_("E360: Cannot execute shell with -f option"));
+ return -1;
+ }
+
+***************
+*** 1517,1527 ****
+ matches = gap->ga_len - start_len;
+
+ if (Result == ERROR_BUFFER_OVERFLOW)
+! EMSG(_("ANCHOR_BUF_SIZE too small."));
+ else if (matches == 0 && Result != ERROR_OBJECT_NOT_FOUND
+ && Result != ERROR_DEVICE_NOT_MOUNTED
+ && Result != ERROR_NO_MORE_ENTRIES)
+! EMSG(_("I/O ERROR"));
+
+ /*
+ * Sort the files for this pattern.
+--- 1517,1527 ----
+ matches = gap->ga_len - start_len;
+
+ if (Result == ERROR_BUFFER_OVERFLOW)
+! emsg(_("ANCHOR_BUF_SIZE too small."));
+ else if (matches == 0 && Result != ERROR_OBJECT_NOT_FOUND
+ && Result != ERROR_DEVICE_NOT_MOUNTED
+ && Result != ERROR_NO_MORE_ENTRIES)
+! emsg(_("I/O ERROR"));
+
+ /*
+ * Sort the files for this pattern.
+*** ../vim-8.1.0742/src/os_mswin.c 2018-12-18 21:56:25.084495836 +0100
+--- src/os_mswin.c 2019-01-13 19:56:15.186087048 +0100
+***************
+*** 776,782 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg((char_u *)"chdir(%s)", path);
+ verbose_leave();
+ }
+ if (isalpha(path[0]) && path[1] == ':') /* has a drive name */
+--- 776,782 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg("chdir(%s)", path);
+ verbose_leave();
+ }
+ if (isalpha(path[0]) && path[1] == ':') /* has a drive name */
+***************
+*** 841,847 ****
+ int
+ mch_screenmode(char_u *arg UNUSED)
+ {
+! EMSG(_(e_screenmode));
+ return FAIL;
+ }
+
+--- 841,847 ----
+ int
+ mch_screenmode(char_u *arg UNUSED)
+ {
+! emsg(_(e_screenmode));
+ return FAIL;
+ }
+
+***************
+*** 1004,1010 ****
+
+ if (!fRunTimeLinkSuccess)
+ {
+! EMSG2(_(e_libcall), funcname);
+ return FAIL;
+ }
+
+--- 1004,1010 ----
+
+ if (!fRunTimeLinkSuccess)
+ {
+! semsg(_(e_libcall), funcname);
+ return FAIL;
+ }
+
+***************
+*** 1524,1530 ****
+
+ if (prt_dlg.hDC == NULL)
+ {
+! EMSG(_("E237: Printer selection failed"));
+ mch_print_cleanup();
+ return FALSE;
+ }
+--- 1524,1530 ----
+
+ if (prt_dlg.hDC == NULL)
+ {
+! emsg(_("E237: Printer selection failed"));
+ mch_print_cleanup();
+ return FALSE;
+ }
+***************
+*** 1601,1607 ****
+ vim_memset(&fLogFont, 0, sizeof(fLogFont));
+ if (get_logfont(&fLogFont, p_pfn, prt_dlg.hDC, TRUE) == FAIL)
+ {
+! EMSG2(_("E613: Unknown printer font: %s"), p_pfn);
+ mch_print_cleanup();
+ return FALSE;
+ }
+--- 1601,1607 ----
+ vim_memset(&fLogFont, 0, sizeof(fLogFont));
+ if (get_logfont(&fLogFont, p_pfn, prt_dlg.hDC, TRUE) == FAIL)
+ {
+! semsg(_("E613: Unknown printer font: %s"), p_pfn);
+ mch_print_cleanup();
+ return FALSE;
+ }
+***************
+*** 1662,1668 ****
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL, err, 0, (LPTSTR)(&buf), 0, NULL);
+! EMSG2(_("E238: Print error: %s"),
+ buf == NULL ? (char_u *)_("Unknown") : buf);
+ LocalFree((LPVOID)(buf));
+ }
+--- 1662,1668 ----
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL, err, 0, (LPTSTR)(&buf), 0, NULL);
+! semsg(_("E238: Print error: %s"),
+ buf == NULL ? (char_u *)_("Unknown") : buf);
+ LocalFree((LPVOID)(buf));
+ }
+***************
+*** 2504,2510 ****
+ if (target == 0)
+ {
+ if (!silent)
+! EMSG2(_(e_noserver), name);
+ return -1;
+ }
+
+--- 2504,2510 ----
+ if (target == 0)
+ {
+ if (!silent)
+! semsg(_(e_noserver), name);
+ return -1;
+ }
+
+***************
+*** 3070,3078 ****
+ }
+ if (cp->name == NULL && verbose)
+ {
+! vim_snprintf((char *)IObuff, IOSIZE,
+! _("E244: Illegal charset name \"%s\" in font name \"%s\""), p, name);
+! EMSG(IObuff);
+ break;
+ }
+ break;
+--- 3070,3076 ----
+ }
+ if (cp->name == NULL && verbose)
+ {
+! semsg(_("E244: Illegal charset name \"%s\" in font name \"%s\""), p, name);
+ break;
+ }
+ break;
+***************
+*** 3090,3110 ****
+ }
+ if (qp->name == NULL && verbose)
+ {
+! vim_snprintf((char *)IObuff, IOSIZE,
+! _("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name);
+! EMSG(IObuff);
+ break;
+ }
+ break;
+ }
+ default:
+ if (verbose)
+! {
+! vim_snprintf((char *)IObuff, IOSIZE,
+! _("E245: Illegal char '%c' in font name \"%s\""),
+! p[-1], name);
+! EMSG(IObuff);
+! }
+ goto theend;
+ }
+ while (*p == ':')
+--- 3088,3101 ----
+ }
+ if (qp->name == NULL && verbose)
+ {
+! semsg(_("E244: Illegal quality name \"%s\" in font name \"%s\""), p, name);
+ break;
+ }
+ break;
+ }
+ default:
+ if (verbose)
+! semsg(_("E245: Illegal char '%c' in font name \"%s\""), p[-1], name);
+ goto theend;
+ }
+ while (*p == ':')
+*** ../vim-8.1.0742/src/os_unix.c 2018-12-29 22:28:42.750699129 +0100
+--- src/os_unix.c 2019-01-13 19:56:18.662057582 +0100
+***************
+*** 327,333 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg((char_u *)"chdir(%s)", path);
+ verbose_leave();
+ }
+ # ifdef VMS
+--- 327,333 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg("chdir(%s)", path);
+ verbose_leave();
+ }
+ # ifdef VMS
+***************
+*** 1004,1010 ****
+ * if (SETJMP(lc_jump_env) != 0)
+ * {
+ * mch_didjmp();
+! * EMSG("crash!");
+ * }
+ * else
+ * {
+--- 1004,1010 ----
+ * if (SETJMP(lc_jump_env) != 0)
+ * {
+ * mch_didjmp();
+! * emsg("crash!");
+ * }
+ * else
+ * {
+***************
+*** 1632,1638 ****
+ static void
+ xopen_message(long elapsed_msec)
+ {
+! smsg((char_u *)_("Opening the X display took %ld msec"), elapsed_msec);
+ }
+ # endif
+ #endif
+--- 1632,1638 ----
+ static void
+ xopen_message(long elapsed_msec)
+ {
+! smsg(_("Opening the X display took %ld msec"), elapsed_msec);
+ }
+ # endif
+ #endif
+***************
+*** 2670,2676 ****
+ #endif
+ l = mch_chdir((char *)olddir);
+ if (l != 0)
+! EMSG(_(e_prev_dir));
+ }
+
+ l = STRLEN(buf);
+--- 2670,2676 ----
+ #endif
+ l = mch_chdir((char *)olddir);
+ if (l != 0)
+! emsg(_(e_prev_dir));
+ }
+
+ l = STRLEN(buf);
+***************
+*** 3974,3980 ****
+ int
+ mch_screenmode(char_u *arg UNUSED)
+ {
+! EMSG(_(e_screenmode));
+ return FAIL;
+ }
+
+--- 3974,3980 ----
+ int
+ mch_screenmode(char_u *arg UNUSED)
+ {
+! emsg(_(e_screenmode));
+ return FAIL;
+ }
+
+***************
+*** 5454,5460 ****
+ fd_in[0] = mch_open((char *)fname, O_RDONLY, 0);
+ if (fd_in[0] < 0)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5454,5460 ----
+ fd_in[0] = mch_open((char *)fname, O_RDONLY, 0);
+ if (fd_in[0] < 0)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+***************
+*** 5472,5478 ****
+ fd_out[1] = mch_open((char *)fname, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd_out[1] < 0)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5472,5478 ----
+ fd_out[1] = mch_open((char *)fname, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd_out[1] < 0)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+***************
+*** 5486,5492 ****
+ fd_err[1] = mch_open((char *)fname, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ if (fd_err[1] < 0)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5486,5492 ----
+ fd_err[1] = mch_open((char *)fname, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+ if (fd_err[1] < 0)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+***************
+*** 6509,6515 ****
+ */
+ if ((tempname = vim_tempname('o', FALSE)) == NULL)
+ {
+! EMSG(_(e_notmp));
+ return FAIL;
+ }
+
+--- 6509,6515 ----
+ */
+ if ((tempname = vim_tempname('o', FALSE)) == NULL)
+ {
+! emsg(_(e_notmp));
+ return FAIL;
+ }
+
+***************
+*** 6763,6769 ****
+ if (i != (int)len)
+ {
+ /* unexpected read error */
+! EMSG2(_(e_notread), tempname);
+ vim_free(tempname);
+ vim_free(buffer);
+ return FAIL;
+--- 6763,6769 ----
+ if (i != (int)len)
+ {
+ /* unexpected read error */
+! semsg(_(e_notread), tempname);
+ vim_free(tempname);
+ vim_free(buffer);
+ return FAIL;
+***************
+*** 7347,7353 ****
+ /* "dlerr" must be used before dlclose() */
+ dlerr = (char *)dlerror();
+ if (dlerr != NULL)
+! EMSG2(_("dlerror = \"%s\""), dlerr);
+ }
+ # else
+ hinstLib = shl_load((const char*)libname, BIND_IMMEDIATE|BIND_VERBOSE, 0L);
+--- 7347,7353 ----
+ /* "dlerr" must be used before dlclose() */
+ dlerr = (char *)dlerror();
+ if (dlerr != NULL)
+! semsg(_("dlerror = \"%s\""), dlerr);
+ }
+ # else
+ hinstLib = shl_load((const char*)libname, BIND_IMMEDIATE|BIND_VERBOSE, 0L);
+***************
+*** 7442,7448 ****
+ for (i = 0; signal_info[i].sig != -1; i++)
+ if (lc_signal == signal_info[i].sig)
+ break;
+! EMSG2("E368: got SIG%s in libcall()", signal_info[i].name);
+ }
+ # endif
+ # endif
+--- 7442,7448 ----
+ for (i = 0; signal_info[i].sig != -1; i++)
+ if (lc_signal == signal_info[i].sig)
+ break;
+! semsg("E368: got SIG%s in libcall()", signal_info[i].name);
+ }
+ # endif
+ # endif
+***************
+*** 7450,7456 ****
+ # if defined(USE_DLOPEN)
+ /* "dlerr" must be used before dlclose() */
+ if (dlerr != NULL)
+! EMSG2(_("dlerror = \"%s\""), dlerr);
+
+ /* Free the DLL module. */
+ (void)dlclose(hinstLib);
+--- 7450,7456 ----
+ # if defined(USE_DLOPEN)
+ /* "dlerr" must be used before dlclose() */
+ if (dlerr != NULL)
+! semsg(_("dlerror = \"%s\""), dlerr);
+
+ /* Free the DLL module. */
+ (void)dlclose(hinstLib);
+***************
+*** 7461,7467 ****
+
+ if (!success)
+ {
+! EMSG2(_(e_libcall), funcname);
+ return FAIL;
+ }
+
+--- 7461,7467 ----
+
+ if (!success)
+ {
+! semsg(_(e_libcall), funcname);
+ return FAIL;
+ }
+
+*** ../vim-8.1.0742/src/os_win32.c 2018-12-21 16:04:16.320437461 +0100
+--- src/os_win32.c 2019-01-13 19:56:23.834013773 +0100
+***************
+*** 633,639 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG2(_(e_loadlib), GETTEXT_DLL);
+ verbose_leave();
+ }
+ return 0;
+--- 633,639 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! semsg(_(e_loadlib), GETTEXT_DLL);
+ verbose_leave();
+ }
+ return 0;
+***************
+*** 648,654 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! EMSG2(_(e_loadfunc), libintl_entry[i].name);
+ verbose_leave();
+ }
+ return 0;
+--- 648,654 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! semsg(_(e_loadfunc), libintl_entry[i].name);
+ verbose_leave();
+ }
+ return 0;
+***************
+*** 5182,5188 ****
+ {
+ x = -1;
+ #ifdef FEAT_GUI_W32
+! EMSG(_("E371: Command not found"));
+ #endif
+ }
+
+--- 5182,5188 ----
+ {
+ x = -1;
+ #ifdef FEAT_GUI_W32
+! emsg(_("E371: Command not found"));
+ #endif
+ }
+
+***************
+*** 5260,5266 ****
+ #endif
+ )
+ {
+! smsg((char_u *)_("shell returned %d"), x);
+ msg_putchar('\n');
+ }
+ #ifdef FEAT_TITLE
+--- 5260,5266 ----
+ #endif
+ )
+ {
+! smsg(_("shell returned %d"), x);
+ msg_putchar('\n');
+ }
+ #ifdef FEAT_TITLE
+***************
+*** 5489,5495 ****
+ &saAttr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL);
+ if (ifd[0] == INVALID_HANDLE_VALUE)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5489,5495 ----
+ &saAttr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL);
+ if (ifd[0] == INVALID_HANDLE_VALUE)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+***************
+*** 5507,5513 ****
+ &saAttr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL);
+ if (ofd[1] == INVALID_HANDLE_VALUE)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5507,5513 ----
+ &saAttr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL);
+ if (ofd[1] == INVALID_HANDLE_VALUE)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+***************
+*** 5525,5531 ****
+ &saAttr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL);
+ if (efd[1] == INVALID_HANDLE_VALUE)
+ {
+! EMSG2(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+--- 5525,5531 ----
+ &saAttr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL);
+ if (efd[1] == INVALID_HANDLE_VALUE)
+ {
+! semsg(_(e_notopen), fname);
+ goto failed;
+ }
+ }
+*** ../vim-8.1.0742/src/popupmnu.c 2019-01-06 13:10:46.328499104 +0100
+--- src/popupmnu.c 2019-01-13 19:27:43.432613941 +0100
+***************
+*** 1199,1205 ****
+ // pum_size being zero.
+ if (pum_size <= 0)
+ {
+! EMSG(e_menuothermode);
+ return;
+ }
+
+--- 1199,1205 ----
+ // pum_size being zero.
+ if (pum_size <= 0)
+ {
+! emsg(e_menuothermode);
+ return;
+ }
+
+*** ../vim-8.1.0742/src/proto.h 2019-01-12 22:47:01.264088074 +0100
+--- src/proto.h 2019-01-13 19:27:43.432613941 +0100
+***************
+*** 108,132 ****
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg(char_u *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr(int, char_u *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr_keep(int, char_u *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! vim_snprintf_add(char *, size_t, char *, ...)
+ #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
+ __attribute__((format(printf, 3, 4)))
+ #endif
+--- 108,132 ----
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg(const char *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr(int, const char *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! smsg_attr_keep(int, const char *, ...);
+
+ int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! vim_snprintf_add(char *, size_t, const char *, ...)
+ #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
+ __attribute__((format(printf, 3, 4)))
+ #endif
+***************
+*** 136,149 ****
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! vim_snprintf(char *, size_t, char *, ...)
+ #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
+ __attribute__((format(printf, 3, 4)))
+ #endif
+ ;
+
+! int vim_vsnprintf(char *str, size_t str_m, char *fmt, va_list ap);
+! int vim_vsnprintf_typval(char *str, size_t str_m, char *fmt, va_list ap, typval_T *tvs);
+
+ # include "message.pro"
+ # include "misc1.pro"
+--- 136,149 ----
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+ # endif
+! vim_snprintf(char *, size_t, const char *, ...)
+ #ifdef USE_PRINTF_FORMAT_ATTRIBUTE
+ __attribute__((format(printf, 3, 4)))
+ #endif
+ ;
+
+! int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap);
+! int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, typval_T *tvs);
+
+ # include "message.pro"
+ # include "misc1.pro"
+*** ../vim-8.1.0742/src/proto/buffer.pro 2019-01-01 13:20:05.940711222 +0100
+--- src/proto/buffer.pro 2019-01-13 22:46:17.263080785 +0100
+***************
+*** 8,14 ****
+ void buf_freeall(buf_T *buf, int flags);
+ void goto_buffer(exarg_T *eap, int start, int dir, int count);
+ void handle_swap_exists(bufref_T *old_curbuf);
+! char_u *do_bufdel(int command, char_u *arg, int addr_count, int start_bnr, int end_bnr, int forceit);
+ int do_buffer(int action, int start, int dir, int count, int forceit);
+ void set_curbuf(buf_T *buf, int action);
+ void enter_buffer(buf_T *buf);
+--- 8,14 ----
+ void buf_freeall(buf_T *buf, int flags);
+ void goto_buffer(exarg_T *eap, int start, int dir, int count);
+ void handle_swap_exists(bufref_T *old_curbuf);
+! char *do_bufdel(int command, char_u *arg, int addr_count, int start_bnr, int end_bnr, int forceit);
+ int do_buffer(int action, int start, int dir, int count, int forceit);
+ void set_curbuf(buf_T *buf, int action);
+ void enter_buffer(buf_T *buf);
+*** ../vim-8.1.0742/src/proto/digraph.pro 2018-12-14 18:52:57.169528762 +0100
+--- src/proto/digraph.pro 2019-01-13 20:13:03.721965113 +0100
+***************
+*** 5,11 ****
+ int getdigraph(int char1, int char2, int meta_char);
+ void putdigraph(char_u *str);
+ void listdigraphs(int use_headers);
+! char_u *keymap_init(void);
+ void ex_loadkeymap(exarg_T *eap);
+ void keymap_clear(garray_T *kmap);
+ /* vim: set ft=c : */
+--- 5,11 ----
+ int getdigraph(int char1, int char2, int meta_char);
+ void putdigraph(char_u *str);
+ void listdigraphs(int use_headers);
+! char *keymap_init(void);
+ void ex_loadkeymap(exarg_T *eap);
+ void keymap_clear(garray_T *kmap);
+ /* vim: set ft=c : */
+*** ../vim-8.1.0742/src/proto/ex_docmd.pro 2018-10-02 16:23:55.323037143 +0200
+--- src/proto/ex_docmd.pro 2019-01-13 20:23:38.337025724 +0100
+***************
+*** 4,18 ****
+ int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags);
+ int getline_equal(char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int));
+ void *getline_cookie(char_u *(*fgetline)(int, void *, int), void *cookie);
+! int parse_command_modifiers(exarg_T *eap, char_u **errormsg, int skip_only);
+! int parse_cmd_address(exarg_T *eap, char_u **errormsg, int silent);
+ int checkforcmd(char_u **pp, char *cmd, int len);
+ int modifier_len(char_u *cmd);
+ int cmd_exists(char_u *name);
+ char_u *set_one_cmd_context(expand_T *xp, char_u *buff);
+ char_u *skip_range(char_u *cmd, int *ctx);
+ void ex_ni(exarg_T *eap);
+! int expand_filename(exarg_T *eap, char_u **cmdlinep, char_u **errormsgp);
+ void separate_nextcmd(exarg_T *eap);
+ int get_bad_opt(char_u *p, exarg_T *eap);
+ int ends_excmd(int c);
+--- 4,18 ----
+ int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags);
+ int getline_equal(char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int));
+ void *getline_cookie(char_u *(*fgetline)(int, void *, int), void *cookie);
+! int parse_command_modifiers(exarg_T *eap, char **errormsg, int skip_only);
+! int parse_cmd_address(exarg_T *eap, char **errormsg, int silent);
+ int checkforcmd(char_u **pp, char *cmd, int len);
+ int modifier_len(char_u *cmd);
+ int cmd_exists(char_u *name);
+ char_u *set_one_cmd_context(expand_T *xp, char_u *buff);
+ char_u *skip_range(char_u *cmd, int *ctx);
+ void ex_ni(exarg_T *eap);
+! int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp);
+ void separate_nextcmd(exarg_T *eap);
+ int get_bad_opt(char_u *p, exarg_T *eap);
+ int ends_excmd(int c);
+***************
+*** 61,67 ****
+ void exec_normal_cmd(char_u *cmd, int remap, int silent);
+ void exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop);
+ int find_cmdline_var(char_u *src, int *usedlen);
+! char_u *eval_vars(char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char_u **errormsg, int *escaped);
+ char_u *expand_sfile(char_u *arg);
+ int put_eol(FILE *fd);
+ int put_line(FILE *fd, char *s);
+--- 61,67 ----
+ void exec_normal_cmd(char_u *cmd, int remap, int silent);
+ void exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop);
+ int find_cmdline_var(char_u *src, int *usedlen);
+! char_u *eval_vars(char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char **errormsg, int *escaped);
+ char_u *expand_sfile(char_u *arg);
+ int put_eol(FILE *fd);
+ int put_line(FILE *fd, char *s);
+*** ../vim-8.1.0742/src/proto/ex_eval.pro 2018-05-17 13:52:34.000000000 +0200
+--- src/proto/ex_eval.pro 2019-01-13 22:53:40.539908765 +0100
+***************
+*** 7,13 ****
+ void free_global_msglist(void);
+ void do_errthrow(struct condstack *cstack, char_u *cmdname);
+ int do_intthrow(struct condstack *cstack);
+! char_u *get_exception_string(void *value, except_type_T type, char_u *cmdname, int *should_free);
+ void discard_current_exception(void);
+ void report_make_pending(int pending, void *value);
+ void report_resume_pending(int pending, void *value);
+--- 7,13 ----
+ void free_global_msglist(void);
+ void do_errthrow(struct condstack *cstack, char_u *cmdname);
+ int do_intthrow(struct condstack *cstack);
+! char *get_exception_string(void *value, except_type_T type, char_u *cmdname, int *should_free);
+ void discard_current_exception(void);
+ void report_make_pending(int pending, void *value);
+ void report_resume_pending(int pending, void *value);
+*** ../vim-8.1.0742/src/proto/ex_getln.pro 2018-12-18 21:56:25.084495836 +0100
+--- src/proto/ex_getln.pro 2019-01-13 22:59:13.405579368 +0100
+***************
+*** 4,10 ****
+ char_u *getcmdline_prompt(int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg);
+ int text_locked(void);
+ void text_locked_msg(void);
+! char_u *get_text_locked_msg(void);
+ int curbuf_locked(void);
+ int allbuf_locked(void);
+ char_u *getexline(int c, void *cookie, int indent);
+--- 4,10 ----
+ char_u *getcmdline_prompt(int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg);
+ int text_locked(void);
+ void text_locked_msg(void);
+! char *get_text_locked_msg(void);
+ int curbuf_locked(void);
+ int allbuf_locked(void);
+ char_u *getexline(int c, void *cookie, int indent);
+*** ../vim-8.1.0742/src/proto/hardcopy.pro 2018-09-13 17:26:31.091401618 +0200
+--- src/proto/hardcopy.pro 2019-01-13 20:18:29.391424616 +0100
+***************
+*** 1,6 ****
+ /* hardcopy.c */
+! char_u *parse_printoptions(void);
+! char_u *parse_printmbfont(void);
+ int prt_header_height(void);
+ int prt_use_number(void);
+ int prt_get_unit(int idx);
+--- 1,6 ----
+ /* hardcopy.c */
+! char *parse_printoptions(void);
+! char *parse_printmbfont(void);
+ int prt_header_height(void);
+ int prt_use_number(void);
+ int prt_get_unit(int idx);
+*** ../vim-8.1.0742/src/proto/mbyte.pro 2018-05-17 13:52:43.000000000 +0200
+--- src/proto/mbyte.pro 2019-01-13 20:12:33.254203719 +0100
+***************
+*** 1,6 ****
+ /* mbyte.c */
+ int enc_canon_props(char_u *name);
+! char_u *mb_init(void);
+ int bomb_size(void);
+ void remove_bom(char_u *s);
+ int mb_get_class(char_u *p);
+--- 1,6 ----
+ /* mbyte.c */
+ int enc_canon_props(char_u *name);
+! char *mb_init(void);
+ int bomb_size(void);
+ void remove_bom(char_u *s);
+ int mb_get_class(char_u *p);
+*** ../vim-8.1.0742/src/proto/message.pro 2018-05-17 13:52:45.000000000 +0200
+--- src/proto/message.pro 2019-01-13 19:44:21.016778813 +0100
+***************
+*** 10,22 ****
+ int emsg_not_now(void);
+ void ignore_error_for_testing(char_u *error);
+ void do_perror(char *msg);
+! int emsg(char_u *s);
+! int emsg2(char_u *s, char_u *a1);
+! int emsg3(char_u *s, char_u *a1, char_u *a2);
+! int emsgn(char_u *s, long n);
+! void iemsg(char_u *s);
+! void iemsg2(char_u *s, char_u *a1);
+! void iemsgn(char_u *s, long n);
+ void internal_error(char *where);
+ void emsg_invreg(int name);
+ char_u *msg_trunc_attr(char_u *s, int force, int attr);
+--- 10,19 ----
+ int emsg_not_now(void);
+ void ignore_error_for_testing(char_u *error);
+ void do_perror(char *msg);
+! int emsg(char *s);
+! int semsg(const char *s, ...);
+! void iemsg(char *s);
+! void siemsg(const char *s, ...);
+ void internal_error(char *where);
+ void emsg_invreg(int name);
+ char_u *msg_trunc_attr(char_u *s, int force, int attr);
+*** ../vim-8.1.0742/src/proto/misc2.pro 2019-01-11 16:15:57.891171040 +0100
+--- src/proto/misc2.pro 2019-01-13 20:17:06.076073097 +0100
+***************
+*** 87,93 ****
+ int same_directory(char_u *f1, char_u *f2);
+ int vim_chdirfile(char_u *fname, char *trigger_autocmd);
+ int vim_stat(const char *name, stat_T *stp);
+! char_u *parse_shape_opt(int what);
+ int get_shape_idx(int mouse);
+ void update_mouseshape(int shape_idx);
+ void *vim_findfile_init(char_u *path, char_u *filename, char_u *stopdirs, int level, int free_visited, int find_what, void *search_ctx_arg, int tagfile, char_u *rel_fname);
+--- 87,93 ----
+ int same_directory(char_u *f1, char_u *f2);
+ int vim_chdirfile(char_u *fname, char *trigger_autocmd);
+ int vim_stat(const char *name, stat_T *stp);
+! char *parse_shape_opt(int what);
+ int get_shape_idx(int mouse);
+ void update_mouseshape(int shape_idx);
+ void *vim_findfile_init(char_u *path, char_u *filename, char_u *stopdirs, int level, int free_visited, int find_what, void *search_ctx_arg, int tagfile, char_u *rel_fname);
+*** ../vim-8.1.0742/src/proto/option.pro 2018-11-22 03:07:30.948596188 +0100
+--- src/proto/option.pro 2019-01-13 23:05:48.282800884 +0100
+***************
+*** 21,33 ****
+ int set_term_option_alloced(char_u **p);
+ int was_set_insecurely(char_u *opt, int opt_flags);
+ void set_string_option_direct(char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid);
+! char_u *check_colorcolumn(win_T *wp);
+! char_u *check_stl_option(char_u *s);
+ void set_term_option_sctx_idx(char *name, int opt_idx);
+ int get_option_value(char_u *name, long *numval, char_u **stringval, int opt_flags);
+ int get_option_value_strict(char_u *name, long *numval, char_u **stringval, int opt_type, void *from);
+ char_u *option_iter_next(void **option, int opt_type);
+! char_u *set_option_value(char_u *name, long number, char_u *string, int opt_flags);
+ char_u *get_term_code(char_u *tname);
+ char_u *get_highlight_default(void);
+ char_u *get_encoding_default(void);
+--- 21,33 ----
+ int set_term_option_alloced(char_u **p);
+ int was_set_insecurely(char_u *opt, int opt_flags);
+ void set_string_option_direct(char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid);
+! char *check_colorcolumn(win_T *wp);
+! char *check_stl_option(char_u *s);
+ void set_term_option_sctx_idx(char *name, int opt_idx);
+ int get_option_value(char_u *name, long *numval, char_u **stringval, int opt_flags);
+ int get_option_value_strict(char_u *name, long *numval, char_u **stringval, int opt_type, void *from);
+ char_u *option_iter_next(void **option, int opt_type);
+! char *set_option_value(char_u *name, long number, char_u *string, int opt_flags);
+ char_u *get_term_code(char_u *tname);
+ char_u *get_highlight_default(void);
+ char_u *get_encoding_default(void);
+*** ../vim-8.1.0742/src/proto/spell.pro 2018-05-17 13:52:51.000000000 +0200
+--- src/proto/spell.pro 2019-01-13 23:02:21.472273624 +0100
+***************
+*** 10,16 ****
+ void count_common_word(slang_T *lp, char_u *word, int len, int count);
+ int byte_in_str(char_u *str, int n);
+ int init_syl_tab(slang_T *slang);
+! char_u *did_set_spelllang(win_T *wp);
+ int captype(char_u *word, char_u *end);
+ void spell_delete_wordlist(void);
+ void spell_free_all(void);
+--- 10,16 ----
+ void count_common_word(slang_T *lp, char_u *word, int len, int count);
+ int byte_in_str(char_u *str, int n);
+ int init_syl_tab(slang_T *slang);
+! char *did_set_spelllang(win_T *wp);
+ int captype(char_u *word, char_u *end);
+ void spell_delete_wordlist(void);
+ void spell_free_all(void);
+*** ../vim-8.1.0742/src/quickfix.c 2019-01-11 14:49:25.380107431 +0100
+--- src/quickfix.c 2019-01-13 23:12:52.299190164 +0100
+***************
+*** 239,255 ****
+ char_u *regpat,
+ efm_T *efminfo,
+ int idx,
+! int round,
+! char_u *errmsg)
+ {
+ char_u *srcptr;
+
+ if (efminfo->addr[idx])
+ {
+ // Each errorformat pattern can occur only once
+! sprintf((char *)errmsg,
+! _("E372: Too many %%%c in format string"), *efmpat);
+! EMSG(errmsg);
+ return NULL;
+ }
+ if ((idx && idx < 6
+--- 239,252 ----
+ char_u *regpat,
+ efm_T *efminfo,
+ int idx,
+! int round)
+ {
+ char_u *srcptr;
+
+ if (efminfo->addr[idx])
+ {
+ // Each errorformat pattern can occur only once
+! semsg(_("E372: Too many %%%c in format string"), *efmpat);
+ return NULL;
+ }
+ if ((idx && idx < 6
+***************
+*** 257,265 ****
+ || (idx == 6
+ && vim_strchr((char_u *)"OPQ", efminfo->prefix) == NULL))
+ {
+! sprintf((char *)errmsg,
+! _("E373: Unexpected %%%c in format string"), *efmpat);
+! EMSG(errmsg);
+ return NULL;
+ }
+ efminfo->addr[idx] = (char_u)++round;
+--- 254,260 ----
+ || (idx == 6
+ && vim_strchr((char_u *)"OPQ", efminfo->prefix) == NULL))
+ {
+! semsg(_("E373: Unexpected %%%c in format string"), *efmpat);
+ return NULL;
+ }
+ efminfo->addr[idx] = (char_u)++round;
+***************
+*** 316,323 ****
+ char_u **pefmp,
+ char_u *efm,
+ int len,
+! char_u *regpat,
+! char_u *errmsg)
+ {
+ char_u *efmp = *pefmp;
+
+--- 311,317 ----
+ char_u **pefmp,
+ char_u *efm,
+ int len,
+! char_u *regpat)
+ {
+ char_u *efmp = *pefmp;
+
+***************
+*** 335,341 ****
+ // skip ;
+ if (efmp == efm + len)
+ {
+! EMSG(_("E374: Missing ] in format string"));
+ return NULL;
+ }
+ }
+--- 329,335 ----
+ // skip ;
+ if (efmp == efm + len)
+ {
+! emsg(_("E374: Missing ] in format string"));
+ return NULL;
+ }
+ }
+***************
+*** 348,356 ****
+ else
+ {
+ // TODO: scanf()-like: %*ud, %*3c, %*f, ... ?
+! sprintf((char *)errmsg,
+! _("E375: Unsupported %%%c in format string"), *efmp);
+! EMSG(errmsg);
+ return NULL;
+ }
+
+--- 342,348 ----
+ else
+ {
+ // TODO: scanf()-like: %*ud, %*3c, %*f, ... ?
+! semsg(_("E375: Unsupported %%%c in format string"), *efmp);
+ return NULL;
+ }
+
+***************
+*** 363,369 ****
+ * Analyze/parse an errorformat prefix.
+ */
+ static char_u *
+! efm_analyze_prefix(char_u *efmp, efm_T *efminfo, char_u *errmsg)
+ {
+ if (vim_strchr((char_u *)"+-", *efmp) != NULL)
+ efminfo->flags = *efmp++;
+--- 355,361 ----
+ * Analyze/parse an errorformat prefix.
+ */
+ static char_u *
+! efm_analyze_prefix(char_u *efmp, efm_T *efminfo)
+ {
+ if (vim_strchr((char_u *)"+-", *efmp) != NULL)
+ efminfo->flags = *efmp++;
+***************
+*** 371,379 ****
+ efminfo->prefix = *efmp;
+ else
+ {
+! sprintf((char *)errmsg,
+! _("E376: Invalid %%%c in format string prefix"), *efmp);
+! EMSG(errmsg);
+ return NULL;
+ }
+
+--- 363,369 ----
+ efminfo->prefix = *efmp;
+ else
+ {
+! semsg(_("E376: Invalid %%%c in format string prefix"), *efmp);
+ return NULL;
+ }
+
+***************
+*** 391,398 ****
+ char_u *efm,
+ int len,
+ efm_T *fmt_ptr,
+! char_u *regpat,
+! char_u *errmsg)
+ {
+ char_u *ptr;
+ char_u *efmp;
+--- 381,387 ----
+ char_u *efm,
+ int len,
+ efm_T *fmt_ptr,
+! char_u *regpat)
+ {
+ char_u *ptr;
+ char_u *efmp;
+***************
+*** 413,420 ****
+ break;
+ if (idx < FMT_PATTERNS)
+ {
+! ptr = efmpat_to_regpat(efmp, ptr, fmt_ptr, idx, round,
+! errmsg);
+ if (ptr == NULL)
+ return FAIL;
+ round++;
+--- 402,408 ----
+ break;
+ if (idx < FMT_PATTERNS)
+ {
+! ptr = efmpat_to_regpat(efmp, ptr, fmt_ptr, idx, round);
+ if (ptr == NULL)
+ return FAIL;
+ round++;
+***************
+*** 422,428 ****
+ else if (*efmp == '*')
+ {
+ ++efmp;
+! ptr = scanf_fmt_to_regpat(&efmp, efm, len, ptr, errmsg);
+ if (ptr == NULL)
+ return FAIL;
+ }
+--- 410,416 ----
+ else if (*efmp == '*')
+ {
+ ++efmp;
+! ptr = scanf_fmt_to_regpat(&efmp, efm, len, ptr);
+ if (ptr == NULL)
+ return FAIL;
+ }
+***************
+*** 436,450 ****
+ {
+ // prefix is allowed only at the beginning of the errorformat
+ // option part
+! efmp = efm_analyze_prefix(efmp, fmt_ptr, errmsg);
+ if (efmp == NULL)
+ return FAIL;
+ }
+ else
+ {
+! sprintf((char *)errmsg,
+! _("E377: Invalid %%%c in format string"), *efmp);
+! EMSG(errmsg);
+ return FAIL;
+ }
+ }
+--- 424,436 ----
+ {
+ // prefix is allowed only at the beginning of the errorformat
+ // option part
+! efmp = efm_analyze_prefix(efmp, fmt_ptr);
+ if (efmp == NULL)
+ return FAIL;
+ }
+ else
+ {
+! semsg(_("E377: Invalid %%%c in format string"), *efmp);
+ return FAIL;
+ }
+ }
+***************
+*** 526,533 ****
+ static efm_T *
+ parse_efm_option(char_u *efm)
+ {
+- char_u *errmsg = NULL;
+- int errmsglen;
+ efm_T *fmt_ptr = NULL;
+ efm_T *fmt_first = NULL;
+ efm_T *fmt_last = NULL;
+--- 512,517 ----
+***************
+*** 535,545 ****
+ int len;
+ int sz;
+
+- errmsglen = CMDBUFFSIZE + 1;
+- errmsg = alloc_id(errmsglen, aid_qf_errmsg);
+- if (errmsg == NULL)
+- goto parse_efm_end;
+-
+ // Each part of the format string is copied and modified from errorformat
+ // to regex prog. Only a few % characters are allowed.
+
+--- 519,524 ----
+***************
+*** 563,569 ****
+ // Isolate one part in the 'errorformat' option
+ len = efm_option_part_len(efm);
+
+! if (efm_to_regpat(efm, len, fmt_ptr, fmtstr, errmsg) == FAIL)
+ goto parse_efm_error;
+ if ((fmt_ptr->prog = vim_regcomp(fmtstr, RE_MAGIC + RE_STRING)) == NULL)
+ goto parse_efm_error;
+--- 542,548 ----
+ // Isolate one part in the 'errorformat' option
+ len = efm_option_part_len(efm);
+
+! if (efm_to_regpat(efm, len, fmt_ptr, fmtstr) == FAIL)
+ goto parse_efm_error;
+ if ((fmt_ptr->prog = vim_regcomp(fmtstr, RE_MAGIC + RE_STRING)) == NULL)
+ goto parse_efm_error;
+***************
+*** 572,578 ****
+ }
+
+ if (fmt_first == NULL) // nothing found
+! EMSG(_("E378: 'errorformat' contains no pattern"));
+
+ goto parse_efm_end;
+
+--- 551,557 ----
+ }
+
+ if (fmt_first == NULL) // nothing found
+! emsg(_("E378: 'errorformat' contains no pattern"));
+
+ goto parse_efm_end;
+
+***************
+*** 581,587 ****
+
+ parse_efm_end:
+ vim_free(fmtstr);
+- vim_free(errmsg);
+
+ return fmt_first;
+ }
+--- 560,565 ----
+***************
+*** 1271,1277 ****
+ {
+ if (*fields->namebuf == NUL)
+ {
+! EMSG(_("E379: Missing or empty directory name"));
+ return QF_FAIL;
+ }
+ qfl->qf_directory =
+--- 1249,1255 ----
+ {
+ if (*fields->namebuf == NUL)
+ {
+! emsg(_("E379: Missing or empty directory name"));
+ return QF_FAIL;
+ }
+ qfl->qf_directory =
+***************
+*** 1568,1574 ****
+
+ if (efile != NULL && (pstate->fd = mch_fopen((char *)efile, "r")) == NULL)
+ {
+! EMSG2(_(e_openerrf), efile);
+ return FAIL;
+ }
+
+--- 1546,1552 ----
+
+ if (efile != NULL && (pstate->fd = mch_fopen((char *)efile, "r")) == NULL)
+ {
+! semsg(_(e_openerrf), efile);
+ return FAIL;
+ }
+
+***************
+*** 1751,1757 ****
+ retval = qfl->qf_count;
+ goto qf_init_end;
+ }
+! EMSG(_(e_readerrf));
+ error2:
+ if (!adding)
+ {
+--- 1729,1735 ----
+ retval = qfl->qf_count;
+ goto qf_init_end;
+ }
+! emsg(_(e_readerrf));
+ error2:
+ if (!adding)
+ {
+***************
+*** 1968,1974 ****
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ if (quickfix_busy < 0)
+ {
+! EMSG("quickfix_busy has become negative");
+ abort();
+ }
+ #endif
+--- 1946,1952 ----
+ #ifdef ABORT_ON_INTERNAL_ERROR
+ if (quickfix_busy < 0)
+ {
+! emsg("quickfix_busy has become negative");
+ abort();
+ }
+ #endif
+***************
+*** 1980,1986 ****
+ {
+ if (quickfix_busy != 0)
+ {
+! EMSGN("quickfix_busy not zero on exit: %ld", (long)quickfix_busy);
+ # ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ # endif
+--- 1958,1964 ----
+ {
+ if (quickfix_busy != 0)
+ {
+! semsg("quickfix_busy not zero on exit: %ld", (long)quickfix_busy);
+ # ifdef ABORT_ON_INTERNAL_ERROR
+ abort();
+ # endif
+***************
+*** 2635,2641 ****
+ qf_idx = prev_index;
+ if (err != NULL)
+ {
+! EMSG(_(err));
+ return NULL;
+ }
+ break;
+--- 2613,2619 ----
+ qf_idx = prev_index;
+ if (err != NULL)
+ {
+! emsg(_(err));
+ return NULL;
+ }
+ break;
+***************
+*** 3041,3054 ****
+ // present.
+ if (qfl_type == QFLT_LOCATION && !win_valid_any_tab(oldwin))
+ {
+! EMSG(_("E924: Current window was closed"));
+ *opened_window = FALSE;
+ return NOTDONE;
+ }
+
+ if (qfl_type == QFLT_QUICKFIX && !qflist_valid(NULL, save_qfid))
+ {
+! EMSG(_("E925: Current quickfix was changed"));
+ return NOTDONE;
+ }
+
+--- 3019,3032 ----
+ // present.
+ if (qfl_type == QFLT_LOCATION && !win_valid_any_tab(oldwin))
+ {
+! emsg(_("E924: Current window was closed"));
+ *opened_window = FALSE;
+ return NOTDONE;
+ }
+
+ if (qfl_type == QFLT_QUICKFIX && !qflist_valid(NULL, save_qfid))
+ {
+! emsg(_("E925: Current quickfix was changed"));
+ return NOTDONE;
+ }
+
+***************
+*** 3056,3064 ****
+ || !is_qf_entry_present(qfl, qf_ptr))
+ {
+ if (qfl_type == QFLT_QUICKFIX)
+! EMSG(_("E925: Current quickfix was changed"));
+ else
+! EMSG(_(e_loc_list_changed));
+ return NOTDONE;
+ }
+
+--- 3034,3042 ----
+ || !is_qf_entry_present(qfl, qf_ptr))
+ {
+ if (qfl_type == QFLT_QUICKFIX)
+! emsg(_("E925: Current quickfix was changed"));
+ else
+! emsg(_(e_loc_list_changed));
+ return NOTDONE;
+ }
+
+***************
+*** 3315,3321 ****
+
+ if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist))
+ {
+! EMSG(_(e_quickfix));
+ return;
+ }
+
+--- 3293,3299 ----
+
+ if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist))
+ {
+! emsg(_(e_quickfix));
+ return;
+ }
+
+***************
+*** 3497,3510 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+
+ if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist))
+ {
+! EMSG(_(e_quickfix));
+ return;
+ }
+ if (*arg == '+')
+--- 3475,3488 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+
+ if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist))
+ {
+! emsg(_(e_quickfix));
+ return;
+ }
+ if (*arg == '+')
+***************
+*** 3514,3520 ****
+ }
+ if (!get_list_range(&arg, &idx1, &idx2) || *arg != NUL)
+ {
+! EMSG(_(e_trailing));
+ return;
+ }
+ qfl = &qi->qf_lists[qi->qf_curlist];
+--- 3492,3498 ----
+ }
+ if (!get_list_range(&arg, &idx1, &idx2) || *arg != NUL)
+ {
+! emsg(_(e_trailing));
+ return;
+ }
+ qfl = &qi->qf_lists[qi->qf_curlist];
+***************
+*** 3643,3649 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+--- 3621,3627 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+***************
+*** 3658,3664 ****
+ {
+ if (qi->qf_curlist == 0)
+ {
+! EMSG(_("E380: At bottom of quickfix stack"));
+ break;
+ }
+ --qi->qf_curlist;
+--- 3636,3642 ----
+ {
+ if (qi->qf_curlist == 0)
+ {
+! emsg(_("E380: At bottom of quickfix stack"));
+ break;
+ }
+ --qi->qf_curlist;
+***************
+*** 3667,3673 ****
+ {
+ if (qi->qf_curlist >= qi->qf_listcount - 1)
+ {
+! EMSG(_("E381: At top of quickfix stack"));
+ break;
+ }
+ ++qi->qf_curlist;
+--- 3645,3651 ----
+ {
+ if (qi->qf_curlist >= qi->qf_listcount - 1)
+ {
+! emsg(_("E381: At top of quickfix stack"));
+ break;
+ }
+ ++qi->qf_curlist;
+***************
+*** 3870,3876 ****
+
+ if (qf_list_empty(qi, qi->qf_curlist))
+ {
+! EMSG(_(e_quickfix));
+ return;
+ }
+
+--- 3848,3854 ----
+
+ if (qf_list_empty(qi, qi->qf_curlist))
+ {
+! emsg(_(e_quickfix));
+ return;
+ }
+
+***************
+*** 4081,4087 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+--- 4059,4065 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+***************
+*** 4163,4169 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+--- 4141,4147 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+***************
+*** 4609,4615 ****
+ {
+ name = vim_tempname('e', FALSE);
+ if (name == NULL)
+! EMSG(_(e_notmp));
+ return name;
+ }
+
+--- 4587,4593 ----
+ {
+ name = vim_tempname('e', FALSE);
+ if (name == NULL)
+! emsg(_(e_notmp));
+ return name;
+ }
+
+***************
+*** 4941,4947 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+--- 4919,4925 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+***************
+*** 4992,4998 ****
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! EMSG(_(e_loclist));
+ return;
+ }
+ }
+--- 4970,4976 ----
+ qi = GET_LOC_LIST(curwin);
+ if (qi == NULL)
+ {
+! emsg(_(e_loclist));
+ return;
+ }
+ }
+***************
+*** 5148,5154 ****
+ // Pattern is empty, use last search pattern.
+ if (last_search_pat() == NULL)
+ {
+! EMSG(_(e_noprevre));
+ return;
+ }
+ regmatch->regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+--- 5126,5132 ----
+ // Pattern is empty, use last search pattern.
+ if (last_search_pat() == NULL)
+ {
+! emsg(_(e_noprevre));
+ return;
+ }
+ regmatch->regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
+***************
+*** 5238,5244 ****
+ if (wp != NULL)
+ {
+ // An autocmd has freed the location list.
+! EMSG(_(e_loc_list_changed));
+ return FALSE;
+ }
+ else
+--- 5216,5222 ----
+ if (wp != NULL)
+ {
+ // An autocmd has freed the location list.
+! emsg(_(e_loc_list_changed));
+ return FALSE;
+ }
+ else
+***************
+*** 5417,5423 ****
+ p = skip_vimgrep_pat(eap->arg, &s, &flags);
+ if (p == NULL)
+ {
+! EMSG(_(e_invalpat));
+ goto theend;
+ }
+
+--- 5395,5401 ----
+ p = skip_vimgrep_pat(eap->arg, &s, &flags);
+ if (p == NULL)
+ {
+! emsg(_(e_invalpat));
+ goto theend;
+ }
+
+***************
+*** 5428,5434 ****
+ p = skipwhite(p);
+ if (*p == NUL)
+ {
+! EMSG(_("E683: File name missing or invalid pattern"));
+ goto theend;
+ }
+
+--- 5406,5412 ----
+ p = skipwhite(p);
+ if (*p == NUL)
+ {
+! emsg(_("E683: File name missing or invalid pattern"));
+ goto theend;
+ }
+
+***************
+*** 5444,5450 ****
+ goto theend;
+ if (fcount == 0)
+ {
+! EMSG(_(e_nomatch));
+ goto theend;
+ }
+
+--- 5422,5428 ----
+ goto theend;
+ if (fcount == 0)
+ {
+! emsg(_(e_nomatch));
+ goto theend;
+ }
+
+***************
+*** 5505,5511 ****
+ if (buf == NULL)
+ {
+ if (!got_int)
+! smsg((char_u *)_("Cannot open file \"%s\""), fname);
+ }
+ else
+ {
+--- 5483,5489 ----
+ if (buf == NULL)
+ {
+ if (!got_int)
+! smsg(_("Cannot open file \"%s\""), fname);
+ }
+ else
+ {
+***************
+*** 5608,5614 ****
+ first_match_buf, target_dir);
+ }
+ else
+! EMSG2(_(e_nomatch2), s);
+
+ decr_quickfix_busy();
+
+--- 5586,5592 ----
+ first_match_buf, target_dir);
+ }
+ else
+! semsg(_(e_nomatch2), s);
+
+ decr_quickfix_busy();
+
+***************
+*** 6285,6291 ****
+ if (!did_bufnr_emsg)
+ {
+ did_bufnr_emsg = TRUE;
+! EMSGN(_("E92: Buffer %ld not found"), bufnum);
+ }
+ valid = FALSE;
+ bufnum = 0;
+--- 6263,6269 ----
+ if (!did_bufnr_emsg)
+ {
+ did_bufnr_emsg = TRUE;
+! semsg(_("E92: Buffer %ld not found"), bufnum);
+ }
+ valid = FALSE;
+ bufnum = 0;
+***************
+*** 6864,6872 ****
+ else if (*skipwhite(skipdigits(eap->arg)) == NUL)
+ buf = buflist_findnr(atoi((char *)eap->arg));
+ if (buf == NULL)
+! EMSG(_(e_invarg));
+ else if (buf->b_ml.ml_mfp == NULL)
+! EMSG(_("E681: Buffer is not loaded"));
+ else
+ {
+ if (eap->addr_count == 0)
+--- 6842,6850 ----
+ else if (*skipwhite(skipdigits(eap->arg)) == NUL)
+ buf = buflist_findnr(atoi((char *)eap->arg));
+ if (buf == NULL)
+! emsg(_(e_invarg));
+ else if (buf->b_ml.ml_mfp == NULL)
+! emsg(_("E681: Buffer is not loaded"));
+ else
+ {
+ if (eap->addr_count == 0)
+***************
+*** 6876,6882 ****
+ }
+ if (eap->line1 < 1 || eap->line1 > buf->b_ml.ml_line_count
+ || eap->line2 < 1 || eap->line2 > buf->b_ml.ml_line_count)
+! EMSG(_(e_invrange));
+ else
+ {
+ char_u *qf_title = qf_cmdtitle(*eap->cmdlinep);
+--- 6854,6860 ----
+ }
+ if (eap->line1 < 1 || eap->line1 > buf->b_ml.ml_line_count
+ || eap->line2 < 1 || eap->line2 > buf->b_ml.ml_line_count)
+! emsg(_(e_invrange));
+ else
+ {
+ char_u *qf_title = qf_cmdtitle(*eap->cmdlinep);
+***************
+*** 7011,7017 ****
+ decr_quickfix_busy();
+ }
+ else
+! EMSG(_("E777: String or List expected"));
+ cleanup:
+ free_tv(tv);
+ }
+--- 6989,6995 ----
+ decr_quickfix_busy();
+ }
+ else
+! emsg(_("E777: String or List expected"));
+ cleanup:
+ free_tv(tv);
+ }
+***************
+*** 7310,7316 ****
+ if (!qf_list_empty(qi, qi->qf_curlist))
+ qf_jump(qi, 0, 0, FALSE);
+ else
+! EMSG2(_(e_nomatch2), eap->arg);
+
+ decr_quickfix_busy();
+
+--- 7288,7294 ----
+ if (!qf_list_empty(qi, qi->qf_curlist))
+ qf_jump(qi, 0, 0, FALSE);
+ else
+! semsg(_(e_nomatch2), eap->arg);
+
+ decr_quickfix_busy();
+
+*** ../vim-8.1.0742/src/regexp.c 2019-01-01 22:18:59.808136916 +0100
+--- src/regexp.c 2019-01-13 23:14:56.250208631 +0100
+***************
+*** 334,344 ****
+
+ /* Used for an error (down from) vim_regcomp(): give the error message, set
+ * rc_did_emsg and return NULL */
+! #define EMSG_RET_NULL(m) return (EMSG(m), rc_did_emsg = TRUE, (void *)NULL)
+! #define IEMSG_RET_NULL(m) return (IEMSG(m), rc_did_emsg = TRUE, (void *)NULL)
+! #define EMSG_RET_FAIL(m) return (EMSG(m), rc_did_emsg = TRUE, FAIL)
+! #define EMSG2_RET_NULL(m, c) return (EMSG2((m), (c) ? "" : "\\"), rc_did_emsg = TRUE, (void *)NULL)
+! #define EMSG2_RET_FAIL(m, c) return (EMSG2((m), (c) ? "" : "\\"), rc_did_emsg = TRUE, FAIL)
+ #define EMSG_ONE_RET_NULL EMSG2_RET_NULL(_("E369: invalid item in %s%%[]"), reg_magic == MAGIC_ALL)
+
+
+--- 334,344 ----
+
+ /* Used for an error (down from) vim_regcomp(): give the error message, set
+ * rc_did_emsg and return NULL */
+! #define EMSG_RET_NULL(m) return (emsg((m)), rc_did_emsg = TRUE, (void *)NULL)
+! #define IEMSG_RET_NULL(m) return (iemsg((m)), rc_did_emsg = TRUE, (void *)NULL)
+! #define EMSG_RET_FAIL(m) return (emsg((m)), rc_did_emsg = TRUE, FAIL)
+! #define EMSG2_RET_NULL(m, c) return (semsg((const char *)(m), (c) ? "" : "\\"), rc_did_emsg = TRUE, (void *)NULL)
+! #define EMSG2_RET_FAIL(m, c) return (semsg((const char *)(m), (c) ? "" : "\\"), rc_did_emsg = TRUE, FAIL)
+ #define EMSG_ONE_RET_NULL EMSG2_RET_NULL(_("E369: invalid item in %s%%[]"), reg_magic == MAGIC_ALL)
+
+
+***************
+*** 1304,1310 ****
+ break;
+ if (*p == NUL)
+ {
+! EMSG(_("E65: Illegal back reference"));
+ rc_did_emsg = TRUE;
+ return FALSE;
+ }
+--- 1304,1310 ----
+ break;
+ if (*p == NUL)
+ {
+! emsg(_("E65: Illegal back reference"));
+ rc_did_emsg = TRUE;
+ return FALSE;
+ }
+***************
+*** 1902,1908 ****
+ else
+ sprintf((char *)IObuff, _("E62: Nested %s%c"),
+ reg_magic == MAGIC_ALL ? "" : "\\", no_Magic(peekchr()));
+! EMSG_RET_NULL(IObuff);
+ }
+
+ return ret;
+--- 1902,1908 ----
+ else
+ sprintf((char *)IObuff, _("E62: Nested %s%c"),
+ reg_magic == MAGIC_ALL ? "" : "\\", no_Magic(peekchr()));
+! EMSG_RET_NULL((char *)IObuff);
+ }
+
+ return ret;
+***************
+*** 2078,2084 ****
+ sprintf((char *)IObuff, _("E64: %s%c follows nothing"),
+ (c == '*' ? reg_magic >= MAGIC_ON : reg_magic == MAGIC_ALL)
+ ? "" : "\\", c);
+! EMSG_RET_NULL(IObuff);
+ /* NOTREACHED */
+
+ case Magic('~'): /* previous substitute pattern */
+--- 2078,2084 ----
+ sprintf((char *)IObuff, _("E64: %s%c follows nothing"),
+ (c == '*' ? reg_magic >= MAGIC_ON : reg_magic == MAGIC_ALL)
+ ? "" : "\\", c);
+! EMSG_RET_NULL((char *)IObuff);
+ /* NOTREACHED */
+
+ case Magic('~'): /* previous substitute pattern */
+***************
+*** 3406,3412 ****
+ {
+ sprintf((char *)IObuff, _("E554: Syntax error in %s{...}"),
+ reg_magic == MAGIC_ALL ? "" : "\\");
+! EMSG_RET_FAIL(IObuff);
+ }
+
+ /*
+--- 3406,3412 ----
+ {
+ sprintf((char *)IObuff, _("E554: Syntax error in %s{...}"),
+ reg_magic == MAGIC_ALL ? "" : "\\");
+! EMSG_RET_FAIL((char *)IObuff);
+ }
+
+ /*
+***************
+*** 3826,3832 ****
+ /* Be paranoid... */
+ if (prog == NULL || line == NULL)
+ {
+! EMSG(_(e_null));
+ goto theend;
+ }
+
+--- 3826,3832 ----
+ /* Be paranoid... */
+ if (prog == NULL || line == NULL)
+ {
+! emsg(_(e_null));
+ goto theend;
+ }
+
+***************
+*** 5241,5247 ****
+ * a regstar_T on the regstack. */
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! EMSG(_(e_maxmempat));
+ status = RA_FAIL;
+ }
+ else if (ga_grow(&regstack, sizeof(regstar_T)) == FAIL)
+--- 5241,5247 ----
+ * a regstar_T on the regstack. */
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! emsg(_(e_maxmempat));
+ status = RA_FAIL;
+ }
+ else if (ga_grow(&regstack, sizeof(regstar_T)) == FAIL)
+***************
+*** 5286,5292 ****
+ /* Need a bit of room to store extra positions. */
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! EMSG(_(e_maxmempat));
+ status = RA_FAIL;
+ }
+ else if (ga_grow(&regstack, sizeof(regbehind_T)) == FAIL)
+--- 5286,5292 ----
+ /* Need a bit of room to store extra positions. */
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! emsg(_(e_maxmempat));
+ status = RA_FAIL;
+ }
+ else if (ga_grow(&regstack, sizeof(regbehind_T)) == FAIL)
+***************
+*** 5338,5344 ****
+ break;
+
+ default:
+! EMSG(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Illegal op code %d\n", op);
+ #endif
+--- 5338,5344 ----
+ break;
+
+ default:
+! emsg(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Illegal op code %d\n", op);
+ #endif
+***************
+*** 5748,5754 ****
+ * We get here only if there's trouble -- normally "case END" is
+ * the terminating point.
+ */
+! EMSG(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Premature EOL\n");
+ #endif
+--- 5748,5754 ----
+ * We get here only if there's trouble -- normally "case END" is
+ * the terminating point.
+ */
+! emsg(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Premature EOL\n");
+ #endif
+***************
+*** 5772,5778 ****
+
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! EMSG(_(e_maxmempat));
+ return NULL;
+ }
+ if (ga_grow(&regstack, sizeof(regitem_T)) == FAIL)
+--- 5772,5778 ----
+
+ if ((long)((unsigned)regstack.ga_len >> 10) >= p_mmp)
+ {
+! emsg(_(e_maxmempat));
+ return NULL;
+ }
+ if (ga_grow(&regstack, sizeof(regitem_T)) == FAIL)
+***************
+*** 6185,6191 ****
+ break;
+
+ default: /* Oh dear. Called inappropriately. */
+! EMSG(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Called regrepeat with op code %d\n", OP(p));
+ #endif
+--- 6185,6191 ----
+ break;
+
+ default: /* Oh dear. Called inappropriately. */
+! emsg(_(e_re_corr));
+ #ifdef DEBUG
+ printf("Called regrepeat with op code %d\n", OP(p));
+ #endif
+***************
+*** 6236,6242 ****
+
+ if (UCHARAT(((bt_regprog_T *)prog)->program) != REGMAGIC)
+ {
+! EMSG(_(e_re_corr));
+ return TRUE;
+ }
+ return FALSE;
+--- 6236,6242 ----
+
+ if (UCHARAT(((bt_regprog_T *)prog)->program) != REGMAGIC)
+ {
+! emsg(_(e_re_corr));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 7487,7493 ****
+ /* Be paranoid... */
+ if ((source == NULL && expr == NULL) || dest == NULL)
+ {
+! EMSG(_(e_null));
+ return 0;
+ }
+ if (prog_magic_wrong())
+--- 7487,7493 ----
+ /* Be paranoid... */
+ if ((source == NULL && expr == NULL) || dest == NULL)
+ {
+! emsg(_(e_null));
+ return 0;
+ }
+ if (prog_magic_wrong())
+***************
+*** 7790,7796 ****
+ else if (*s == NUL) /* we hit NUL. */
+ {
+ if (copy)
+! EMSG(_(e_re_damg));
+ goto exit;
+ }
+ else
+--- 7790,7796 ----
+ else if (*s == NUL) /* we hit NUL. */
+ {
+ if (copy)
+! emsg(_(e_re_damg));
+ goto exit;
+ }
+ else
+***************
+*** 8120,8132 ****
+ regexp_engine = expr[4] - '0';
+ expr += 5;
+ #ifdef DEBUG
+! smsg((char_u *)"New regexp mode selected (%d): %s",
+ regexp_engine, regname[newengine]);
+ #endif
+ }
+ else
+ {
+! EMSG(_("E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be used "));
+ regexp_engine = AUTOMATIC_ENGINE;
+ }
+ }
+--- 8120,8132 ----
+ regexp_engine = expr[4] - '0';
+ expr += 5;
+ #ifdef DEBUG
+! smsg("New regexp mode selected (%d): %s",
+ regexp_engine, regname[newengine]);
+ #endif
+ }
+ else
+ {
+! emsg(_("E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be used "));
+ regexp_engine = AUTOMATIC_ENGINE;
+ }
+ }
+***************
+*** 8158,8164 ****
+ fclose(f);
+ }
+ else
+! EMSG2("(NFA) Could not open \"%s\" to write !!!",
+ BT_REGEXP_DEBUG_LOG_NAME);
+ }
+ #endif
+--- 8158,8164 ----
+ fclose(f);
+ }
+ else
+! semsg("(NFA) Could not open \"%s\" to write !!!",
+ BT_REGEXP_DEBUG_LOG_NAME);
+ }
+ #endif
+***************
+*** 8241,8247 ****
+ // Cannot use the same prog recursively, it contains state.
+ if (rmp->regprog->re_in_use)
+ {
+! EMSG(_(e_recursive));
+ return FALSE;
+ }
+ rmp->regprog->re_in_use = TRUE;
+--- 8241,8247 ----
+ // Cannot use the same prog recursively, it contains state.
+ if (rmp->regprog->re_in_use)
+ {
+! emsg(_(e_recursive));
+ return FALSE;
+ }
+ rmp->regprog->re_in_use = TRUE;
+***************
+*** 8365,8371 ****
+ // Cannot use the same prog recursively, it contains state.
+ if (rmp->regprog->re_in_use)
+ {
+! EMSG(_(e_recursive));
+ return FALSE;
+ }
+ rmp->regprog->re_in_use = TRUE;
+--- 8365,8371 ----
+ // Cannot use the same prog recursively, it contains state.
+ if (rmp->regprog->re_in_use)
+ {
+! emsg(_(e_recursive));
+ return FALSE;
+ }
+ rmp->regprog->re_in_use = TRUE;
+*** ../vim-8.1.0742/src/regexp_nfa.c 2018-12-26 22:04:35.494546386 +0100
+--- src/regexp_nfa.c 2019-01-13 19:56:58.425721744 +0100
+***************
+*** 1303,1313 ****
+ {
+ if (extra == NFA_ADD_NL)
+ {
+! EMSGN(_(e_ill_char_class), c);
+ rc_did_emsg = TRUE;
+ return FAIL;
+ }
+! IEMSGN("INTERNAL: Unknown character class char: %ld", c);
+ return FAIL;
+ }
+ #ifdef FEAT_MBYTE
+--- 1303,1313 ----
+ {
+ if (extra == NFA_ADD_NL)
+ {
+! semsg(_(e_ill_char_class), c);
+ rc_did_emsg = TRUE;
+ return FAIL;
+ }
+! siemsg("INTERNAL: Unknown character class char: %ld", c);
+ return FAIL;
+ }
+ #ifdef FEAT_MBYTE
+***************
+*** 1349,1355 ****
+ case Magic('|'):
+ case Magic('&'):
+ case Magic(')'):
+! EMSGN(_(e_misplaced), no_Magic(c));
+ return FAIL;
+
+ case Magic('='):
+--- 1349,1355 ----
+ case Magic('|'):
+ case Magic('&'):
+ case Magic(')'):
+! semsg(_(e_misplaced), no_Magic(c));
+ return FAIL;
+
+ case Magic('='):
+***************
+*** 1359,1365 ****
+ case Magic('*'):
+ case Magic('{'):
+ /* these should follow an atom, not form an atom */
+! EMSGN(_(e_misplaced), no_Magic(c));
+ return FAIL;
+
+ case Magic('~'):
+--- 1359,1365 ----
+ case Magic('*'):
+ case Magic('{'):
+ /* these should follow an atom, not form an atom */
+! semsg(_(e_misplaced), no_Magic(c));
+ return FAIL;
+
+ case Magic('~'):
+***************
+*** 1370,1376 ****
+ * Generated as "\%(pattern\)". */
+ if (reg_prev_sub == NULL)
+ {
+! EMSG(_(e_nopresub));
+ return FAIL;
+ }
+ for (lp = reg_prev_sub; *lp != NUL; MB_CPTR_ADV(lp))
+--- 1370,1376 ----
+ * Generated as "\%(pattern\)". */
+ if (reg_prev_sub == NULL)
+ {
+! emsg(_(e_nopresub));
+ return FAIL;
+ }
+ for (lp = reg_prev_sub; *lp != NUL; MB_CPTR_ADV(lp))
+***************
+*** 1445,1451 ****
+ break;
+ #endif
+ default:
+! EMSGN(_("E867: (NFA) Unknown operator '\\z%c'"),
+ no_Magic(c));
+ return FAIL;
+ }
+--- 1445,1451 ----
+ break;
+ #endif
+ default:
+! semsg(_("E867: (NFA) Unknown operator '\\z%c'"),
+ no_Magic(c));
+ return FAIL;
+ }
+***************
+*** 1577,1583 ****
+ #if VIM_SIZEOF_INT < VIM_SIZEOF_LONG
+ if (n > INT_MAX)
+ {
+! EMSG(_("E951: \\% value too large"));
+ return FAIL;
+ }
+ #endif
+--- 1577,1583 ----
+ #if VIM_SIZEOF_INT < VIM_SIZEOF_LONG
+ if (n > INT_MAX)
+ {
+! emsg(_("E951: \\% value too large"));
+ return FAIL;
+ }
+ #endif
+***************
+*** 1593,1599 ****
+ break;
+ }
+ }
+! EMSGN(_("E867: (NFA) Unknown operator '\\%%%c'"),
+ no_Magic(c));
+ return FAIL;
+ }
+--- 1593,1599 ----
+ break;
+ }
+ }
+! semsg(_("E867: (NFA) Unknown operator '\\%%%c'"),
+ no_Magic(c));
+ return FAIL;
+ }
+***************
+*** 2071,2077 ****
+ }
+ if (i == 0)
+ {
+! EMSGN(_("E869: (NFA) Unknown operator '\\@%c'"), op);
+ return FAIL;
+ }
+ EMIT(i);
+--- 2071,2077 ----
+ }
+ if (i == 0)
+ {
+! semsg(_("E869: (NFA) Unknown operator '\\@%c'"), op);
+ return FAIL;
+ }
+ EMIT(i);
+***************
+*** 2928,2934 ****
+ fclose(df);
+ }
+ #endif
+! EMSG(_("E874: (NFA) Could not pop the stack!"));
+ }
+
+ /*
+--- 2928,2934 ----
+ fclose(df);
+ }
+ #endif
+! emsg(_("E874: (NFA) Could not pop the stack!"));
+ }
+
+ /*
+***************
+*** 4877,4883 ****
+
+ default:
+ /* should not be here :P */
+! IEMSGN(_(e_ill_char_class), class);
+ return FAIL;
+ }
+ return FAIL;
+--- 4877,4883 ----
+
+ default:
+ /* should not be here :P */
+! siemsg(_(e_ill_char_class), class);
+ return FAIL;
+ }
+ return FAIL;
+***************
+*** 5146,5152 ****
+ *listids = (int *)lalloc(sizeof(int) * prog->nstate, TRUE);
+ if (*listids == NULL)
+ {
+! EMSG(_("E878: (NFA) Could not allocate memory for branch traversal!"));
+ return 0;
+ }
+ *listids_len = prog->nstate;
+--- 5146,5152 ----
+ *listids = (int *)lalloc(sizeof(int) * prog->nstate, TRUE);
+ if (*listids == NULL)
+ {
+! emsg(_("E878: (NFA) Could not allocate memory for branch traversal!"));
+ return 0;
+ }
+ *listids_len = prog->nstate;
+***************
+*** 5201,5207 ****
+ }
+ else
+ {
+! EMSG(_(e_log_open_failed));
+ log_fd = stderr;
+ }
+ #endif
+--- 5201,5207 ----
+ }
+ else
+ {
+! emsg(_(e_log_open_failed));
+ log_fd = stderr;
+ }
+ #endif
+***************
+*** 5521,5527 ****
+ debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
+ if (debug == NULL)
+ {
+! EMSG2("(NFA) COULD NOT OPEN %s!", NFA_REGEXP_DEBUG_LOG);
+ return FALSE;
+ }
+ #endif
+--- 5521,5527 ----
+ debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
+ if (debug == NULL)
+ {
+! semsg("(NFA) COULD NOT OPEN %s!", NFA_REGEXP_DEBUG_LOG);
+ return FALSE;
+ }
+ #endif
+***************
+*** 5549,5555 ****
+ }
+ else
+ {
+! EMSG(_(e_log_open_failed));
+ log_fd = stderr;
+ }
+ #endif
+--- 5549,5555 ----
+ }
+ else
+ {
+! emsg(_(e_log_open_failed));
+ log_fd = stderr;
+ }
+ #endif
+***************
+*** 6670,6676 ****
+
+ #ifdef DEBUG
+ if (c < 0)
+! IEMSGN("INTERNAL: Negative state char: %ld", c);
+ #endif
+ result = (c == curc);
+
+--- 6670,6676 ----
+
+ #ifdef DEBUG
+ if (c < 0)
+! siemsg("INTERNAL: Negative state char: %ld", c);
+ #endif
+ result = (c == curc);
+
+***************
+*** 6961,6967 ****
+ fclose(f);
+ }
+ else
+! EMSG("Could not open temporary log file for writing");
+ #endif
+
+ clear_sub(&subs.norm);
+--- 6961,6967 ----
+ fclose(f);
+ }
+ else
+! emsg("Could not open temporary log file for writing");
+ #endif
+
+ clear_sub(&subs.norm);
+***************
+*** 7094,7100 ****
+ /* Be paranoid... */
+ if (prog == NULL || line == NULL)
+ {
+! EMSG(_(e_null));
+ goto theend;
+ }
+
+--- 7094,7100 ----
+ /* Be paranoid... */
+ if (prog == NULL || line == NULL)
+ {
+! emsg(_(e_null));
+ goto theend;
+ }
+
+***************
+*** 7212,7218 ****
+ {
+ /* TODO: only give this error for debugging? */
+ if (post_ptr >= post_end)
+! IEMSGN("Internal error: estimated max number of states insufficient: %ld", post_end - post_start);
+ goto fail; /* Cascaded (syntax?) error */
+ }
+
+--- 7212,7218 ----
+ {
+ /* TODO: only give this error for debugging? */
+ if (post_ptr >= post_end)
+! siemsg("Internal error: estimated max number of states insufficient: %ld", post_end - post_start);
+ goto fail; /* Cascaded (syntax?) error */
+ }
+
+*** ../vim-8.1.0742/src/search.c 2018-12-23 19:10:05.006359935 +0100
+--- src/search.c 2019-01-13 19:57:22.949515704 +0100
+***************
+*** 156,164 ****
+ if (spats[i].pat == NULL) /* pattern was never defined */
+ {
+ if (pat_use == RE_SUBST)
+! EMSG(_(e_nopresub));
+ else
+! EMSG(_(e_noprevre));
+ rc_did_emsg = TRUE;
+ return FAIL;
+ }
+--- 156,164 ----
+ if (spats[i].pat == NULL) /* pattern was never defined */
+ {
+ if (pat_use == RE_SUBST)
+! emsg(_(e_nopresub));
+ else
+! emsg(_(e_noprevre));
+ rc_did_emsg = TRUE;
+ return FAIL;
+ }
+***************
+*** 369,375 ****
+ save_last_search_pattern(void)
+ {
+ if (did_save_last_search_spat != 0)
+! IEMSG("did_save_last_search_spat is not zero");
+ else
+ ++did_save_last_search_spat;
+
+--- 369,375 ----
+ save_last_search_pattern(void)
+ {
+ if (did_save_last_search_spat != 0)
+! iemsg("did_save_last_search_spat is not zero");
+ else
+ ++did_save_last_search_spat;
+
+***************
+*** 385,391 ****
+ {
+ if (did_save_last_search_spat != 1)
+ {
+! IEMSG("did_save_last_search_spat is not one");
+ return;
+ }
+ --did_save_last_search_spat;
+--- 385,391 ----
+ {
+ if (did_save_last_search_spat != 1)
+ {
+! iemsg("did_save_last_search_spat is not one");
+ return;
+ }
+ --did_save_last_search_spat;
+***************
+*** 670,676 ****
+ (options & (SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
+ {
+ if ((options & SEARCH_MSG) && !rc_did_emsg)
+! EMSG2(_("E383: Invalid search string: %s"), mr_pattern);
+ return FAIL;
+ }
+
+--- 670,676 ----
+ (options & (SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
+ {
+ if ((options & SEARCH_MSG) && !rc_did_emsg)
+! semsg(_("E383: Invalid search string: %s"), mr_pattern);
+ return FAIL;
+ }
+
+***************
+*** 1136,1151 ****
+ if (!found) /* did not find it */
+ {
+ if (got_int)
+! EMSG(_(e_interr));
+ else if ((options & SEARCH_MSG) == SEARCH_MSG)
+ {
+ if (p_ws)
+! EMSG2(_(e_patnotf2), mr_pattern);
+ else if (lnum == 0)
+! EMSG2(_("E384: search hit TOP without match for: %s"),
+ mr_pattern);
+ else
+! EMSG2(_("E385: search hit BOTTOM without match for: %s"),
+ mr_pattern);
+ }
+ return FAIL;
+--- 1136,1151 ----
+ if (!found) /* did not find it */
+ {
+ if (got_int)
+! emsg(_(e_interr));
+ else if ((options & SEARCH_MSG) == SEARCH_MSG)
+ {
+ if (p_ws)
+! semsg(_(e_patnotf2), mr_pattern);
+ else if (lnum == 0)
+! semsg(_("E384: search hit TOP without match for: %s"),
+ mr_pattern);
+ else
+! semsg(_("E385: search hit BOTTOM without match for: %s"),
+ mr_pattern);
+ }
+ return FAIL;
+***************
+*** 1324,1330 ****
+ searchstr = spats[RE_SUBST].pat;
+ if (searchstr == NULL)
+ {
+! EMSG(_(e_noprevre));
+ retval = 0;
+ goto end_do_search;
+ }
+--- 1324,1330 ----
+ searchstr = spats[RE_SUBST].pat;
+ if (searchstr == NULL)
+ {
+! emsg(_(e_noprevre));
+ retval = 0;
+ goto end_do_search;
+ }
+***************
+*** 1581,1587 ****
+ if (dirc != '?' && dirc != '/')
+ {
+ retval = 0;
+! EMSG(_("E386: Expected '?' or '/' after ';'"));
+ goto end_do_search;
+ }
+ ++pat;
+--- 1581,1587 ----
+ if (dirc != '?' && dirc != '/')
+ {
+ retval = 0;
+! emsg(_("E386: Expected '?' or '/' after ';'"));
+ goto end_do_search;
+ }
+ ++pat;
+***************
+*** 5219,5225 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Searching included file %s"),
+ (char *)new_fname);
+ verbose_leave();
+ }
+--- 5219,5225 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg(_("Searching included file %s"),
+ (char *)new_fname);
+ verbose_leave();
+ }
+***************
+*** 5442,5448 ****
+ && g_do_tagpreview == 0
+ #endif
+ )
+! EMSG(_("E387: Match is on current line"));
+ else if (action == ACTION_SHOW)
+ {
+ show_pat_in_path(line, type, did_show, action,
+--- 5442,5448 ----
+ && g_do_tagpreview == 0
+ #endif
+ )
+! emsg(_("E387: Match is on current line"));
+ else if (action == ACTION_SHOW)
+ {
+ show_pat_in_path(line, type, did_show, action,
+***************
+*** 5609,5619 ****
+ #else
+ if (got_int)
+ #endif
+! EMSG(_(e_interr));
+ else if (type == FIND_DEFINE)
+! EMSG(_("E388: Couldn't find definition"));
+ else
+! EMSG(_("E389: Couldn't find pattern"));
+ }
+ if (action == ACTION_SHOW || action == ACTION_SHOW_ALL)
+ msg_end();
+--- 5609,5619 ----
+ #else
+ if (got_int)
+ #endif
+! emsg(_(e_interr));
+ else if (type == FIND_DEFINE)
+! emsg(_("E388: Couldn't find definition"));
+ else
+! emsg(_("E389: Couldn't find pattern"));
+ }
+ if (action == ACTION_SHOW || action == ACTION_SHOW_ALL)
+ msg_end();
+*** ../vim-8.1.0742/src/sign.c 2019-01-11 13:42:31.680331155 +0100
+--- src/sign.c 2019-01-13 19:57:27.513477447 +0100
+***************
+*** 752,758 ****
+ if (next_sign_typenr == start)
+ {
+ vim_free(sp);
+! EMSG(_("E612: Too many signs defined"));
+ return FAIL;
+ }
+ lp = first_sign; // start all over
+--- 752,758 ----
+ if (next_sign_typenr == start)
+ {
+ vim_free(sp);
+! emsg(_("E612: Too many signs defined"));
+ return FAIL;
+ }
+ lp = first_sign; // start all over
+***************
+*** 835,841 ****
+ // Currently must be one or two display cells
+ if (s != endp || cells < 1 || cells > 2)
+ {
+! EMSG2(_("E239: Invalid sign text: %s"), text);
+ return FAIL;
+ }
+
+--- 835,841 ----
+ // Currently must be one or two display cells
+ if (s != endp || cells < 1 || cells > 2)
+ {
+! semsg(_("E239: Invalid sign text: %s"), text);
+ return FAIL;
+ }
+
+***************
+*** 870,876 ****
+ sp = sign_find(name, &sp_prev);
+ if (sp == NULL)
+ {
+! EMSG2(_("E155: Unknown sign: %s"), name);
+ return FAIL;
+ }
+ sign_undefine(sp, sp_prev);
+--- 870,876 ----
+ sp = sign_find(name, &sp_prev);
+ if (sp == NULL)
+ {
+! semsg(_("E155: Unknown sign: %s"), name);
+ return FAIL;
+ }
+ sign_undefine(sp, sp_prev);
+***************
+*** 890,896 ****
+ if (sp != NULL)
+ sign_list_defined(sp);
+ else
+! EMSG2(_("E155: Unknown sign: %s"), name);
+ }
+
+ /*
+--- 890,896 ----
+ if (sp != NULL)
+ sign_list_defined(sp);
+ else
+! semsg(_("E155: Unknown sign: %s"), name);
+ }
+
+ /*
+***************
+*** 916,922 ****
+ break;
+ if (sp == NULL)
+ {
+! EMSG2(_("E155: Unknown sign: %s"), sign_name);
+ return FAIL;
+ }
+ if (*sign_id == 0)
+--- 916,922 ----
+ break;
+ if (sp == NULL)
+ {
+! semsg(_("E155: Unknown sign: %s"), sign_name);
+ return FAIL;
+ }
+ if (*sign_id == 0)
+***************
+*** 933,939 ****
+ redraw_buf_line_later(buf, lnum);
+ else
+ {
+! EMSG2(_("E885: Not possible to change sign %s"), sign_name);
+ return FAIL;
+ }
+
+--- 933,939 ----
+ redraw_buf_line_later(buf, lnum);
+ else
+ {
+! semsg(_("E885: Not possible to change sign %s"), sign_name);
+ return FAIL;
+ }
+
+***************
+*** 980,986 ****
+ if (id > 0)
+ sign_unplace(id, groupname, curwin->w_buffer, curwin->w_cursor.lnum);
+ else
+! EMSG(_("E159: Missing sign number"));
+ }
+
+ /*
+--- 980,986 ----
+ if (id > 0)
+ sign_unplace(id, groupname, curwin->w_buffer, curwin->w_cursor.lnum);
+ else
+! emsg(_("E159: Missing sign number"));
+ }
+
+ /*
+***************
+*** 993,999 ****
+
+ if ((lnum = buf_findsign(buf, sign_id, sign_group)) <= 0)
+ {
+! EMSGN(_("E157: Invalid sign ID: %ld"), sign_id);
+ return -1;
+ }
+
+--- 993,999 ----
+
+ if ((lnum = buf_findsign(buf, sign_id, sign_group)) <= 0)
+ {
+! semsg(_("E157: Invalid sign ID: %ld"), sign_id);
+ return -1;
+ }
+
+***************
+*** 1010,1016 ****
+
+ if (buf->b_fname == NULL)
+ {
+! EMSG(_("E934: Cannot jump to a buffer that does not have a name"));
+ return -1;
+ }
+ cmd = alloc((unsigned)STRLEN(buf->b_fname) + 25);
+--- 1010,1016 ----
+
+ if (buf->b_fname == NULL)
+ {
+! emsg(_("E934: Cannot jump to a buffer that does not have a name"));
+ return -1;
+ }
+ cmd = alloc((unsigned)STRLEN(buf->b_fname) + 25);
+***************
+*** 1070,1076 ****
+ }
+ else
+ {
+! EMSG2(_(e_invarg2), arg);
+ failed = TRUE;
+ break;
+ }
+--- 1070,1076 ----
+ }
+ else
+ {
+! semsg(_(e_invarg2), arg);
+ failed = TRUE;
+ break;
+ }
+***************
+*** 1111,1117 ****
+ // :sign place group=*
+ if (lnum >= 0 || sign_name != NULL
+ || (group != NULL && *group == '\0'))
+! EMSG(_(e_invarg));
+ else
+ sign_list_placed(buf, group);
+ }
+--- 1111,1117 ----
+ // :sign place group=*
+ if (lnum >= 0 || sign_name != NULL
+ || (group != NULL && *group == '\0'))
+! emsg(_(e_invarg));
+ else
+ sign_list_placed(buf, group);
+ }
+***************
+*** 1121,1127 ****
+ if (sign_name == NULL || buf == NULL
+ || (group != NULL && *group == '\0'))
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 1121,1127 ----
+ if (sign_name == NULL || buf == NULL
+ || (group != NULL && *group == '\0'))
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 1142,1148 ****
+ {
+ if (lnum >= 0 || sign_name != NULL || (group != NULL && *group == '\0'))
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 1142,1148 ----
+ {
+ if (lnum >= 0 || sign_name != NULL || (group != NULL && *group == '\0'))
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 1211,1217 ****
+ {
+ if (sign_name == NULL && group == NULL && id == -1)
+ {
+! EMSG(_(e_argreq));
+ return;
+ }
+
+--- 1211,1217 ----
+ {
+ if (sign_name == NULL && group == NULL && id == -1)
+ {
+! emsg(_(e_argreq));
+ return;
+ }
+
+***************
+*** 1220,1226 ****
+ {
+ // File or buffer is not specified or an empty group is used
+ // or a line number or a sign name is specified.
+! EMSG(_(e_invarg));
+ return;
+ }
+ (void)sign_jump(id, group, buf);
+--- 1220,1226 ----
+ {
+ // File or buffer is not specified or an empty group is used
+ // or a line number or a sign name is specified.
+! emsg(_(e_invarg));
+ return;
+ }
+ (void)sign_jump(id, group, buf);
+***************
+*** 1275,1281 ****
+ {
+ if (*signid != -1)
+ {
+! EMSG(_(e_invarg));
+ return FAIL;
+ }
+ *signid = -2;
+--- 1275,1281 ----
+ {
+ if (*signid != -1)
+ {
+! emsg(_(e_invarg));
+ return FAIL;
+ }
+ *signid = -2;
+***************
+*** 1319,1330 ****
+ filename = arg;
+ *buf = buflist_findnr((int)getdigits(&arg));
+ if (*skipwhite(arg) != NUL)
+! EMSG(_(e_trailing));
+ break;
+ }
+ else
+ {
+! EMSG(_(e_invarg));
+ return FAIL;
+ }
+ arg = skipwhite(arg);
+--- 1319,1330 ----
+ filename = arg;
+ *buf = buflist_findnr((int)getdigits(&arg));
+ if (*skipwhite(arg) != NUL)
+! emsg(_(e_trailing));
+ break;
+ }
+ else
+ {
+! emsg(_(e_invarg));
+ return FAIL;
+ }
+ arg = skipwhite(arg);
+***************
+*** 1332,1338 ****
+
+ if (filename != NULL && *buf == NULL)
+ {
+! EMSG2(_("E158: Invalid buffer name: %s"), filename);
+ return FAIL;
+ }
+
+--- 1332,1338 ----
+
+ if (filename != NULL && *buf == NULL)
+ {
+! semsg(_("E158: Invalid buffer name: %s"), filename);
+ return FAIL;
+ }
+
+***************
+*** 1362,1368 ****
+ idx = sign_cmd_idx(arg, p);
+ if (idx == SIGNCMD_LAST)
+ {
+! EMSG2(_("E160: Unknown sign command: %s"), arg);
+ return;
+ }
+ arg = skipwhite(p);
+--- 1362,1368 ----
+ idx = sign_cmd_idx(arg, p);
+ if (idx == SIGNCMD_LAST)
+ {
+! semsg(_("E160: Unknown sign command: %s"), arg);
+ return;
+ }
+ arg = skipwhite(p);
+***************
+*** 1377,1383 ****
+ sign_list_defined(sp);
+ }
+ else if (*arg == NUL)
+! EMSG(_("E156: Missing sign name"));
+ else
+ {
+ char_u *name;
+--- 1377,1383 ----
+ sign_list_defined(sp);
+ }
+ else if (*arg == NUL)
+! emsg(_("E156: Missing sign name"));
+ else
+ {
+ char_u *name;
+***************
+*** 1591,1597 ****
+ {
+ char_u *p;
+
+! smsg((char_u *)"sign %s", sp->sn_name);
+ if (sp->sn_icon != NULL)
+ {
+ MSG_PUTS(" icon=");
+--- 1591,1597 ----
+ {
+ char_u *p;
+
+! smsg("sign %s", sp->sn_name);
+ if (sp->sn_icon != NULL)
+ {
+ MSG_PUTS(" icon=");
+*** ../vim-8.1.0742/src/spell.c 2018-11-16 16:21:01.633310065 +0100
+--- src/spell.c 2019-01-13 23:15:15.534057954 +0100
+***************
+*** 717,723 ****
+ if (endidxcnt == MAXWLEN)
+ {
+ /* Must be a corrupted spell file. */
+! EMSG(_(e_format));
+ return;
+ }
+ endlen[endidxcnt] = wlen;
+--- 717,723 ----
+ if (endidxcnt == MAXWLEN)
+ {
+ /* Must be a corrupted spell file. */
+! emsg(_(e_format));
+ return;
+ }
+ endlen[endidxcnt] = wlen;
+***************
+*** 1537,1543 ****
+ if (!wp->w_p_spell || *wp->w_s->b_p_spl == NUL
+ || wp->w_s->b_langp.ga_len == 0)
+ {
+! EMSG(_("E756: Spell checking is not enabled"));
+ return TRUE;
+ }
+ return FALSE;
+--- 1537,1543 ----
+ if (!wp->w_p_spell || *wp->w_s->b_p_spl == NUL
+ || wp->w_s->b_langp.ga_len == 0)
+ {
+! emsg(_("E756: Spell checking is not enabled"));
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 1888,1894 ****
+
+ if (r == FAIL)
+ {
+! smsg((char_u *)
+ #ifdef VMS
+ _("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
+ #else
+--- 1888,1894 ----
+
+ if (r == FAIL)
+ {
+! smsg(
+ #ifdef VMS
+ _("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
+ #else
+***************
+*** 2307,2313 ****
+ * Parse 'spelllang' and set w_s->b_langp accordingly.
+ * Returns NULL if it's OK, an error message otherwise.
+ */
+! char_u *
+ did_set_spelllang(win_T *wp)
+ {
+ garray_T ga;
+--- 2307,2313 ----
+ * Parse 'spelllang' and set w_s->b_langp accordingly.
+ * Returns NULL if it's OK, an error message otherwise.
+ */
+! char *
+ did_set_spelllang(win_T *wp)
+ {
+ garray_T ga;
+***************
+*** 2330,2336 ****
+ int i, j;
+ langp_T *lp, *lp2;
+ static int recursive = FALSE;
+! char_u *ret_msg = NULL;
+ char_u *spl_copy;
+ bufref_T bufref;
+
+--- 2330,2336 ----
+ int i, j;
+ langp_T *lp, *lp2;
+ static int recursive = FALSE;
+! char *ret_msg = NULL;
+ char_u *spl_copy;
+ bufref_T bufref;
+
+***************
+*** 2435,2441 ****
+ * destroying the buffer we are using... */
+ if (!bufref_valid(&bufref))
+ {
+! ret_msg = (char_u *)N_("E797: SpellFileMissing autocommand deleted buffer");
+ goto theend;
+ }
+ }
+--- 2435,2441 ----
+ * destroying the buffer we are using... */
+ if (!bufref_valid(&bufref))
+ {
+! ret_msg = N_("E797: SpellFileMissing autocommand deleted buffer");
+ goto theend;
+ }
+ }
+***************
+*** 2464,2471 ****
+ else
+ /* This is probably an error. Give a warning and
+ * accept the words anyway. */
+! smsg((char_u *)
+! _("Warning: region %s not supported"),
+ region);
+ }
+ else
+--- 2464,2470 ----
+ else
+ /* This is probably an error. Give a warning and
+ * accept the words anyway. */
+! smsg(_("Warning: region %s not supported"),
+ region);
+ }
+ else
+***************
+*** 3380,3386 ****
+ else if (count > 0)
+ {
+ if (count > sug.su_ga.ga_len)
+! smsg((char_u *)_("Sorry, only %ld suggestions"),
+ (long)sug.su_ga.ga_len);
+ }
+ else
+--- 3379,3385 ----
+ else if (count > 0)
+ {
+ if (count > sug.su_ga.ga_len)
+! smsg(_("Sorry, only %ld suggestions"),
+ (long)sug.su_ga.ga_len);
+ }
+ else
+***************
+*** 3615,3621 ****
+
+ if (repl_from == NULL || repl_to == NULL)
+ {
+! EMSG(_("E752: No previous spell replacement"));
+ return;
+ }
+ addlen = (int)(STRLEN(repl_to) - STRLEN(repl_from));
+--- 3614,3620 ----
+
+ if (repl_from == NULL || repl_to == NULL)
+ {
+! emsg(_("E752: No previous spell replacement"));
+ return;
+ }
+ addlen = (int)(STRLEN(repl_to) - STRLEN(repl_from));
+***************
+*** 3665,3671 ****
+ vim_free(frompat);
+
+ if (sub_nsubs == 0)
+! EMSG2(_("E753: Not found: %s"), repl_from);
+ else
+ do_sub_msg(FALSE);
+ }
+--- 3664,3670 ----
+ vim_free(frompat);
+
+ if (sub_nsubs == 0)
+! semsg(_("E753: Not found: %s"), repl_from);
+ else
+ do_sub_msg(FALSE);
+ }
+***************
+*** 3905,3911 ****
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return;
+ }
+
+--- 3904,3910 ----
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return;
+ }
+
+*** ../vim-8.1.0742/src/spellfile.c 2018-11-16 16:21:01.637310049 +0100
+--- src/spellfile.c 2019-01-13 19:57:34.861415906 +0100
+***************
+*** 359,369 ****
+ if (fd == NULL)
+ {
+ if (!silent)
+! EMSG2(_(e_notopen), fname);
+ else if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg((char_u *)e_notopen, fname);
+ verbose_leave();
+ }
+ goto endFAIL;
+--- 359,369 ----
+ if (fd == NULL)
+ {
+ if (!silent)
+! semsg(_(e_notopen), fname);
+ else if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg((const char *)e_notopen, fname);
+ verbose_leave();
+ }
+ goto endFAIL;
+***************
+*** 371,377 ****
+ if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Reading spell file \"%s\""), fname);
+ verbose_leave();
+ }
+
+--- 371,377 ----
+ if (p_verbose > 2)
+ {
+ verbose_enter();
+! smsg(_("Reading spell file \"%s\""), fname);
+ verbose_leave();
+ }
+
+***************
+*** 403,420 ****
+ buf[i] = getc(fd); /* <fileID> */
+ if (STRNCMP(buf, VIMSPELLMAGIC, VIMSPELLMAGICL) != 0)
+ {
+! EMSG(_("E757: This does not look like a spell file"));
+ goto endFAIL;
+ }
+ c = getc(fd); /* <versionnr> */
+ if (c < VIMSPELLVERSION)
+ {
+! EMSG(_("E771: Old spell file, needs to be updated"));
+ goto endFAIL;
+ }
+ else if (c > VIMSPELLVERSION)
+ {
+! EMSG(_("E772: Spell file is for newer version of Vim"));
+ goto endFAIL;
+ }
+
+--- 403,420 ----
+ buf[i] = getc(fd); /* <fileID> */
+ if (STRNCMP(buf, VIMSPELLMAGIC, VIMSPELLMAGICL) != 0)
+ {
+! emsg(_("E757: This does not look like a spell file"));
+ goto endFAIL;
+ }
+ c = getc(fd); /* <versionnr> */
+ if (c < VIMSPELLVERSION)
+ {
+! emsg(_("E771: Old spell file, needs to be updated"));
+ goto endFAIL;
+ }
+ else if (c > VIMSPELLVERSION)
+ {
+! emsg(_("E772: Spell file is for newer version of Vim"));
+ goto endFAIL;
+ }
+
+***************
+*** 521,527 ****
+ * message. When it's not required skip the contents. */
+ if (c & SNF_REQUIRED)
+ {
+! EMSG(_("E770: Unsupported section in spell file"));
+ goto endFAIL;
+ }
+ while (--len >= 0)
+--- 521,527 ----
+ * message. When it's not required skip the contents. */
+ if (c & SNF_REQUIRED)
+ {
+! emsg(_("E770: Unsupported section in spell file"));
+ goto endFAIL;
+ }
+ while (--len >= 0)
+***************
+*** 532,544 ****
+ someerror:
+ if (res == SP_FORMERROR)
+ {
+! EMSG(_(e_format));
+ goto endFAIL;
+ }
+ if (res == SP_TRUNCERROR)
+ {
+ truncerr:
+! EMSG(_(e_spell_trunc));
+ goto endFAIL;
+ }
+ if (res == SP_OTHERERROR)
+--- 532,544 ----
+ someerror:
+ if (res == SP_FORMERROR)
+ {
+! emsg(_(e_format));
+ goto endFAIL;
+ }
+ if (res == SP_TRUNCERROR)
+ {
+ truncerr:
+! emsg(_(e_spell_trunc));
+ goto endFAIL;
+ }
+ if (res == SP_OTHERERROR)
+***************
+*** 695,714 ****
+ buf[i] = getc(fd); /* <fileID> */
+ if (STRNCMP(buf, VIMSUGMAGIC, VIMSUGMAGICL) != 0)
+ {
+! EMSG2(_("E778: This does not look like a .sug file: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+ c = getc(fd); /* <versionnr> */
+ if (c < VIMSUGVERSION)
+ {
+! EMSG2(_("E779: Old .sug file, needs to be updated: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+ else if (c > VIMSUGVERSION)
+ {
+! EMSG2(_("E780: .sug file is for newer version of Vim: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+--- 695,714 ----
+ buf[i] = getc(fd); /* <fileID> */
+ if (STRNCMP(buf, VIMSUGMAGIC, VIMSUGMAGICL) != 0)
+ {
+! semsg(_("E778: This does not look like a .sug file: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+ c = getc(fd); /* <versionnr> */
+ if (c < VIMSUGVERSION)
+ {
+! semsg(_("E779: Old .sug file, needs to be updated: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+ else if (c > VIMSUGVERSION)
+ {
+! semsg(_("E780: .sug file is for newer version of Vim: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+***************
+*** 718,724 ****
+ timestamp = get8ctime(fd); /* <timestamp> */
+ if (timestamp != slang->sl_sugtime)
+ {
+! EMSG2(_("E781: .sug file doesn't match .spl file: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+--- 718,724 ----
+ timestamp = get8ctime(fd); /* <timestamp> */
+ if (timestamp != slang->sl_sugtime)
+ {
+! semsg(_("E781: .sug file doesn't match .spl file: %s"),
+ slang->sl_fname);
+ goto nextone;
+ }
+***************
+*** 731,737 ****
+ FALSE, 0) != 0)
+ {
+ someerror:
+! EMSG2(_("E782: error while reading .sug file: %s"),
+ slang->sl_fname);
+ slang_clear_sug(slang);
+ goto nextone;
+--- 731,737 ----
+ FALSE, 0) != 0)
+ {
+ someerror:
+! semsg(_("E782: error while reading .sug file: %s"),
+ slang->sl_fname);
+ slang_clear_sug(slang);
+ goto nextone;
+***************
+*** 2225,2231 ****
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return NULL;
+ }
+
+--- 2225,2231 ----
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return NULL;
+ }
+
+***************
+*** 2277,2283 ****
+ pc = string_convert(&spin->si_conv, rline, NULL);
+ if (pc == NULL)
+ {
+! smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, rline);
+ continue;
+ }
+--- 2277,2283 ----
+ pc = string_convert(&spin->si_conv, rline, NULL);
+ if (pc == NULL)
+ {
+! smsg(_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, rline);
+ continue;
+ }
+***************
+*** 2325,2335 ****
+ if (aff->af_enc != NULL && !spin->si_ascii
+ && convert_setup(&spin->si_conv, aff->af_enc,
+ p_enc) == FAIL)
+! smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
+ fname, aff->af_enc, p_enc);
+ spin->si_conv.vc_fail = TRUE;
+ #else
+! smsg((char_u *)_("Conversion in %s not supported"), fname);
+ #endif
+ }
+ else if (is_aff_rule(items, itemcnt, "FLAG", 2)
+--- 2325,2335 ----
+ if (aff->af_enc != NULL && !spin->si_ascii
+ && convert_setup(&spin->si_conv, aff->af_enc,
+ p_enc) == FAIL)
+! smsg(_("Conversion in %s not supported: from %s to %s"),
+ fname, aff->af_enc, p_enc);
+ spin->si_conv.vc_fail = TRUE;
+ #else
+! smsg(_("Conversion in %s not supported"), fname);
+ #endif
+ }
+ else if (is_aff_rule(items, itemcnt, "FLAG", 2)
+***************
+*** 2342,2348 ****
+ else if (STRCMP(items[1], "caplong") == 0)
+ aff->af_flagtype = AFT_CAPLONG;
+ else
+! smsg((char_u *)_("Invalid value for FLAG in %s line %d: %s"),
+ fname, lnum, items[1]);
+ if (aff->af_rare != 0
+ || aff->af_keepcase != 0
+--- 2342,2348 ----
+ else if (STRCMP(items[1], "caplong") == 0)
+ aff->af_flagtype = AFT_CAPLONG;
+ else
+! smsg(_("Invalid value for FLAG in %s line %d: %s"),
+ fname, lnum, items[1]);
+ if (aff->af_rare != 0
+ || aff->af_keepcase != 0
+***************
+*** 2355,2361 ****
+ || compflags != NULL
+ || aff->af_suff.ht_used > 0
+ || aff->af_pref.ht_used > 0)
+! smsg((char_u *)_("FLAG after using flags in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (spell_info_item(items[0]))
+--- 2355,2361 ----
+ || compflags != NULL
+ || aff->af_suff.ht_used > 0
+ || aff->af_pref.ht_used > 0)
+! smsg(_("FLAG after using flags in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (spell_info_item(items[0]))
+***************
+*** 2446,2452 ****
+ aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1],
+ fname, lnum);
+ if (aff->af_pref.ht_used > 0)
+! smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"),
+ fname, lnum);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2)
+--- 2446,2452 ----
+ aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1],
+ fname, lnum);
+ if (aff->af_pref.ht_used > 0)
+! smsg(_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"),
+ fname, lnum);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2)
+***************
+*** 2455,2461 ****
+ aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1],
+ fname, lnum);
+ if (aff->af_pref.ht_used > 0)
+! smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"),
+ fname, lnum);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2)
+--- 2455,2461 ----
+ aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1],
+ fname, lnum);
+ if (aff->af_pref.ht_used > 0)
+! smsg(_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"),
+ fname, lnum);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2)
+***************
+*** 2476,2482 ****
+ /* We don't use the count, but do check that it's a number and
+ * not COMPOUNDRULE mistyped. */
+ if (atoi((char *)items[1]) == 0)
+! smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
+--- 2476,2482 ----
+ /* We don't use the count, but do check that it's a number and
+ * not COMPOUNDRULE mistyped. */
+ if (atoi((char *)items[1]) == 0)
+! smsg(_("Wrong COMPOUNDRULES value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
+***************
+*** 2507,2513 ****
+ {
+ compmax = atoi((char *)items[1]);
+ if (compmax == 0)
+! smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2)
+--- 2507,2513 ----
+ {
+ compmax = atoi((char *)items[1]);
+ if (compmax == 0)
+! smsg(_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2)
+***************
+*** 2515,2521 ****
+ {
+ compminlen = atoi((char *)items[1]);
+ if (compminlen == 0)
+! smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2)
+--- 2515,2521 ----
+ {
+ compminlen = atoi((char *)items[1]);
+ if (compminlen == 0)
+! smsg(_("Wrong COMPOUNDMIN value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2)
+***************
+*** 2523,2529 ****
+ {
+ compsylmax = atoi((char *)items[1]);
+ if (compsylmax == 0)
+! smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1))
+--- 2523,2529 ----
+ {
+ compsylmax = atoi((char *)items[1]);
+ if (compsylmax == 0)
+! smsg(_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1))
+***************
+*** 2545,2551 ****
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2))
+ {
+ if (atoi((char *)items[1]) == 0)
+! smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3))
+--- 2545,2551 ----
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2))
+ {
+ if (atoi((char *)items[1]) == 0)
+! smsg(_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3))
+***************
+*** 2619,2628 ****
+ {
+ cur_aff = HI2AH(hi);
+ if (cur_aff->ah_combine != (*items[2] == 'Y'))
+! smsg((char_u *)_("Different combining flag in continued affix block in %s line %d: %s"),
+ fname, lnum, items[1]);
+ if (!cur_aff->ah_follows)
+! smsg((char_u *)_("Duplicate affix in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else
+--- 2619,2628 ----
+ {
+ cur_aff = HI2AH(hi);
+ if (cur_aff->ah_combine != (*items[2] == 'Y'))
+! smsg(_("Different combining flag in continued affix block in %s line %d: %s"),
+ fname, lnum, items[1]);
+ if (!cur_aff->ah_follows)
+! smsg(_("Duplicate affix in %s line %d: %s"),
+ fname, lnum, items[1]);
+ }
+ else
+***************
+*** 2644,2650 ****
+ || cur_aff->ah_flag == aff->af_nosuggest
+ || cur_aff->ah_flag == aff->af_needcomp
+ || cur_aff->ah_flag == aff->af_comproot)
+! smsg((char_u *)_("Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %s"),
+ fname, lnum, items[1]);
+ STRCPY(cur_aff->ah_key, items[1]);
+ hash_add(tp, cur_aff->ah_key);
+--- 2644,2650 ----
+ || cur_aff->ah_flag == aff->af_nosuggest
+ || cur_aff->ah_flag == aff->af_needcomp
+ || cur_aff->ah_flag == aff->af_comproot)
+! smsg(_("Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s line %d: %s"),
+ fname, lnum, items[1]);
+ STRCPY(cur_aff->ah_key, items[1]);
+ hash_add(tp, cur_aff->ah_key);
+***************
+*** 2665,2674 ****
+ /* Myspell allows extra text after the item, but that might
+ * mean mistakes go unnoticed. Require a comment-starter. */
+ if (itemcnt > lasti && *items[lasti] != '#')
+! smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
+
+ if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0)
+! smsg((char_u *)_("Expected Y or N in %s line %d: %s"),
+ fname, lnum, items[2]);
+
+ if (*items[0] == 'P' && aff->af_pfxpostpone)
+--- 2665,2674 ----
+ /* Myspell allows extra text after the item, but that might
+ * mean mistakes go unnoticed. Require a comment-starter. */
+ if (itemcnt > lasti && *items[lasti] != '#')
+! smsg(_(e_afftrailing), fname, lnum, items[lasti]);
+
+ if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0)
+! smsg(_("Expected Y or N in %s line %d: %s"),
+ fname, lnum, items[2]);
+
+ if (*items[0] == 'P' && aff->af_pfxpostpone)
+***************
+*** 2710,2716 ****
+ && *items[lasti] != '#'
+ && (STRCMP(items[lasti], "-") != 0
+ || itemcnt != lasti + 1))
+! smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]);
+
+ /* New item for an affix letter. */
+ --aff_todo;
+--- 2710,2716 ----
+ && *items[lasti] != '#'
+ && (STRCMP(items[lasti], "-") != 0
+ || itemcnt != lasti + 1))
+! smsg(_(e_afftrailing), fname, lnum, items[lasti]);
+
+ /* New item for an affix letter. */
+ --aff_todo;
+***************
+*** 2754,2760 ****
+ aff_entry->ae_prog = vim_regcomp(buf,
+ RE_MAGIC + RE_STRING + RE_STRICT);
+ if (aff_entry->ae_prog == NULL)
+! smsg((char_u *)_("Broken condition in %s line %d: %s"),
+ fname, lnum, items[4]);
+ }
+
+--- 2754,2760 ----
+ aff_entry->ae_prog = vim_regcomp(buf,
+ RE_MAGIC + RE_STRING + RE_STRICT);
+ if (aff_entry->ae_prog == NULL)
+! smsg(_("Broken condition in %s line %d: %s"),
+ fname, lnum, items[4]);
+ }
+
+***************
+*** 2902,2908 ****
+ {
+ /* Ignore REP/REPSAL count */;
+ if (!isdigit(*items[1]))
+! smsg((char_u *)_("Expected REP(SAL) count in %s line %d"),
+ fname, lnum);
+ }
+ else if ((STRCMP(items[0], "REP") == 0
+--- 2902,2908 ----
+ {
+ /* Ignore REP/REPSAL count */;
+ if (!isdigit(*items[1]))
+! smsg(_("Expected REP(SAL) count in %s line %d"),
+ fname, lnum);
+ }
+ else if ((STRCMP(items[0], "REP") == 0
+***************
+*** 2913,2919 ****
+ /* Myspell ignores extra arguments, we require it starts with
+ * # to detect mistakes. */
+ if (itemcnt > 3 && items[3][0] != '#')
+! smsg((char_u *)_(e_afftrailing), fname, lnum, items[3]);
+ if (items[0][3] == 'S' ? do_repsal : do_rep)
+ {
+ /* Replace underscore with space (can't include a space
+--- 2913,2919 ----
+ /* Myspell ignores extra arguments, we require it starts with
+ * # to detect mistakes. */
+ if (itemcnt > 3 && items[3][0] != '#')
+! smsg(_(e_afftrailing), fname, lnum, items[3]);
+ if (items[0][3] == 'S' ? do_repsal : do_rep)
+ {
+ /* Replace underscore with space (can't include a space
+***************
+*** 2937,2943 ****
+ /* First line contains the count. */
+ found_map = TRUE;
+ if (!isdigit(*items[1]))
+! smsg((char_u *)_("Expected MAP count in %s line %d"),
+ fname, lnum);
+ }
+ else if (do_mapline)
+--- 2937,2943 ----
+ /* First line contains the count. */
+ found_map = TRUE;
+ if (!isdigit(*items[1]))
+! smsg(_("Expected MAP count in %s line %d"),
+ fname, lnum);
+ }
+ else if (do_mapline)
+***************
+*** 2956,2962 ****
+ && vim_strchr(spin->si_map.ga_data, c)
+ != NULL)
+ || vim_strchr(p, c) != NULL)
+! smsg((char_u *)_("Duplicate character in MAP in %s line %d"),
+ fname, lnum);
+ }
+
+--- 2956,2962 ----
+ && vim_strchr(spin->si_map.ga_data, c)
+ != NULL)
+ || vim_strchr(p, c) != NULL)
+! smsg(_("Duplicate character in MAP in %s line %d"),
+ fname, lnum);
+ }
+
+***************
+*** 3013,3019 ****
+ }
+ }
+ else
+! smsg((char_u *)_("Unrecognized or duplicate item in %s line %d: %s"),
+ fname, lnum, items[0]);
+ }
+ }
+--- 3013,3019 ----
+ }
+ }
+ else
+! smsg(_("Unrecognized or duplicate item in %s line %d: %s"),
+ fname, lnum, items[0]);
+ }
+ }
+***************
+*** 3041,3047 ****
+ )
+ {
+ if (fol == NULL || low == NULL || upp == NULL)
+! smsg((char_u *)_("Missing FOL/LOW/UPP line in %s"), fname);
+ else
+ (void)set_spell_chartab(fol, low, upp);
+ }
+--- 3041,3047 ----
+ )
+ {
+ if (fol == NULL || low == NULL || upp == NULL)
+! smsg(_("Missing FOL/LOW/UPP line in %s"), fname);
+ else
+ (void)set_spell_chartab(fol, low, upp);
+ }
+***************
+*** 3067,3073 ****
+ if (compsylmax != 0)
+ {
+ if (syllable == NULL)
+! smsg((char_u *)_("COMPOUNDSYLMAX used without SYLLABLE"));
+ aff_check_number(spin->si_compsylmax, compsylmax, "COMPOUNDSYLMAX");
+ spin->si_compsylmax = compsylmax;
+ }
+--- 3067,3073 ----
+ if (compsylmax != 0)
+ {
+ if (syllable == NULL)
+! smsg(_("COMPOUNDSYLMAX used without SYLLABLE"));
+ aff_check_number(spin->si_compsylmax, compsylmax, "COMPOUNDSYLMAX");
+ spin->si_compsylmax = compsylmax;
+ }
+***************
+*** 3101,3110 ****
+ if (sofofrom != NULL || sofoto != NULL)
+ {
+ if (sofofrom == NULL || sofoto == NULL)
+! smsg((char_u *)_("Missing SOFO%s line in %s"),
+ sofofrom == NULL ? "FROM" : "TO", fname);
+ else if (spin->si_sal.ga_len > 0)
+! smsg((char_u *)_("Both SAL and SOFO lines in %s"), fname);
+ else
+ {
+ aff_check_string(spin->si_sofofr, sofofrom, "SOFOFROM");
+--- 3101,3110 ----
+ if (sofofrom != NULL || sofoto != NULL)
+ {
+ if (sofofrom == NULL || sofoto == NULL)
+! smsg(_("Missing SOFO%s line in %s"),
+ sofofrom == NULL ? "FROM" : "TO", fname);
+ else if (spin->si_sal.ga_len > 0)
+! smsg(_("Both SAL and SOFO lines in %s"), fname);
+ else
+ {
+ aff_check_string(spin->si_sofofr, sofofrom, "SOFOFROM");
+***************
+*** 3208,3222 ****
+ if (res == 0)
+ {
+ if (flagtype == AFT_NUM)
+! smsg((char_u *)_("Flag is not a number in %s line %d: %s"),
+ fname, lnum, item);
+ else
+! smsg((char_u *)_("Illegal flag in %s line %d: %s"),
+ fname, lnum, item);
+ }
+ if (*p != NUL)
+ {
+! smsg((char_u *)_(e_affname), fname, lnum, item);
+ return 0;
+ }
+
+--- 3208,3222 ----
+ if (res == 0)
+ {
+ if (flagtype == AFT_NUM)
+! smsg(_("Flag is not a number in %s line %d: %s"),
+ fname, lnum, item);
+ else
+! smsg(_("Illegal flag in %s line %d: %s"),
+ fname, lnum, item);
+ }
+ if (*p != NUL)
+ {
+! smsg(_(e_affname), fname, lnum, item);
+ return 0;
+ }
+
+***************
+*** 3419,3425 ****
+ aff_check_number(int spinval, int affval, char *name)
+ {
+ if (spinval != 0 && spinval != affval)
+! smsg((char_u *)_("%s value differs from what is used in another .aff file"), name);
+ }
+
+ /*
+--- 3419,3425 ----
+ aff_check_number(int spinval, int affval, char *name)
+ {
+ if (spinval != 0 && spinval != affval)
+! smsg(_("%s value differs from what is used in another .aff file"), name);
+ }
+
+ /*
+***************
+*** 3429,3435 ****
+ aff_check_string(char_u *spinval, char_u *affval, char *name)
+ {
+ if (spinval != NULL && STRCMP(spinval, affval) != 0)
+! smsg((char_u *)_("%s value differs from what is used in another .aff file"), name);
+ }
+
+ /*
+--- 3429,3435 ----
+ aff_check_string(char_u *spinval, char_u *affval, char *name)
+ {
+ if (spinval != NULL && STRCMP(spinval, affval) != 0)
+! smsg(_("%s value differs from what is used in another .aff file"), name);
+ }
+
+ /*
+***************
+*** 3549,3555 ****
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return FAIL;
+ }
+
+--- 3549,3555 ----
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return FAIL;
+ }
+
+***************
+*** 3566,3572 ****
+ /* Read and ignore the first line: word count. */
+ (void)vim_fgets(line, MAXLINELEN, fd);
+ if (!vim_isdigit(*skipwhite(line)))
+! EMSG2(_("E760: No word count in %s"), fname);
+
+ /*
+ * Read all the lines in the file one by one.
+--- 3566,3572 ----
+ /* Read and ignore the first line: word count. */
+ (void)vim_fgets(line, MAXLINELEN, fd);
+ if (!vim_isdigit(*skipwhite(line)))
+! semsg(_("E760: No word count in %s"), fname);
+
+ /*
+ * Read all the lines in the file one by one.
+***************
+*** 3596,3602 ****
+ pc = string_convert(&spin->si_conv, line, NULL);
+ if (pc == NULL)
+ {
+! smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, line);
+ continue;
+ }
+--- 3596,3602 ----
+ pc = string_convert(&spin->si_conv, line, NULL);
+ if (pc == NULL)
+ {
+! smsg(_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, line);
+ continue;
+ }
+***************
+*** 3661,3670 ****
+ if (!HASHITEM_EMPTY(hi))
+ {
+ if (p_verbose > 0)
+! smsg((char_u *)_("Duplicate word in %s line %d: %s"),
+ fname, lnum, dw);
+ else if (duplicate == 0)
+! smsg((char_u *)_("First duplicate word in %s line %d: %s"),
+ fname, lnum, dw);
+ ++duplicate;
+ }
+--- 3661,3670 ----
+ if (!HASHITEM_EMPTY(hi))
+ {
+ if (p_verbose > 0)
+! smsg(_("Duplicate word in %s line %d: %s"),
+ fname, lnum, dw);
+ else if (duplicate == 0)
+! smsg(_("First duplicate word in %s line %d: %s"),
+ fname, lnum, dw);
+ ++duplicate;
+ }
+***************
+*** 3719,3727 ****
+ }
+
+ if (duplicate > 0)
+! smsg((char_u *)_("%d duplicate word(s) in %s"), duplicate, fname);
+ if (spin->si_ascii && non_ascii > 0)
+! smsg((char_u *)_("Ignored %d word(s) with non-ASCII characters in %s"),
+ non_ascii, fname);
+ hash_clear(&ht);
+
+--- 3719,3727 ----
+ }
+
+ if (duplicate > 0)
+! smsg(_("%d duplicate word(s) in %s"), duplicate, fname);
+ if (spin->si_ascii && non_ascii > 0)
+! smsg(_("Ignored %d word(s) with non-ASCII characters in %s"),
+ non_ascii, fname);
+ hash_clear(&ht);
+
+***************
+*** 4133,4139 ****
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return FAIL;
+ }
+
+--- 4133,4139 ----
+ fd = mch_fopen((char *)fname, "r");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return FAIL;
+ }
+
+***************
+*** 4168,4174 ****
+ pc = string_convert(&spin->si_conv, rline, NULL);
+ if (pc == NULL)
+ {
+! smsg((char_u *)_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, rline);
+ continue;
+ }
+--- 4168,4174 ----
+ pc = string_convert(&spin->si_conv, rline, NULL);
+ if (pc == NULL)
+ {
+! smsg(_("Conversion failure for word in %s line %d: %s"),
+ fname, lnum, rline);
+ continue;
+ }
+***************
+*** 4187,4196 ****
+ if (STRNCMP(line, "encoding=", 9) == 0)
+ {
+ if (spin->si_conv.vc_type != CONV_NONE)
+! smsg((char_u *)_("Duplicate /encoding= line ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ else if (did_word)
+! smsg((char_u *)_("/encoding= line after word ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ else
+ {
+--- 4187,4196 ----
+ if (STRNCMP(line, "encoding=", 9) == 0)
+ {
+ if (spin->si_conv.vc_type != CONV_NONE)
+! smsg(_("Duplicate /encoding= line ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ else if (did_word)
+! smsg(_("/encoding= line after word ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ else
+ {
+***************
+*** 4203,4214 ****
+ if (enc != NULL && !spin->si_ascii
+ && convert_setup(&spin->si_conv, enc,
+ p_enc) == FAIL)
+! smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
+ fname, line, p_enc);
+ vim_free(enc);
+ spin->si_conv.vc_fail = TRUE;
+ #else
+! smsg((char_u *)_("Conversion in %s not supported"), fname);
+ #endif
+ }
+ continue;
+--- 4203,4214 ----
+ if (enc != NULL && !spin->si_ascii
+ && convert_setup(&spin->si_conv, enc,
+ p_enc) == FAIL)
+! smsg(_("Conversion in %s not supported: from %s to %s"),
+ fname, line, p_enc);
+ vim_free(enc);
+ spin->si_conv.vc_fail = TRUE;
+ #else
+! smsg(_("Conversion in %s not supported"), fname);
+ #endif
+ }
+ continue;
+***************
+*** 4217,4229 ****
+ if (STRNCMP(line, "regions=", 8) == 0)
+ {
+ if (spin->si_region_count > 1)
+! smsg((char_u *)_("Duplicate /regions= line ignored in %s line %d: %s"),
+ fname, lnum, line);
+ else
+ {
+ line += 8;
+ if (STRLEN(line) > MAXREGIONS * 2)
+! smsg((char_u *)_("Too many regions in %s line %d: %s"),
+ fname, lnum, line);
+ else
+ {
+--- 4217,4229 ----
+ if (STRNCMP(line, "regions=", 8) == 0)
+ {
+ if (spin->si_region_count > 1)
+! smsg(_("Duplicate /regions= line ignored in %s line %d: %s"),
+ fname, lnum, line);
+ else
+ {
+ line += 8;
+ if (STRLEN(line) > MAXREGIONS * 2)
+! smsg(_("Too many regions in %s line %d: %s"),
+ fname, lnum, line);
+ else
+ {
+***************
+*** 4237,4243 ****
+ continue;
+ }
+
+! smsg((char_u *)_("/ line ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ continue;
+ }
+--- 4237,4243 ----
+ continue;
+ }
+
+! smsg(_("/ line ignored in %s line %d: %s"),
+ fname, lnum, line - 1);
+ continue;
+ }
+***************
+*** 4267,4273 ****
+ l = *p - '0';
+ if (l == 0 || l > spin->si_region_count)
+ {
+! smsg((char_u *)_("Invalid region nr in %s line %d: %s"),
+ fname, lnum, p);
+ break;
+ }
+--- 4267,4273 ----
+ l = *p - '0';
+ if (l == 0 || l > spin->si_region_count)
+ {
+! smsg(_("Invalid region nr in %s line %d: %s"),
+ fname, lnum, p);
+ break;
+ }
+***************
+*** 4275,4281 ****
+ }
+ else
+ {
+! smsg((char_u *)_("Unrecognized flags in %s line %d: %s"),
+ fname, lnum, p);
+ break;
+ }
+--- 4275,4281 ----
+ }
+ else
+ {
+! smsg(_("Unrecognized flags in %s line %d: %s"),
+ fname, lnum, p);
+ break;
+ }
+***************
+*** 4346,4352 ****
+ {
+ if (!spin->si_did_emsg)
+ {
+! EMSG(_("E845: Insufficient memory, word list will be incomplete"));
+ spin->si_did_emsg = TRUE;
+ }
+ return NULL;
+--- 4346,4352 ----
+ {
+ if (!spin->si_did_emsg)
+ {
+! emsg(_("E845: Insufficient memory, word list will be incomplete"));
+ spin->si_did_emsg = TRUE;
+ }
+ return NULL;
+***************
+*** 4576,4582 ****
+ node = *prev;
+ }
+ #ifdef SPELL_PRINTTREE
+! smsg((char_u *)"Added \"%s\"", word);
+ spell_print_tree(root->wn_sibling);
+ #endif
+
+--- 4576,4582 ----
+ node = *prev;
+ }
+ #ifdef SPELL_PRINTTREE
+! smsg("Added \"%s\"", word);
+ spell_print_tree(root->wn_sibling);
+ #endif
+
+***************
+*** 4916,4922 ****
+ fd = mch_fopen((char *)fname, "w");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return FAIL;
+ }
+
+--- 4916,4922 ----
+ fd = mch_fopen((char *)fname, "w");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return FAIL;
+ }
+
+***************
+*** 5305,5311 ****
+ if (fwv != (size_t)1)
+ retval = FAIL;
+ if (retval == FAIL)
+! EMSG(_(e_write));
+
+ return retval;
+ }
+--- 5305,5311 ----
+ if (fwv != (size_t)1)
+ retval = FAIL;
+ if (retval == FAIL)
+! emsg(_(e_write));
+
+ return retval;
+ }
+***************
+*** 5450,5456 ****
+ if (fd != NULL)
+ if (putc(np->wn_byte, fd) == EOF) /* <byte> or <xbyte> */
+ {
+! EMSG(_(e_write));
+ return 0;
+ }
+ }
+--- 5450,5456 ----
+ if (fd != NULL)
+ if (putc(np->wn_byte, fd) == EOF) /* <byte> or <xbyte> */
+ {
+! emsg(_(e_write));
+ return 0;
+ }
+ }
+***************
+*** 5555,5561 ****
+ if (sug_maketable(spin) == FAIL)
+ goto theend;
+
+! smsg((char_u *)_("Number of words after soundfolding: %ld"),
+ (long)spin->si_spellbuf->b_ml.ml_line_count);
+
+ /*
+--- 5555,5561 ----
+ if (sug_maketable(spin) == FAIL)
+ goto theend;
+
+! smsg(_("Number of words after soundfolding: %ld"),
+ (long)spin->si_spellbuf->b_ml.ml_line_count);
+
+ /*
+***************
+*** 5682,5688 ****
+ }
+ }
+
+! smsg((char_u *)_("Total number of words: %d"), words_done);
+
+ return OK;
+ }
+--- 5682,5688 ----
+ }
+ }
+
+! smsg(_("Total number of words: %d"), words_done);
+
+ return OK;
+ }
+***************
+*** 5848,5854 ****
+ fd = mch_fopen((char *)fname, "w");
+ if (fd == NULL)
+ {
+! EMSG2(_(e_notopen), fname);
+ return;
+ }
+
+--- 5848,5854 ----
+ fd = mch_fopen((char *)fname, "w");
+ if (fd == NULL)
+ {
+! semsg(_(e_notopen), fname);
+ return;
+ }
+
+***************
+*** 5861,5867 ****
+ */
+ if (fwrite(VIMSUGMAGIC, VIMSUGMAGICL, (size_t)1, fd) != 1) /* <fileID> */
+ {
+! EMSG(_(e_write));
+ goto theend;
+ }
+ putc(VIMSUGVERSION, fd); /* <versionnr> */
+--- 5861,5867 ----
+ */
+ if (fwrite(VIMSUGMAGIC, VIMSUGMAGICL, (size_t)1, fd) != 1) /* <fileID> */
+ {
+! emsg(_(e_write));
+ goto theend;
+ }
+ putc(VIMSUGVERSION, fd); /* <versionnr> */
+***************
+*** 5903,5909 ****
+ len = (int)STRLEN(line) + 1;
+ if (fwrite(line, (size_t)len, (size_t)1, fd) == 0)
+ {
+! EMSG(_(e_write));
+ goto theend;
+ }
+ spin->si_memtot += len;
+--- 5903,5909 ----
+ len = (int)STRLEN(line) + 1;
+ if (fwrite(line, (size_t)len, (size_t)1, fd) == 0)
+ {
+! emsg(_(e_write));
+ goto theend;
+ }
+ spin->si_memtot += len;
+***************
+*** 5911,5917 ****
+
+ /* Write another byte to check for errors. */
+ if (putc(0, fd) == EOF)
+! EMSG(_(e_write));
+
+ vim_snprintf((char *)IObuff, IOSIZE,
+ _("Estimated runtime memory use: %d bytes"), spin->si_memtot);
+--- 5911,5917 ----
+
+ /* Write another byte to check for errors. */
+ if (putc(0, fd) == EOF)
+! emsg(_(e_write));
+
+ vim_snprintf((char *)IObuff, IOSIZE,
+ _("Estimated runtime memory use: %d bytes"), spin->si_memtot);
+***************
+*** 6010,6032 ****
+ }
+
+ if (incount <= 0)
+! EMSG(_(e_invarg)); /* need at least output and input names */
+ else if (vim_strchr(gettail(wfname), '_') != NULL)
+! EMSG(_("E751: Output file name must not have region name"));
+ else if (incount > MAXREGIONS)
+! EMSGN(_("E754: Only up to %ld regions supported"), MAXREGIONS);
+ else
+ {
+ /* Check for overwriting before doing things that may take a lot of
+ * time. */
+ if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+ {
+! EMSG(_(e_exists));
+ goto theend;
+ }
+ if (mch_isdir(wfname))
+ {
+! EMSG2(_(e_isadir2), wfname);
+ goto theend;
+ }
+
+--- 6010,6032 ----
+ }
+
+ if (incount <= 0)
+! emsg(_(e_invarg)); /* need at least output and input names */
+ else if (vim_strchr(gettail(wfname), '_') != NULL)
+! emsg(_("E751: Output file name must not have region name"));
+ else if (incount > MAXREGIONS)
+! semsg(_("E754: Only up to %ld regions supported"), MAXREGIONS);
+ else
+ {
+ /* Check for overwriting before doing things that may take a lot of
+ * time. */
+ if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+ {
+! emsg(_(e_exists));
+ goto theend;
+ }
+ if (mch_isdir(wfname))
+ {
+! semsg(_(e_isadir2), wfname);
+ goto theend;
+ }
+
+***************
+*** 6048,6054 ****
+ if (STRLEN(gettail(innames[i])) < 5
+ || innames[i][len - 3] != '_')
+ {
+! EMSG2(_("E755: Invalid region in %s"), innames[i]);
+ goto theend;
+ }
+ spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+--- 6048,6054 ----
+ if (STRLEN(gettail(innames[i])) < 5
+ || innames[i][len - 3] != '_')
+ {
+! semsg(_("E755: Invalid region in %s"), innames[i]);
+ goto theend;
+ }
+ spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+***************
+*** 6260,6266 ****
+
+ if (*curwin->w_s->b_p_spf == NUL)
+ {
+! EMSG2(_(e_notset), "spellfile");
+ return;
+ }
+ fnamebuf = alloc(MAXPATHL);
+--- 6260,6266 ----
+
+ if (*curwin->w_s->b_p_spf == NUL)
+ {
+! semsg(_(e_notset), "spellfile");
+ return;
+ }
+ fnamebuf = alloc(MAXPATHL);
+***************
+*** 6274,6280 ****
+ break;
+ if (*spf == NUL)
+ {
+! EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
+ vim_free(fnamebuf);
+ return;
+ }
+--- 6274,6280 ----
+ break;
+ if (*spf == NUL)
+ {
+! semsg(_("E765: 'spellfile' does not have %ld entries"), idx);
+ vim_free(fnamebuf);
+ return;
+ }
+***************
+*** 6286,6292 ****
+ buf = NULL;
+ if (buf != NULL && bufIsChanged(buf))
+ {
+! EMSG(_(e_bufloaded));
+ vim_free(fnamebuf);
+ return;
+ }
+--- 6286,6292 ----
+ buf = NULL;
+ if (buf != NULL && bufIsChanged(buf))
+ {
+! emsg(_(e_bufloaded));
+ vim_free(fnamebuf);
+ return;
+ }
+***************
+*** 6321,6327 ****
+ if (undo)
+ {
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word '%.*s' removed from %s"),
+ len, word, NameBuff);
+ }
+ }
+--- 6321,6327 ----
+ if (undo)
+ {
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg(_("Word '%.*s' removed from %s"),
+ len, word, NameBuff);
+ }
+ }
+***************
+*** 6358,6364 ****
+ }
+
+ if (fd == NULL)
+! EMSG2(_(e_notopen), fname);
+ else
+ {
+ if (bad)
+--- 6358,6364 ----
+ }
+
+ if (fd == NULL)
+! semsg(_(e_notopen), fname);
+ else
+ {
+ if (bad)
+***************
+*** 6368,6374 ****
+ fclose(fd);
+
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word '%.*s' added to %s"), len, word, NameBuff);
+ }
+ }
+
+--- 6368,6374 ----
+ fclose(fd);
+
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg(_("Word '%.*s' added to %s"), len, word, NameBuff);
+ }
+ }
+
+***************
+*** 6485,6491 ****
+ {
+ if (*pl == NUL || *pu == NUL)
+ {
+! EMSG(_(e_affform));
+ return FAIL;
+ }
+ #ifdef FEAT_MBYTE
+--- 6485,6491 ----
+ {
+ if (*pl == NUL || *pu == NUL)
+ {
+! emsg(_(e_affform));
+ return FAIL;
+ }
+ #ifdef FEAT_MBYTE
+***************
+*** 6511,6517 ****
+ {
+ if (f >= 256)
+ {
+! EMSG(_(e_affrange));
+ return FAIL;
+ }
+ new_st.st_fold[l] = f;
+--- 6511,6517 ----
+ {
+ if (f >= 256)
+ {
+! emsg(_(e_affrange));
+ return FAIL;
+ }
+ new_st.st_fold[l] = f;
+***************
+*** 6524,6530 ****
+ {
+ if (f >= 256)
+ {
+! EMSG(_(e_affrange));
+ return FAIL;
+ }
+ new_st.st_fold[u] = f;
+--- 6524,6530 ----
+ {
+ if (f >= 256)
+ {
+! emsg(_(e_affrange));
+ return FAIL;
+ }
+ new_st.st_fold[u] = f;
+***************
+*** 6535,6541 ****
+
+ if (*pl != NUL || *pu != NUL)
+ {
+! EMSG(_(e_affform));
+ return FAIL;
+ }
+
+--- 6535,6541 ----
+
+ if (*pl != NUL || *pu != NUL)
+ {
+! emsg(_(e_affform));
+ return FAIL;
+ }
+
+***************
+*** 6599,6605 ****
+ || spelltab.st_fold[i] != new_st->st_fold[i]
+ || spelltab.st_upper[i] != new_st->st_upper[i])
+ {
+! EMSG(_("E763: Word characters differ between spell files"));
+ return FAIL;
+ }
+ }
+--- 6599,6605 ----
+ || spelltab.st_fold[i] != new_st->st_fold[i]
+ || spelltab.st_upper[i] != new_st->st_upper[i])
+ {
+! emsg(_("E763: Word characters differ between spell files"));
+ return FAIL;
+ }
+ }
+***************
+*** 6725,6731 ****
+ {
+ /* This should have been checked when generating the .spl
+ * file. */
+! EMSG(_("E783: duplicate char in MAP entry"));
+ vim_free(b);
+ }
+ }
+--- 6725,6731 ----
+ {
+ /* This should have been checked when generating the .spl
+ * file. */
+! emsg(_("E783: duplicate char in MAP entry"));
+ vim_free(b);
+ }
+ }
+*** ../vim-8.1.0742/src/structs.h 2019-01-12 22:47:01.264088074 +0100
+--- src/structs.h 2019-01-13 22:54:25.947589147 +0100
+***************
+*** 889,896 ****
+ */
+ struct msglist
+ {
+! char_u *msg; /* original message */
+! char_u *throw_msg; /* msg to throw: usually original one */
+ struct msglist *next; /* next of several messages in a row */
+ };
+
+--- 889,896 ----
+ */
+ struct msglist
+ {
+! char *msg; /* original message */
+! char *throw_msg; /* msg to throw: usually original one */
+ struct msglist *next; /* next of several messages in a row */
+ };
+
+***************
+*** 912,918 ****
+ struct vim_exception
+ {
+ except_type_T type; /* exception type */
+! char_u *value; /* exception value */
+ struct msglist *messages; /* message(s) causing error exception */
+ char_u *throw_name; /* name of the throw point */
+ linenr_T throw_lnum; /* line number of the throw point */
+--- 912,918 ----
+ struct vim_exception
+ {
+ except_type_T type; /* exception type */
+! char *value; /* exception value */
+ struct msglist *messages; /* message(s) causing error exception */
+ char_u *throw_name; /* name of the throw point */
+ linenr_T throw_lnum; /* line number of the throw point */
+*** ../vim-8.1.0742/src/syntax.c 2018-10-25 13:31:33.829906902 +0200
+--- src/syntax.c 2019-01-13 23:15:25.553979855 +0100
+***************
+*** 3444,3450 ****
+ else if (STRNICMP(arg, "off", 3) == 0 && next - arg == 3)
+ curwin->w_s->b_syn_conceal = FALSE;
+ else
+! EMSG2(_("E390: Illegal argument: %s"), arg);
+ #endif
+ }
+
+--- 3444,3450 ----
+ else if (STRNICMP(arg, "off", 3) == 0 && next - arg == 3)
+ curwin->w_s->b_syn_conceal = FALSE;
+ else
+! semsg(_("E390: Illegal argument: %s"), arg);
+ #endif
+ }
+
+***************
+*** 3474,3480 ****
+ else if (STRNICMP(arg, "ignore", 6) == 0 && next - arg == 6)
+ curwin->w_s->b_syn_ic = TRUE;
+ else
+! EMSG2(_("E390: Illegal argument: %s"), arg);
+ }
+
+ /*
+--- 3474,3480 ----
+ else if (STRNICMP(arg, "ignore", 6) == 0 && next - arg == 6)
+ curwin->w_s->b_syn_ic = TRUE;
+ else
+! semsg(_("E390: Illegal argument: %s"), arg);
+ }
+
+ /*
+***************
+*** 3508,3514 ****
+ curwin->w_s->b_syn_spell = SYNSPL_DEFAULT;
+ else
+ {
+! EMSG2(_("E390: Illegal argument: %s"), arg);
+ return;
+ }
+
+--- 3508,3514 ----
+ curwin->w_s->b_syn_spell = SYNSPL_DEFAULT;
+ else
+ {
+! semsg(_("E390: Illegal argument: %s"), arg);
+ return;
+ }
+
+***************
+*** 3764,3770 ****
+ id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1));
+ if (id == 0)
+ {
+! EMSG2(_("E391: No such syntax cluster: %s"), arg);
+ break;
+ }
+ else
+--- 3764,3770 ----
+ id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1));
+ if (id == 0)
+ {
+! semsg(_("E391: No such syntax cluster: %s"), arg);
+ break;
+ }
+ else
+***************
+*** 3784,3790 ****
+ id = syn_namen2id(arg, (int)(arg_end - arg));
+ if (id == 0)
+ {
+! EMSG2(_(e_nogroup), arg);
+ break;
+ }
+ else
+--- 3784,3790 ----
+ id = syn_namen2id(arg, (int)(arg_end - arg));
+ if (id == 0)
+ {
+! semsg(_(e_nogroup), arg);
+ break;
+ }
+ else
+***************
+*** 3969,3975 ****
+ {
+ id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1));
+ if (id == 0)
+! EMSG2(_("E392: No such syntax cluster: %s"), arg);
+ else
+ syn_list_cluster(id - SYNID_CLUSTER);
+ }
+--- 3969,3975 ----
+ {
+ id = syn_scl_namen2id(arg + 1, (int)(arg_end - arg - 1));
+ if (id == 0)
+! semsg(_("E392: No such syntax cluster: %s"), arg);
+ else
+ syn_list_cluster(id - SYNID_CLUSTER);
+ }
+***************
+*** 3977,3983 ****
+ {
+ id = syn_namen2id(arg, (int)(arg_end - arg));
+ if (id == 0)
+! EMSG2(_(e_nogroup), arg);
+ else
+ syn_list_one(id, syncing, TRUE);
+ }
+--- 3977,3983 ----
+ {
+ id = syn_namen2id(arg, (int)(arg_end - arg));
+ if (id == 0)
+! semsg(_(e_nogroup), arg);
+ else
+ syn_list_one(id, syncing, TRUE);
+ }
+***************
+*** 4650,4656 ****
+ {
+ if (!opt->has_cont_list)
+ {
+! EMSG(_("E395: contains argument not accepted here"));
+ return NULL;
+ }
+ if (get_id_list(&arg, 8, &opt->cont_list, skip) == FAIL)
+--- 4650,4656 ----
+ {
+ if (!opt->has_cont_list)
+ {
+! emsg(_("E395: contains argument not accepted here"));
+ return NULL;
+ }
+ if (get_id_list(&arg, 8, &opt->cont_list, skip) == FAIL)
+***************
+*** 4689,4695 ****
+ #ifdef FEAT_CONCEAL
+ if (!vim_isprintc_strict(*conceal_char))
+ {
+! EMSG(_("E844: invalid cchar value"));
+ return NULL;
+ }
+ #endif
+--- 4689,4695 ----
+ #ifdef FEAT_CONCEAL
+ if (!vim_isprintc_strict(*conceal_char))
+ {
+! emsg(_("E844: invalid cchar value"));
+ return NULL;
+ }
+ #endif
+***************
+*** 4705,4711 ****
+ {
+ if (opt->sync_idx == NULL)
+ {
+! EMSG(_("E393: group[t]here not accepted here"));
+ return NULL;
+ }
+ gname_start = arg;
+--- 4705,4711 ----
+ {
+ if (opt->sync_idx == NULL)
+ {
+! emsg(_("E393: group[t]here not accepted here"));
+ return NULL;
+ }
+ gname_start = arg;
+***************
+*** 4729,4735 ****
+ }
+ if (i < 0)
+ {
+! EMSG2(_("E394: Didn't find region item for %s"), gname);
+ vim_free(gname);
+ return NULL;
+ }
+--- 4729,4735 ----
+ }
+ if (i < 0)
+ {
+! semsg(_("E394: Didn't find region item for %s"), gname);
+ vim_free(gname);
+ return NULL;
+ }
+***************
+*** 4787,4793 ****
+ int sgl_id = 1;
+ char_u *group_name_end;
+ char_u *rest;
+! char_u *errormsg = NULL;
+ int prev_toplvl_grp;
+ int prev_syn_inc_tag;
+ int source = FALSE;
+--- 4787,4793 ----
+ int sgl_id = 1;
+ char_u *group_name_end;
+ char_u *rest;
+! char *errormsg = NULL;
+ int prev_toplvl_grp;
+ int prev_syn_inc_tag;
+ int source = FALSE;
+***************
+*** 4802,4808 ****
+ rest = get_group_name(arg, &group_name_end);
+ if (rest == NULL)
+ {
+! EMSG((char_u *)_("E397: Filename required"));
+ return;
+ }
+ sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
+--- 4802,4808 ----
+ rest = get_group_name(arg, &group_name_end);
+ if (rest == NULL)
+ {
+! emsg(_("E397: Filename required"));
+ return;
+ }
+ sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
+***************
+*** 4827,4833 ****
+ if (expand_filename(eap, syn_cmdlinep, &errormsg) == FAIL)
+ {
+ if (errormsg != NULL)
+! EMSG(errormsg);
+ return;
+ }
+ }
+--- 4827,4833 ----
+ if (expand_filename(eap, syn_cmdlinep, &errormsg) == FAIL)
+ {
+ if (errormsg != NULL)
+! emsg(errormsg);
+ return;
+ }
+ }
+***************
+*** 4838,4844 ****
+ */
+ if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
+ {
+! EMSG((char_u *)_("E847: Too many syntax includes"));
+ return;
+ }
+ prev_syn_inc_tag = current_syn_inc_tag;
+--- 4838,4844 ----
+ */
+ if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
+ {
+! emsg(_("E847: Too many syntax includes"));
+ return;
+ }
+ prev_syn_inc_tag = current_syn_inc_tag;
+***************
+*** 4847,4853 ****
+ curwin->w_s->b_syn_topgrp = sgl_id;
+ if (source ? do_source(eap->arg, FALSE, DOSO_NONE) == FAIL
+ : source_runtime(eap->arg, DIP_ALL) == FAIL)
+! EMSG2(_(e_notopen), eap->arg);
+ curwin->w_s->b_syn_topgrp = prev_toplvl_grp;
+ current_syn_inc_tag = prev_syn_inc_tag;
+ }
+--- 4847,4853 ----
+ curwin->w_s->b_syn_topgrp = sgl_id;
+ if (source ? do_source(eap->arg, FALSE, DOSO_NONE) == FAIL
+ : source_runtime(eap->arg, DIP_ALL) == FAIL)
+! semsg(_(e_notopen), eap->arg);
+ curwin->w_s->b_syn_topgrp = prev_toplvl_grp;
+ current_syn_inc_tag = prev_syn_inc_tag;
+ }
+***************
+*** 4934,4947 ****
+ break;
+ if (p[1] == NUL)
+ {
+! EMSG2(_("E789: Missing ']': %s"), kw);
+ goto error;
+ }
+ if (p[1] == ']')
+ {
+ if (p[2] != NUL)
+ {
+! EMSG3(_("E890: trailing char after ']': %s]%s"),
+ kw, &p[2]);
+ goto error;
+ }
+--- 4934,4947 ----
+ break;
+ if (p[1] == NUL)
+ {
+! semsg(_("E789: Missing ']': %s"), kw);
+ goto error;
+ }
+ if (p[1] == ']')
+ {
+ if (p[2] != NUL)
+ {
+! semsg(_("E890: trailing char after ']': %s]%s"),
+ kw, &p[2]);
+ goto error;
+ }
+***************
+*** 4975,4981 ****
+ if (rest != NULL)
+ eap->nextcmd = check_nextcmd(rest);
+ else
+! EMSG2(_(e_invarg2), arg);
+
+ redraw_curbuf_later(SOME_VALID);
+ syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
+--- 4975,4981 ----
+ if (rest != NULL)
+ eap->nextcmd = check_nextcmd(rest);
+ else
+! semsg(_(e_invarg2), arg);
+
+ redraw_curbuf_later(SOME_VALID);
+ syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
+***************
+*** 5083,5089 ****
+ vim_free(syn_opt_arg.next_list);
+
+ if (rest == NULL)
+! EMSG2(_(e_invarg2), arg);
+ }
+
+ /*
+--- 5083,5089 ----
+ vim_free(syn_opt_arg.next_list);
+
+ if (rest == NULL)
+! semsg(_(e_invarg2), arg);
+ }
+
+ /*
+***************
+*** 5184,5190 ****
+ if (*rest != '=')
+ {
+ rest = NULL;
+! EMSG2(_("E398: Missing '=': %s"), arg);
+ break;
+ }
+ rest = skipwhite(rest + 1);
+--- 5184,5190 ----
+ if (*rest != '=')
+ {
+ rest = NULL;
+! semsg(_("E398: Missing '=': %s"), arg);
+ break;
+ }
+ rest = skipwhite(rest + 1);
+***************
+*** 5347,5355 ****
+ vim_free(syn_opt_arg.cont_in_list);
+ vim_free(syn_opt_arg.next_list);
+ if (not_enough)
+! EMSG2(_("E399: Not enough arguments: syntax region %s"), arg);
+ else if (illegal || rest == NULL)
+! EMSG2(_(e_invarg2), arg);
+ }
+ }
+
+--- 5347,5355 ----
+ vim_free(syn_opt_arg.cont_in_list);
+ vim_free(syn_opt_arg.next_list);
+ if (not_enough)
+! semsg(_("E399: Not enough arguments: syntax region %s"), arg);
+ else if (illegal || rest == NULL)
+! semsg(_(e_invarg2), arg);
+ }
+ }
+
+***************
+*** 5578,5584 ****
+ len = curwin->w_s->b_syn_clusters.ga_len;
+ if (len >= MAX_CLUSTER_ID)
+ {
+! EMSG((char_u *)_("E848: Too many syntax clusters"));
+ vim_free(name);
+ return 0;
+ }
+--- 5578,5584 ----
+ len = curwin->w_s->b_syn_clusters.ga_len;
+ if (len >= MAX_CLUSTER_ID)
+ {
+! emsg(_("E848: Too many syntax clusters"));
+ vim_free(name);
+ return 0;
+ }
+***************
+*** 5661,5667 ****
+ clstr_list = NULL;
+ if (get_id_list(&rest, opt_len, &clstr_list, eap->skip) == FAIL)
+ {
+! EMSG2(_(e_invarg2), rest);
+ break;
+ }
+ if (scl_id >= 0)
+--- 5661,5667 ----
+ clstr_list = NULL;
+ if (get_id_list(&rest, opt_len, &clstr_list, eap->skip) == FAIL)
+ {
+! semsg(_(e_invarg2), rest);
+ break;
+ }
+ if (scl_id >= 0)
+***************
+*** 5680,5688 ****
+ }
+
+ if (!got_clstr)
+! EMSG(_("E400: No cluster specified"));
+ if (rest == NULL || !ends_excmd(*rest))
+! EMSG2(_(e_invarg2), arg);
+ }
+
+ /*
+--- 5680,5688 ----
+ }
+
+ if (!got_clstr)
+! emsg(_("E400: No cluster specified"));
+ if (rest == NULL || !ends_excmd(*rest))
+! semsg(_(e_invarg2), arg);
+ }
+
+ /*
+***************
+*** 5715,5721 ****
+ end = skip_regexp(arg + 1, *arg, TRUE, NULL);
+ if (*end != *arg) /* end delimiter not found */
+ {
+! EMSG2(_("E401: Pattern delimiter not found: %s"), arg);
+ return NULL;
+ }
+ /* store the pattern and compiled regexp program */
+--- 5715,5721 ----
+ end = skip_regexp(arg + 1, *arg, TRUE, NULL);
+ if (*end != *arg) /* end delimiter not found */
+ {
+! semsg(_("E401: Pattern delimiter not found: %s"), arg);
+ return NULL;
+ }
+ /* store the pattern and compiled regexp program */
+***************
+*** 5793,5799 ****
+
+ if (!ends_excmd(*end) && !VIM_ISWHITE(*end))
+ {
+! EMSG2(_("E402: Garbage after pattern: %s"), arg);
+ return NULL;
+ }
+ return skipwhite(end);
+--- 5793,5799 ----
+
+ if (!ends_excmd(*end) && !VIM_ISWHITE(*end))
+ {
+! semsg(_("E402: Garbage after pattern: %s"), arg);
+ return NULL;
+ }
+ return skipwhite(end);
+***************
+*** 5885,5891 ****
+ }
+ if (curwin->w_s->b_syn_linecont_pat != NULL)
+ {
+! EMSG(_("E403: syntax sync: line continuations pattern specified twice"));
+ finished = TRUE;
+ break;
+ }
+--- 5885,5891 ----
+ }
+ if (curwin->w_s->b_syn_linecont_pat != NULL)
+ {
+! emsg(_("E403: syntax sync: line continuations pattern specified twice"));
+ finished = TRUE;
+ break;
+ }
+***************
+*** 5944,5950 ****
+ }
+ vim_free(key);
+ if (illegal)
+! EMSG2(_("E404: Illegal arguments: %s"), arg_start);
+ else if (!finished)
+ {
+ eap->nextcmd = check_nextcmd(arg_start);
+--- 5944,5950 ----
+ }
+ vim_free(key);
+ if (illegal)
+! semsg(_("E404: Illegal arguments: %s"), arg_start);
+ else if (!finished)
+ {
+ eap->nextcmd = check_nextcmd(arg_start);
+***************
+*** 5995,6007 ****
+ p = skipwhite(*arg + keylen);
+ if (*p != '=')
+ {
+! EMSG2(_("E405: Missing equal sign: %s"), *arg);
+ break;
+ }
+ p = skipwhite(p + 1);
+ if (ends_excmd(*p))
+ {
+! EMSG2(_("E406: Empty argument: %s"), *arg);
+ break;
+ }
+
+--- 5995,6007 ----
+ p = skipwhite(*arg + keylen);
+ if (*p != '=')
+ {
+! semsg(_("E405: Missing equal sign: %s"), *arg);
+ break;
+ }
+ p = skipwhite(p + 1);
+ if (ends_excmd(*p))
+ {
+! semsg(_("E406: Empty argument: %s"), *arg);
+ break;
+ }
+
+***************
+*** 6027,6040 ****
+ {
+ if (TOUPPER_ASC(**arg) != 'C')
+ {
+! EMSG2(_("E407: %s not allowed here"), name + 1);
+ failed = TRUE;
+ vim_free(name);
+ break;
+ }
+ if (count != 0)
+ {
+! EMSG2(_("E408: %s must be first in contains list"),
+ name + 1);
+ failed = TRUE;
+ vim_free(name);
+--- 6027,6040 ----
+ {
+ if (TOUPPER_ASC(**arg) != 'C')
+ {
+! semsg(_("E407: %s not allowed here"), name + 1);
+ failed = TRUE;
+ vim_free(name);
+ break;
+ }
+ if (count != 0)
+ {
+! semsg(_("E408: %s must be first in contains list"),
+ name + 1);
+ failed = TRUE;
+ vim_free(name);
+***************
+*** 6108,6114 ****
+ vim_free(name);
+ if (id == 0)
+ {
+! EMSG2(_("E409: Unknown group name: %s"), p);
+ failed = TRUE;
+ break;
+ }
+--- 6108,6114 ----
+ vim_free(name);
+ if (id == 0)
+ {
+! semsg(_("E409: Unknown group name: %s"), p);
+ failed = TRUE;
+ break;
+ }
+***************
+*** 6343,6349 ****
+ {
+ if (subcommands[i].name == NULL)
+ {
+! EMSG2(_("E410: Invalid :syntax subcommand: %s"), subcmd_name);
+ break;
+ }
+ if (STRCMP(subcmd_name, (char_u *)subcommands[i].name) == 0)
+--- 6343,6349 ----
+ {
+ if (subcommands[i].name == NULL)
+ {
+! semsg(_("E410: Invalid :syntax subcommand: %s"), subcmd_name);
+ break;
+ }
+ if (STRCMP(subcmd_name, (char_u *)subcommands[i].name) == 0)
+***************
+*** 6648,6654 ****
+ else if (STRCMP(eap->arg, "report") == 0)
+ syntime_report();
+ else
+! EMSG2(_(e_invarg2), eap->arg);
+ }
+
+ static void
+--- 6648,6654 ----
+ else if (STRCMP(eap->arg, "report") == 0)
+ syntime_report();
+ else
+! semsg(_(e_invarg2), eap->arg);
+ }
+
+ static void
+***************
+*** 7158,7164 ****
+ static int recursive = 0;
+
+ if (recursive >= 5)
+! EMSG(_("E679: recursive loop loading syncolor.vim"));
+ else
+ {
+ ++recursive;
+--- 7158,7164 ----
+ static int recursive = 0;
+
+ if (recursive >= 5)
+! emsg(_("E679: recursive loop loading syncolor.vim"));
+ else
+ {
+ ++recursive;
+***************
+*** 7407,7413 ****
+ {
+ id = syn_namen2id(line, (int)(name_end - line));
+ if (id == 0)
+! EMSG2(_("E411: highlight group not found: %s"), line);
+ else
+ highlight_list_one(id);
+ return;
+--- 7407,7413 ----
+ {
+ id = syn_namen2id(line, (int)(name_end - line));
+ if (id == 0)
+! semsg(_("E411: highlight group not found: %s"), line);
+ else
+ highlight_list_one(id);
+ return;
+***************
+*** 7431,7444 ****
+
+ if (ends_excmd(*from_start) || ends_excmd(*to_start))
+ {
+! EMSG2(_("E412: Not enough arguments: \":highlight link %s\""),
+ from_start);
+ return;
+ }
+
+ if (!ends_excmd(*skipwhite(to_end)))
+ {
+! EMSG2(_("E413: Too many arguments: \":highlight link %s\""), from_start);
+ return;
+ }
+
+--- 7431,7444 ----
+
+ if (ends_excmd(*from_start) || ends_excmd(*to_start))
+ {
+! semsg(_("E412: Not enough arguments: \":highlight link %s\""),
+ from_start);
+ return;
+ }
+
+ if (!ends_excmd(*skipwhite(to_end)))
+ {
+! semsg(_("E413: Too many arguments: \":highlight link %s\""), from_start);
+ return;
+ }
+
+***************
+*** 7458,7464 ****
+ && hl_has_settings(from_id - 1, dodefault))
+ {
+ if (sourcing_name == NULL && !dodefault)
+! EMSG(_("E414: group has settings, highlight link ignored"));
+ }
+ else if (HL_TABLE()[from_id - 1].sg_link != to_id
+ #ifdef FEAT_EVAL
+--- 7458,7464 ----
+ && hl_has_settings(from_id - 1, dodefault))
+ {
+ if (sourcing_name == NULL && !dodefault)
+! emsg(_("E414: group has settings, highlight link ignored"));
+ }
+ else if (HL_TABLE()[from_id - 1].sg_link != to_id
+ #ifdef FEAT_EVAL
+***************
+*** 7605,7611 ****
+ key_start = linep;
+ if (*linep == '=')
+ {
+! EMSG2(_("E415: unexpected equal sign: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+--- 7605,7611 ----
+ key_start = linep;
+ if (*linep == '=')
+ {
+! semsg(_("E415: unexpected equal sign: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 7641,7647 ****
+ */
+ if (*linep != '=')
+ {
+! EMSG2(_("E416: missing equal sign: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+--- 7641,7647 ----
+ */
+ if (*linep != '=')
+ {
+! semsg(_("E416: missing equal sign: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 7657,7663 ****
+ linep = vim_strchr(linep, '\'');
+ if (linep == NULL)
+ {
+! EMSG2(_(e_invarg2), key_start);
+ error = TRUE;
+ break;
+ }
+--- 7657,7663 ----
+ linep = vim_strchr(linep, '\'');
+ if (linep == NULL)
+ {
+! semsg(_(e_invarg2), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 7669,7675 ****
+ }
+ if (linep == arg_start)
+ {
+! EMSG2(_("E417: missing argument: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+--- 7669,7675 ----
+ }
+ if (linep == arg_start)
+ {
+! semsg(_("E417: missing argument: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 7706,7712 ****
+ }
+ if (i < 0)
+ {
+! EMSG2(_("E418: Illegal value: %s"), arg);
+ error = TRUE;
+ break;
+ }
+--- 7706,7712 ----
+ }
+ if (i < 0)
+ {
+! semsg(_("E418: Illegal value: %s"), arg);
+ error = TRUE;
+ break;
+ }
+***************
+*** 7831,7837 ****
+ color = cterm_normal_fg_color - 1;
+ else
+ {
+! EMSG(_("E419: FG color unknown"));
+ error = TRUE;
+ break;
+ }
+--- 7831,7837 ----
+ color = cterm_normal_fg_color - 1;
+ else
+ {
+! emsg(_("E419: FG color unknown"));
+ error = TRUE;
+ break;
+ }
+***************
+*** 7842,7848 ****
+ color = cterm_normal_bg_color - 1;
+ else
+ {
+! EMSG(_("E420: BG color unknown"));
+ error = TRUE;
+ break;
+ }
+--- 7842,7848 ----
+ color = cterm_normal_bg_color - 1;
+ else
+ {
+! emsg(_("E420: BG color unknown"));
+ error = TRUE;
+ break;
+ }
+***************
+*** 7866,7872 ****
+ break;
+ if (i < 0)
+ {
+! EMSG2(_("E421: Color name or number not recognized: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+--- 7866,7872 ----
+ break;
+ if (i < 0)
+ {
+! semsg(_("E421: Color name or number not recognized: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 8113,8119 ****
+ /* Append it to the already found stuff */
+ if ((int)(STRLEN(buf) + STRLEN(p)) >= 99)
+ {
+! EMSG2(_("E422: terminal code too long: %s"), arg);
+ error = TRUE;
+ break;
+ }
+--- 8113,8119 ----
+ /* Append it to the already found stuff */
+ if ((int)(STRLEN(buf) + STRLEN(p)) >= 99)
+ {
+! semsg(_("E422: terminal code too long: %s"), arg);
+ error = TRUE;
+ break;
+ }
+***************
+*** 8160,8166 ****
+ }
+ else
+ {
+! EMSG2(_("E423: Illegal argument: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+--- 8160,8166 ----
+ }
+ else
+ {
+! semsg(_("E423: Illegal argument: %s"), key_start);
+ error = TRUE;
+ break;
+ }
+***************
+*** 8827,8833 ****
+ */
+ if (recursive)
+ {
+! EMSG(_("E424: Too many different highlighting attributes in use"));
+ return 0;
+ }
+ recursive = TRUE;
+--- 8827,8833 ----
+ */
+ if (recursive)
+ {
+! emsg(_("E424: Too many different highlighting attributes in use"));
+ return 0;
+ }
+ recursive = TRUE;
+***************
+*** 9716,9722 ****
+ {
+ if (!vim_isprintc(*p))
+ {
+! EMSG(_("E669: Unprintable character in group name"));
+ vim_free(name);
+ return 0;
+ }
+--- 9716,9722 ----
+ {
+ if (!vim_isprintc(*p))
+ {
+! emsg(_("E669: Unprintable character in group name"));
+ vim_free(name);
+ return 0;
+ }
+***************
+*** 9741,9747 ****
+
+ if (highlight_ga.ga_len >= MAX_HL_ID)
+ {
+! EMSG(_("E849: Too many highlight and syntax groups"));
+ vim_free(name);
+ return 0;
+ }
+--- 9741,9747 ----
+
+ if (highlight_ga.ga_len >= MAX_HL_ID)
+ {
+! emsg(_("E849: Too many highlight and syntax groups"));
+ vim_free(name);
+ return 0;
+ }
+*** ../vim-8.1.0742/src/tag.c 2018-12-21 16:04:16.316437487 +0100
+--- src/tag.c 2019-01-13 19:57:42.397352867 +0100
+***************
+*** 279,285 ****
+ tagstacklen == 0)
+ {
+ /* empty stack */
+! EMSG(_(e_tagstack));
+ goto end_do_tag;
+ }
+
+--- 279,285 ----
+ tagstacklen == 0)
+ {
+ /* empty stack */
+! emsg(_(e_tagstack));
+ goto end_do_tag;
+ }
+
+***************
+*** 290,296 ****
+ #endif
+ if ((tagstackidx -= count) < 0)
+ {
+! EMSG(_(bottommsg));
+ if (tagstackidx + count == 0)
+ {
+ /* We did [num]^T from the bottom of the stack */
+--- 290,296 ----
+ #endif
+ if ((tagstackidx -= count) < 0)
+ {
+! emsg(_(bottommsg));
+ if (tagstackidx + count == 0)
+ {
+ /* We did [num]^T from the bottom of the stack */
+***************
+*** 304,310 ****
+ }
+ else if (tagstackidx >= tagstacklen) /* count == 0? */
+ {
+! EMSG(_(topmsg));
+ goto end_do_tag;
+ }
+
+--- 304,310 ----
+ }
+ else if (tagstackidx >= tagstacklen) /* count == 0? */
+ {
+! emsg(_(topmsg));
+ goto end_do_tag;
+ }
+
+***************
+*** 375,386 ****
+ * position.
+ */
+ tagstackidx = tagstacklen - 1;
+! EMSG(_(topmsg));
+ save_pos = FALSE;
+ }
+ else if (tagstackidx < 0) /* must have been count == 0 */
+ {
+! EMSG(_(bottommsg));
+ tagstackidx = 0;
+ goto end_do_tag;
+ }
+--- 375,386 ----
+ * position.
+ */
+ tagstackidx = tagstacklen - 1;
+! emsg(_(topmsg));
+ save_pos = FALSE;
+ }
+ else if (tagstackidx < 0) /* must have been count == 0 */
+ {
+! emsg(_(bottommsg));
+ tagstackidx = 0;
+ goto end_do_tag;
+ }
+***************
+*** 424,430 ****
+ cur_match = MAXCOL - 1;
+ else if (cur_match < 0)
+ {
+! EMSG(_("E425: Cannot go before first matching tag"));
+ skip_msg = TRUE;
+ cur_match = 0;
+ cur_fnum = curbuf->b_fnum;
+--- 424,430 ----
+ cur_match = MAXCOL - 1;
+ else if (cur_match < 0)
+ {
+! emsg(_("E425: Cannot go before first matching tag"));
+ skip_msg = TRUE;
+ cur_match = 0;
+ cur_fnum = curbuf->b_fnum;
+***************
+*** 566,572 ****
+ if (num_matches <= 0)
+ {
+ if (verbose)
+! EMSG2(_("E426: tag not found: %s"), name);
+ #if defined(FEAT_QUICKFIX)
+ g_do_tagpreview = 0;
+ #endif
+--- 566,572 ----
+ if (num_matches <= 0)
+ {
+ if (verbose)
+! semsg(_("E426: tag not found: %s"), name);
+ #if defined(FEAT_QUICKFIX)
+ g_do_tagpreview = 0;
+ #endif
+***************
+*** 950,963 ****
+ {
+ /* Avoid giving this error when a file wasn't found and we're
+ * looking for a match in another file, which wasn't found.
+! * There will be an EMSG("file doesn't exist") below then. */
+ if ((type == DT_NEXT || type == DT_FIRST)
+ && nofile_fname == NULL)
+ {
+ if (num_matches == 1)
+! EMSG(_("E427: There is only one matching tag"));
+ else
+! EMSG(_("E428: Cannot go beyond last matching tag"));
+ skip_msg = TRUE;
+ }
+ cur_match = num_matches - 1;
+--- 950,963 ----
+ {
+ /* Avoid giving this error when a file wasn't found and we're
+ * looking for a match in another file, which wasn't found.
+! * There will be an emsg("file doesn't exist") below then. */
+ if ((type == DT_NEXT || type == DT_FIRST)
+ && nofile_fname == NULL)
+ {
+ if (num_matches == 1)
+! emsg(_("E427: There is only one matching tag"));
+ else
+! emsg(_("E428: Cannot go beyond last matching tag"));
+ skip_msg = TRUE;
+ }
+ cur_match = num_matches - 1;
+***************
+*** 978,987 ****
+
+ /*
+ * Only when going to try the next match, report that the previous
+! * file didn't exist. Otherwise an EMSG() is given below.
+ */
+ if (nofile_fname != NULL && error_cur_match != cur_match)
+! smsg((char_u *)_("File \"%s\" does not exist"), nofile_fname);
+
+
+ ic = (matches[cur_match][0] & MT_IC_OFF);
+--- 978,987 ----
+
+ /*
+ * Only when going to try the next match, report that the previous
+! * file didn't exist. Otherwise an emsg() is given below.
+ */
+ if (nofile_fname != NULL && error_cur_match != cur_match)
+! smsg(_("File \"%s\" does not exist"), nofile_fname);
+
+
+ ic = (matches[cur_match][0] & MT_IC_OFF);
+***************
+*** 1053,1059 ****
+ }
+ continue;
+ }
+! EMSG2(_("E429: File \"%s\" does not exist"), nofile_fname);
+ }
+ else
+ {
+--- 1053,1059 ----
+ }
+ continue;
+ }
+! semsg(_("E429: File \"%s\" does not exist"), nofile_fname);
+ }
+ else
+ {
+***************
+*** 1577,1583 ****
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Searching tags file %s"), tag_fname);
+ verbose_leave();
+ }
+ }
+--- 1577,1583 ----
+ if (p_verbose >= 5)
+ {
+ verbose_enter();
+! smsg(_("Searching tags file %s"), tag_fname);
+ verbose_leave();
+ }
+ }
+***************
+*** 1801,1807 ****
+ if (fp != NULL)
+ {
+ if (STRLEN(fullpath_ebuf) > LSIZE)
+! EMSG2(_("E430: Tag file path truncated for %s\n"), ebuf);
+ vim_strncpy(tag_fname, fullpath_ebuf,
+ MAXPATHL);
+ ++incstack_idx;
+--- 1801,1807 ----
+ if (fp != NULL)
+ {
+ if (STRLEN(fullpath_ebuf) > LSIZE)
+! semsg(_("E430: Tag file path truncated for %s\n"), ebuf);
+ vim_strncpy(tag_fname, fullpath_ebuf,
+ MAXPATHL);
+ ++incstack_idx;
+***************
+*** 2451,2461 ****
+
+ if (line_error)
+ {
+! EMSG2(_("E431: Format error in tags file \"%s\""), tag_fname);
+ #ifdef FEAT_CSCOPE
+ if (!use_cscope)
+ #endif
+! EMSGN(_("Before byte %ld"), (long)vim_ftell(fp));
+ stop_searching = TRUE;
+ line_error = FALSE;
+ }
+--- 2451,2461 ----
+
+ if (line_error)
+ {
+! semsg(_("E431: Format error in tags file \"%s\""), tag_fname);
+ #ifdef FEAT_CSCOPE
+ if (!use_cscope)
+ #endif
+! semsg(_("Before byte %ld"), (long)vim_ftell(fp));
+ stop_searching = TRUE;
+ line_error = FALSE;
+ }
+***************
+*** 2481,2487 ****
+ tag_file_sorted = NUL;
+ if (sort_error)
+ {
+! EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
+ sort_error = FALSE;
+ }
+ #endif
+--- 2481,2487 ----
+ tag_file_sorted = NUL;
+ if (sort_error)
+ {
+! semsg(_("E432: Tags file not sorted: %s"), tag_fname);
+ sort_error = FALSE;
+ }
+ #endif
+***************
+*** 2525,2531 ****
+ if (!stop_searching)
+ {
+ if (!did_open && verbose) /* never opened any tags file */
+! EMSG(_("E433: No tags file"));
+ retval = OK; /* It's OK even when no tag found */
+ }
+
+--- 2525,2531 ----
+ if (!stop_searching)
+ {
+ if (!did_open && verbose) /* never opened any tags file */
+! emsg(_("E433: No tags file"));
+ retval = OK; /* It's OK even when no tag found */
+ }
+
+***************
+*** 3370,3376 ****
+ }
+ if (found == 0)
+ {
+! EMSG(_("E434: Can't find tag pattern"));
+ curwin->w_cursor.lnum = save_lnum;
+ }
+ else
+--- 3370,3376 ----
+ }
+ if (found == 0)
+ {
+! emsg(_("E434: Can't find tag pattern"));
+ curwin->w_cursor.lnum = save_lnum;
+ }
+ else
+***************
+*** 3895,3901 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Duplicate field name: %s"), field_name);
+ verbose_leave();
+ }
+ return FAIL;
+--- 3895,3901 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Duplicate field name: %s"), field_name);
+ verbose_leave();
+ }
+ return FAIL;
+***************
+*** 4200,4206 ****
+ {
+ if (di->di_tv.v_type != VAR_LIST)
+ {
+! EMSG(_(e_listreq));
+ return FAIL;
+ }
+ l = di->di_tv.vval.v_list;
+--- 4200,4206 ----
+ {
+ if (di->di_tv.v_type != VAR_LIST)
+ {
+! emsg(_(e_listreq));
+ return FAIL;
+ }
+ l = di->di_tv.vval.v_list;
+*** ../vim-8.1.0742/src/term.c 2018-12-07 13:18:16.611655653 +0100
+--- src/term.c 2019-01-13 23:17:25.865051566 +0100
+***************
+*** 92,98 ****
+ static int term_7to8bit(char_u *p);
+
+ #ifdef HAVE_TGETENT
+! static char_u *tgetent_error(char_u *, char_u *);
+
+ /*
+ * Here is our own prototype for tgetstr(), any prototypes from the include
+--- 92,98 ----
+ static int term_7to8bit(char_u *p);
+
+ #ifdef HAVE_TGETENT
+! static char *tgetent_error(char_u *, char_u *);
+
+ /*
+ * Here is our own prototype for tgetstr(), any prototypes from the include
+***************
+*** 1357,1363 ****
+ t = termgui_mch_get_color(name);
+
+ if (t == INVALCOLOR)
+! EMSG2(_("E254: Cannot allocate color %s"), name);
+ return t;
+ }
+
+--- 1357,1363 ----
+ t = termgui_mch_get_color(name);
+
+ if (t == INVALCOLOR)
+! semsg(_("E254: Cannot allocate color %s"), name);
+ return t;
+ }
+
+***************
+*** 1696,1709 ****
+ #endif
+
+ static void
+! report_term_error(char_u *error_msg, char_u *term)
+ {
+ struct builtin_term *termp;
+
+ mch_errmsg("\r\n");
+ if (error_msg != NULL)
+ {
+! mch_errmsg((char *)error_msg);
+ mch_errmsg("\r\n");
+ }
+ mch_errmsg("'");
+--- 1696,1709 ----
+ #endif
+
+ static void
+! report_term_error(char *error_msg, char_u *term)
+ {
+ struct builtin_term *termp;
+
+ mch_errmsg("\r\n");
+ if (error_msg != NULL)
+ {
+! mch_errmsg(error_msg);
+ mch_errmsg("\r\n");
+ }
+ mch_errmsg("'");
+***************
+*** 1756,1762 ****
+ int termcap_cleared = FALSE;
+ #endif
+ int width = 0, height = 0;
+! char_u *error_msg = NULL;
+ char_u *bs_p, *del_p;
+
+ /* In silect mode (ex -s) we don't use the 'term' option. */
+--- 1756,1762 ----
+ int termcap_cleared = FALSE;
+ #endif
+ int width = 0, height = 0;
+! char *error_msg = NULL;
+ char_u *bs_p, *del_p;
+
+ /* In silect mode (ex -s) we don't use the 'term' option. */
+***************
+*** 2191,2197 ****
+ * Call tgetent()
+ * Return error message if it fails, NULL if it's OK.
+ */
+! static char_u *
+ tgetent_error(char_u *tbuf, char_u *term)
+ {
+ int i;
+--- 2191,2197 ----
+ * Call tgetent()
+ * Return error message if it fails, NULL if it's OK.
+ */
+! static char *
+ tgetent_error(char_u *tbuf, char_u *term)
+ {
+ int i;
+***************
+*** 2210,2222 ****
+
+ if (i < 0)
+ # ifdef TGETENT_ZERO_ERR
+! return (char_u *)_("E557: Cannot open termcap file");
+ if (i == 0)
+ # endif
+ #ifdef TERMINFO
+! return (char_u *)_("E558: Terminal entry not found in terminfo");
+ #else
+! return (char_u *)_("E559: Terminal entry not found in termcap");
+ #endif
+ }
+ return NULL;
+--- 2210,2222 ----
+
+ if (i < 0)
+ # ifdef TGETENT_ZERO_ERR
+! return _("E557: Cannot open termcap file");
+ if (i == 0)
+ # endif
+ #ifdef TERMINFO
+! return _("E558: Terminal entry not found in terminfo");
+ #else
+! return _("E559: Terminal entry not found in termcap");
+ #endif
+ }
+ return NULL;
+***************
+*** 2282,2288 ****
+ char_u tbuf[TBUFSZ];
+ char_u tstrbuf[TBUFSZ];
+ char_u *tp = tstrbuf;
+! char_u *error_msg = NULL;
+ #endif
+
+ /*
+--- 2282,2288 ----
+ char_u tbuf[TBUFSZ];
+ char_u tstrbuf[TBUFSZ];
+ char_u *tp = tstrbuf;
+! char *error_msg = NULL;
+ #endif
+
+ /*
+***************
+*** 2369,2378 ****
+ {
+ #ifdef HAVE_TGETENT
+ if (error_msg != NULL)
+! EMSG(error_msg);
+ else
+ #endif
+! EMSG2(_("E436: No \"%s\" entry in termcap"), name);
+ }
+ return FAIL;
+ }
+--- 2369,2378 ----
+ {
+ #ifdef HAVE_TGETENT
+ if (error_msg != NULL)
+! emsg(error_msg);
+ else
+ #endif
+! semsg(_("E436: No \"%s\" entry in termcap"), name);
+ }
+ return FAIL;
+ }
+***************
+*** 3055,3061 ****
+ * MUST have "cm": cursor motion.
+ */
+ if (*T_CM == NUL)
+! EMSG(_("E437: terminal capability \"cm\" required"));
+
+ /*
+ * if "cs" defined, use a scroll region, it's faster.
+--- 3055,3061 ----
+ * MUST have "cm": cursor motion.
+ */
+ if (*T_CM == NUL)
+! emsg(_("E437: terminal capability \"cm\" required"));
+
+ /*
+ * if "cs" defined, use a scroll region, it's faster.
+***************
+*** 6153,6159 ****
+ if (STRNICMP(src, "<SID>", 5) == 0)
+ {
+ if (current_sctx.sc_sid <= 0)
+! EMSG(_(e_usingsid));
+ else
+ {
+ src += 5;
+--- 6153,6159 ----
+ if (STRNICMP(src, "<SID>", 5) == 0)
+ {
+ if (current_sctx.sc_sid <= 0)
+! emsg(_(e_usingsid));
+ else
+ {
+ src += 5;
+*** ../vim-8.1.0742/src/terminal.c 2019-01-03 22:19:22.231686171 +0100
+--- src/terminal.c 2019-01-13 19:57:49.569292936 +0100
+***************
+*** 377,383 ****
+ || (!(opt->jo_set & JO_OUT_IO) && (opt->jo_set & JO_OUT_BUF))
+ || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF)))
+ {
+! EMSG(_(e_invarg));
+ return NULL;
+ }
+
+--- 377,383 ----
+ || (!(opt->jo_set & JO_OUT_IO) && (opt->jo_set & JO_OUT_BUF))
+ || (!(opt->jo_set & JO_ERR_IO) && (opt->jo_set & JO_ERR_BUF)))
+ {
+! emsg(_(e_invarg));
+ return NULL;
+ }
+
+***************
+*** 719,725 ****
+ {
+ if (*p)
+ *p = NUL;
+! EMSG2(_("E181: Invalid attribute: %s"), cmd);
+ goto theend;
+ }
+ cmd = skipwhite(p);
+--- 719,725 ----
+ {
+ if (*p)
+ *p = NUL;
+! semsg(_("E181: Invalid attribute: %s"), cmd);
+ goto theend;
+ }
+ cmd = skipwhite(p);
+***************
+*** 3487,3493 ****
+ && (var->di_tv.v_type != VAR_LIST
+ || var->di_tv.vval.v_list == NULL
+ || set_ansi_colors_list(vterm, var->di_tv.vval.v_list) == FAIL))
+! EMSG2(_(e_invarg2), "g:terminal_ansi_colors");
+ }
+ #endif
+
+--- 3487,3493 ----
+ && (var->di_tv.v_type != VAR_LIST
+ || var->di_tv.vval.v_list == NULL
+ || set_ansi_colors_list(vterm, var->di_tv.vval.v_list) == FAIL))
+! semsg(_(e_invarg2), "g:terminal_ansi_colors");
+ }
+ #endif
+
+***************
+*** 3914,3920 ****
+ term = buf->b_term;
+ if (term->tl_vterm == NULL)
+ {
+! EMSG(_("E958: Job already finished"));
+ return;
+ }
+
+--- 3914,3920 ----
+ term = buf->b_term;
+ if (term->tl_vterm == NULL)
+ {
+! emsg(_("E958: Job already finished"));
+ return;
+ }
+
+***************
+*** 3924,3930 ****
+
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ d = argvars[2].vval.v_dict;
+--- 3924,3930 ----
+
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ d = argvars[2].vval.v_dict;
+***************
+*** 3940,3952 ****
+ return;
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+! EMSG2(_("E953: File exists: %s"), fname);
+ return;
+ }
+
+ if (*fname == NUL || (fd = mch_fopen((char *)fname, WRITEBIN)) == NULL)
+ {
+! EMSG2(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ return;
+ }
+
+--- 3940,3952 ----
+ return;
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+! semsg(_("E953: File exists: %s"), fname);
+ return;
+ }
+
+ if (*fname == NUL || (fd = mch_fopen((char *)fname, WRITEBIN)) == NULL)
+ {
+! semsg(_(e_notcreate), *fname == NUL ? (char_u *)_("<empty>") : fname);
+ return;
+ }
+
+***************
+*** 4389,4401 ****
+ fname2 = tv_get_string_buf_chk(&argvars[1], buf2);
+ if (fname1 == NULL || (do_diff && fname2 == NULL))
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ fd1 = mch_fopen((char *)fname1, READBIN);
+ if (fd1 == NULL)
+ {
+! EMSG2(_(e_notread), fname1);
+ return;
+ }
+ if (do_diff)
+--- 4389,4401 ----
+ fname2 = tv_get_string_buf_chk(&argvars[1], buf2);
+ if (fname1 == NULL || (do_diff && fname2 == NULL))
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ fd1 = mch_fopen((char *)fname1, READBIN);
+ if (fd1 == NULL)
+ {
+! semsg(_(e_notread), fname1);
+ return;
+ }
+ if (do_diff)
+***************
+*** 4404,4410 ****
+ if (fd2 == NULL)
+ {
+ fclose(fd1);
+! EMSG2(_(e_notread), fname2);
+ return;
+ }
+ }
+--- 4404,4410 ----
+ if (fd2 == NULL)
+ {
+ fclose(fd1);
+! semsg(_(e_notread), fname2);
+ return;
+ }
+ }
+***************
+*** 4922,4928 ****
+
+ if (buf == NULL)
+ {
+! EMSG(_("E955: Not a terminal buffer"));
+ return;
+ }
+ if (buf->b_term->tl_vterm == NULL)
+--- 4922,4928 ----
+
+ if (buf == NULL)
+ {
+! emsg(_("E955: Not a terminal buffer"));
+ return;
+ }
+ if (buf->b_term->tl_vterm == NULL)
+***************
+*** 5007,5013 ****
+ p = buf->b_term->tl_job->jv_tty_in;
+ break;
+ default:
+! EMSG2(_(e_invarg2), tv_get_string(&argvars[1]));
+ return;
+ }
+ if (p != NULL)
+--- 5007,5013 ----
+ p = buf->b_term->tl_job->jv_tty_in;
+ break;
+ default:
+! semsg(_(e_invarg2), tv_get_string(&argvars[1]));
+ return;
+ }
+ if (p != NULL)
+***************
+*** 5236,5247 ****
+
+ if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL)
+ {
+! EMSG(_(e_listreq));
+ return;
+ }
+
+ if (set_ansi_colors_list(term->tl_vterm, argvars[1].vval.v_list) == FAIL)
+! EMSG(_(e_invarg));
+ }
+ #endif
+
+--- 5236,5247 ----
+
+ if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL)
+ {
+! emsg(_(e_listreq));
+ return;
+ }
+
+ if (set_ansi_colors_list(term->tl_vterm, argvars[1].vval.v_list) == FAIL)
+! emsg(_(e_invarg));
+ }
+ #endif
+
+***************
+*** 5485,5491 ****
+ if (!hWinPtyDLL)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), *p_winptydll != NUL ? p_winptydll
+ : (char_u *)WINPTY_DLL);
+ return FAIL;
+ }
+--- 5485,5491 ----
+ if (!hWinPtyDLL)
+ {
+ if (verbose)
+! semsg(_(e_loadlib), *p_winptydll != NUL ? p_winptydll
+ : (char_u *)WINPTY_DLL);
+ return FAIL;
+ }
+***************
+*** 5496,5502 ****
+ winpty_entry[i].name)) == NULL)
+ {
+ if (verbose)
+! EMSG2(_(e_loadfunc), winpty_entry[i].name);
+ return FAIL;
+ }
+ }
+--- 5496,5502 ----
+ winpty_entry[i].name)) == NULL)
+ {
+ if (verbose)
+! semsg(_(e_loadfunc), winpty_entry[i].name);
+ return FAIL;
+ }
+ }
+***************
+*** 5548,5554 ****
+ }
+ if (cmd == NULL || *cmd == NUL)
+ {
+! EMSG(_(e_invarg));
+ goto failed;
+ }
+
+--- 5548,5554 ----
+ }
+ if (cmd == NULL || *cmd == NUL)
+ {
+! emsg(_(e_invarg));
+ goto failed;
+ }
+
+***************
+*** 5680,5686 ****
+ ch_log(channel, "Opening output file %s", fname);
+ term->tl_out_fd = mch_fopen((char *)fname, WRITEBIN);
+ if (term->tl_out_fd == NULL)
+! EMSG2(_(e_notopen), fname);
+ }
+
+ return OK;
+--- 5680,5686 ----
+ ch_log(channel, "Opening output file %s", fname);
+ term->tl_out_fd = mch_fopen((char *)fname, WRITEBIN);
+ if (term->tl_out_fd == NULL)
+! semsg(_(e_notopen), fname);
+ }
+
+ return OK;
+***************
+*** 5713,5719 ****
+ char_u *msg = utf16_to_enc(
+ (short_u *)winpty_error_msg(winpty_err), NULL);
+
+! EMSG(msg);
+ winpty_error_free(winpty_err);
+ }
+ return FAIL;
+--- 5713,5719 ----
+ char_u *msg = utf16_to_enc(
+ (short_u *)winpty_error_msg(winpty_err), NULL);
+
+! emsg(msg);
+ winpty_error_free(winpty_err);
+ }
+ return FAIL;
+*** ../vim-8.1.0742/src/textprop.c 2019-01-08 20:14:31.614957028 +0100
+--- src/textprop.c 2019-01-13 19:57:53.269262041 +0100
+***************
+*** 19,25 ****
+ * TODO:
+ * - Adjust text property column and length when text is inserted/deleted.
+ * -> a :substitute with a multi-line match
+! * -> search for changed_bytes() from ex_cmds.c
+ * - Perhaps we only need TP_FLAG_CONT_NEXT and can drop TP_FLAG_CONT_PREV?
+ * - Add an arrray for global_proptypes, to quickly lookup a prop type by ID
+ * - Add an arrray for b_proptypes, to quickly lookup a prop type by ID
+--- 19,25 ----
+ * TODO:
+ * - Adjust text property column and length when text is inserted/deleted.
+ * -> a :substitute with a multi-line match
+! * -> search for changed_bytes() from misc1.c
+ * - Perhaps we only need TP_FLAG_CONT_NEXT and can drop TP_FLAG_CONT_PREV?
+ * - Add an arrray for global_proptypes, to quickly lookup a prop type by ID
+ * - Add an arrray for b_proptypes, to quickly lookup a prop type by ID
+***************
+*** 106,112 ****
+ if (type == NULL)
+ type = find_prop(name, NULL);
+ if (type == NULL)
+! EMSG2(_(e_type_not_exist), name);
+ return type;
+ }
+
+--- 106,112 ----
+ if (type == NULL)
+ type = find_prop(name, NULL);
+ if (type == NULL)
+! semsg(_(e_type_not_exist), name);
+ return type;
+ }
+
+***************
+*** 124,130 ****
+
+ if (arg->v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return FAIL;
+ }
+ if (arg->vval.v_dict == NULL)
+--- 124,130 ----
+
+ if (arg->v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return FAIL;
+ }
+ if (arg->vval.v_dict == NULL)
+***************
+*** 167,185 ****
+ start_col = tv_get_number(&argvars[1]);
+ if (start_col < 1)
+ {
+! EMSGN(_(e_invalid_col), (long)start_col);
+ return;
+ }
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! EMSG(_(e_dictreq));
+ return;
+ }
+ dict = argvars[2].vval.v_dict;
+
+ if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
+ {
+! EMSG(_("E965: missing property type name"));
+ return;
+ }
+ type_name = dict_get_string(dict, (char_u *)"type", FALSE);
+--- 167,185 ----
+ start_col = tv_get_number(&argvars[1]);
+ if (start_col < 1)
+ {
+! semsg(_(e_invalid_col), (long)start_col);
+ return;
+ }
+ if (argvars[2].v_type != VAR_DICT)
+ {
+! emsg(_(e_dictreq));
+ return;
+ }
+ dict = argvars[2].vval.v_dict;
+
+ if (dict == NULL || dict_find(dict, (char_u *)"type", -1) == NULL)
+ {
+! emsg(_("E965: missing property type name"));
+ return;
+ }
+ type_name = dict_get_string(dict, (char_u *)"type", FALSE);
+***************
+*** 189,195 ****
+ end_lnum = dict_get_number(dict, (char_u *)"end_lnum");
+ if (end_lnum < start_lnum)
+ {
+! EMSG2(_(e_invargval), "end_lnum");
+ return;
+ }
+ }
+--- 189,195 ----
+ end_lnum = dict_get_number(dict, (char_u *)"end_lnum");
+ if (end_lnum < start_lnum)
+ {
+! semsg(_(e_invargval), "end_lnum");
+ return;
+ }
+ }
+***************
+*** 202,208 ****
+
+ if (length < 0 || end_lnum > start_lnum)
+ {
+! EMSG2(_(e_invargval), "length");
+ return;
+ }
+ end_col = start_col + length;
+--- 202,208 ----
+
+ if (length < 0 || end_lnum > start_lnum)
+ {
+! semsg(_(e_invargval), "length");
+ return;
+ }
+ end_col = start_col + length;
+***************
+*** 212,218 ****
+ end_col = dict_get_number(dict, (char_u *)"end_col");
+ if (end_col <= 0)
+ {
+! EMSG2(_(e_invargval), "end_col");
+ return;
+ }
+ }
+--- 212,218 ----
+ end_col = dict_get_number(dict, (char_u *)"end_col");
+ if (end_col <= 0)
+ {
+! semsg(_(e_invargval), "end_col");
+ return;
+ }
+ }
+***************
+*** 233,244 ****
+
+ if (start_lnum < 1 || start_lnum > buf->b_ml.ml_line_count)
+ {
+! EMSGN(_(e_invalid_lnum), (long)start_lnum);
+ return;
+ }
+ if (end_lnum < start_lnum || end_lnum > buf->b_ml.ml_line_count)
+ {
+! EMSGN(_(e_invalid_lnum), (long)end_lnum);
+ return;
+ }
+
+--- 233,244 ----
+
+ if (start_lnum < 1 || start_lnum > buf->b_ml.ml_line_count)
+ {
+! semsg(_(e_invalid_lnum), (long)start_lnum);
+ return;
+ }
+ if (end_lnum < start_lnum || end_lnum > buf->b_ml.ml_line_count)
+ {
+! semsg(_(e_invalid_lnum), (long)end_lnum);
+ return;
+ }
+
+***************
+*** 257,263 ****
+ col = 1;
+ if (col - 1 > (colnr_T)textlen)
+ {
+! EMSGN(_(e_invalid_col), (long)start_col);
+ return;
+ }
+
+--- 257,263 ----
+ col = 1;
+ if (col - 1 > (colnr_T)textlen)
+ {
+! semsg(_(e_invalid_col), (long)start_col);
+ return;
+ }
+
+***************
+*** 340,346 ****
+ proplen = buf->b_ml.ml_line_len - textlen;
+ if (proplen % sizeof(textprop_T) != 0)
+ {
+! IEMSG(_("E967: text property info corrupted"));
+ return 0;
+ }
+ if (proplen > 0)
+--- 340,346 ----
+ proplen = buf->b_ml.ml_line_len - textlen;
+ if (proplen % sizeof(textprop_T) != 0)
+ {
+! iemsg(_("E967: text property info corrupted"));
+ return 0;
+ }
+ if (proplen > 0)
+***************
+*** 440,446 ****
+ }
+ if (start < 1 || end < 1)
+ {
+! EMSG(_(e_invrange));
+ return;
+ }
+
+--- 440,446 ----
+ }
+ if (start < 1 || end < 1)
+ {
+! emsg(_(e_invrange));
+ return;
+ }
+
+***************
+*** 487,493 ****
+ }
+ if (lnum < 1 || lnum > buf->b_ml.ml_line_count)
+ {
+! EMSG(_(e_invrange));
+ return;
+ }
+
+--- 487,493 ----
+ }
+ if (lnum < 1 || lnum > buf->b_ml.ml_line_count)
+ {
+! emsg(_(e_invrange));
+ return;
+ }
+
+***************
+*** 542,548 ****
+ rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_DICT || argvars[0].vval.v_dict == NULL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 542,548 ----
+ rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_DICT || argvars[0].vval.v_dict == NULL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 554,560 ****
+ end = tv_get_number(&argvars[2]);
+ if (start < 1 || end < 1)
+ {
+! EMSG(_(e_invrange));
+ return;
+ }
+ }
+--- 554,560 ----
+ end = tv_get_number(&argvars[2]);
+ if (start < 1 || end < 1)
+ {
+! emsg(_(e_invrange));
+ return;
+ }
+ }
+***************
+*** 585,591 ****
+ }
+ if (id == -1 && type_id == -1)
+ {
+! EMSG(_("E968: Need at least one of 'id' or 'type'"));
+ return;
+ }
+
+--- 585,591 ----
+ }
+ if (id == -1 && type_id == -1)
+ {
+! emsg(_("E968: Need at least one of 'id' or 'type'"));
+ return;
+ }
+
+***************
+*** 661,667 ****
+ name = tv_get_string(&argvars[0]);
+ if (*name == NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 661,667 ----
+ name = tv_get_string(&argvars[0]);
+ if (*name == NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 676,682 ****
+
+ if (prop != NULL)
+ {
+! EMSG2(_("E969: Property type %s already defined"), name);
+ return;
+ }
+ prop = (proptype_T *)alloc_clear((int)(sizeof(proptype_T) + STRLEN(name)));
+--- 676,682 ----
+
+ if (prop != NULL)
+ {
+! semsg(_("E969: Property type %s already defined"), name);
+ return;
+ }
+ prop = (proptype_T *)alloc_clear((int)(sizeof(proptype_T) + STRLEN(name)));
+***************
+*** 701,707 ****
+ {
+ if (prop == NULL)
+ {
+! EMSG2(_(e_type_not_exist), name);
+ return;
+ }
+ }
+--- 701,707 ----
+ {
+ if (prop == NULL)
+ {
+! semsg(_(e_type_not_exist), name);
+ return;
+ }
+ }
+***************
+*** 719,725 ****
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+ {
+! EMSG2(_("E970: Unknown highlight group name: '%s'"),
+ highlight == NULL ? (char_u *)"" : highlight);
+ return;
+ }
+--- 719,725 ----
+ hl_id = syn_name2id(highlight);
+ if (hl_id <= 0)
+ {
+! semsg(_("E970: Unknown highlight group name: '%s'"),
+ highlight == NULL ? (char_u *)"" : highlight);
+ return;
+ }
+***************
+*** 781,787 ****
+ name = tv_get_string(&argvars[0]);
+ if (*name == NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+
+--- 781,787 ----
+ name = tv_get_string(&argvars[0]);
+ if (*name == NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+
+***************
+*** 816,822 ****
+
+ if (*name == NUL)
+ {
+! EMSG(_(e_invarg));
+ return;
+ }
+ if (rettv_dict_alloc(rettv) == OK)
+--- 816,822 ----
+
+ if (*name == NUL)
+ {
+! emsg(_(e_invarg));
+ return;
+ }
+ if (rettv_dict_alloc(rettv) == OK)
+*** ../vim-8.1.0742/src/ui.c 2019-01-09 22:24:46.568161097 +0100
+--- src/ui.c 2019-01-13 19:57:57.093230132 +0100
+***************
+*** 337,343 ****
+ suspend_shell(void)
+ {
+ if (*p_sh == NUL)
+! EMSG(_(e_shellempty));
+ else
+ {
+ MSG_PUTS(_("new shell started\n"));
+--- 337,343 ----
+ suspend_shell(void)
+ {
+ if (*p_sh == NUL)
+! emsg(_(e_shellempty));
+ else
+ {
+ MSG_PUTS(_("new shell started\n"));
+*** ../vim-8.1.0742/src/undo.c 2019-01-08 20:14:31.614957028 +0100
+--- src/undo.c 2019-01-13 19:58:00.577201071 +0100
+***************
+*** 158,187 ****
+ ++header_count;
+ if (uhp == curbuf->b_u_curhead && ++seen_b_u_curhead > 1)
+ {
+! EMSG("b_u_curhead found twice (looping?)");
+ return;
+ }
+ if (uhp == curbuf->b_u_newhead && ++seen_b_u_newhead > 1)
+ {
+! EMSG("b_u_newhead found twice (looping?)");
+ return;
+ }
+
+ if (uhp->uh_magic != UH_MAGIC)
+! EMSG("uh_magic wrong (may be using freed memory)");
+ else
+ {
+ /* Check pointers back are correct. */
+ if (uhp->uh_next.ptr != exp_uh_next)
+ {
+! EMSG("uh_next wrong");
+! smsg((char_u *)"expected: 0x%x, actual: 0x%x",
+ exp_uh_next, uhp->uh_next.ptr);
+ }
+ if (uhp->uh_alt_prev.ptr != exp_uh_alt_prev)
+ {
+! EMSG("uh_alt_prev wrong");
+! smsg((char_u *)"expected: 0x%x, actual: 0x%x",
+ exp_uh_alt_prev, uhp->uh_alt_prev.ptr);
+ }
+
+--- 158,187 ----
+ ++header_count;
+ if (uhp == curbuf->b_u_curhead && ++seen_b_u_curhead > 1)
+ {
+! emsg("b_u_curhead found twice (looping?)");
+ return;
+ }
+ if (uhp == curbuf->b_u_newhead && ++seen_b_u_newhead > 1)
+ {
+! emsg("b_u_newhead found twice (looping?)");
+ return;
+ }
+
+ if (uhp->uh_magic != UH_MAGIC)
+! emsg("uh_magic wrong (may be using freed memory)");
+ else
+ {
+ /* Check pointers back are correct. */
+ if (uhp->uh_next.ptr != exp_uh_next)
+ {
+! emsg("uh_next wrong");
+! smsg("expected: 0x%x, actual: 0x%x",
+ exp_uh_next, uhp->uh_next.ptr);
+ }
+ if (uhp->uh_alt_prev.ptr != exp_uh_alt_prev)
+ {
+! emsg("uh_alt_prev wrong");
+! smsg("expected: 0x%x, actual: 0x%x",
+ exp_uh_alt_prev, uhp->uh_alt_prev.ptr);
+ }
+
+***************
+*** 190,196 ****
+ {
+ if (uep->ue_magic != UE_MAGIC)
+ {
+! EMSG("ue_magic wrong (may be using freed memory)");
+ break;
+ }
+ }
+--- 190,196 ----
+ {
+ if (uep->ue_magic != UE_MAGIC)
+ {
+! emsg("ue_magic wrong (may be using freed memory)");
+ break;
+ }
+ }
+***************
+*** 214,226 ****
+
+ if (seen_b_u_newhead == 0 && curbuf->b_u_oldhead != NULL
+ && !(newhead_may_be_NULL && curbuf->b_u_newhead == NULL))
+! EMSGN("b_u_newhead invalid: 0x%x", curbuf->b_u_newhead);
+ if (curbuf->b_u_curhead != NULL && seen_b_u_curhead == 0)
+! EMSGN("b_u_curhead invalid: 0x%x", curbuf->b_u_curhead);
+ if (header_count != curbuf->b_u_numhead)
+ {
+! EMSG("b_u_numhead invalid");
+! smsg((char_u *)"expected: %ld, actual: %ld",
+ (long)header_count, (long)curbuf->b_u_numhead);
+ }
+ }
+--- 214,226 ----
+
+ if (seen_b_u_newhead == 0 && curbuf->b_u_oldhead != NULL
+ && !(newhead_may_be_NULL && curbuf->b_u_newhead == NULL))
+! semsg("b_u_newhead invalid: 0x%x", curbuf->b_u_newhead);
+ if (curbuf->b_u_curhead != NULL && seen_b_u_curhead == 0)
+! semsg("b_u_curhead invalid: 0x%x", curbuf->b_u_curhead);
+ if (header_count != curbuf->b_u_numhead)
+ {
+! emsg("b_u_numhead invalid");
+! smsg("expected: %ld, actual: %ld",
+ (long)header_count, (long)curbuf->b_u_numhead);
+ }
+ }
+***************
+*** 316,322 ****
+ /* Don't allow changes when 'modifiable' is off. */
+ if (!curbuf->b_p_ma)
+ {
+! EMSG(_(e_modifiable));
+ return FALSE;
+ }
+
+--- 316,322 ----
+ /* Don't allow changes when 'modifiable' is off. */
+ if (!curbuf->b_p_ma)
+ {
+! emsg(_(e_modifiable));
+ return FALSE;
+ }
+
+***************
+*** 324,330 ****
+ /* In the sandbox it's not allowed to change the text. */
+ if (sandbox != 0)
+ {
+! EMSG(_(e_sandbox));
+ return FALSE;
+ }
+ #endif
+--- 324,330 ----
+ /* In the sandbox it's not allowed to change the text. */
+ if (sandbox != 0)
+ {
+! emsg(_(e_sandbox));
+ return FALSE;
+ }
+ #endif
+***************
+*** 333,339 ****
+ * caller of getcmdline() may get confused. */
+ if (textlock != 0)
+ {
+! EMSG(_(e_secure));
+ return FALSE;
+ }
+
+--- 333,339 ----
+ * caller of getcmdline() may get confused. */
+ if (textlock != 0)
+ {
+! emsg(_(e_secure));
+ return FALSE;
+ }
+
+***************
+*** 413,424 ****
+ {
+ if (netbeans_is_guarded(top, bot))
+ {
+! EMSG(_(e_guarded));
+ return FAIL;
+ }
+ if (curbuf->b_p_ro)
+ {
+! EMSG(_(e_nbreadonly));
+ return FAIL;
+ }
+ }
+--- 413,424 ----
+ {
+ if (netbeans_is_guarded(top, bot))
+ {
+! emsg(_(e_guarded));
+ return FAIL;
+ }
+ if (curbuf->b_p_ro)
+ {
+! emsg(_(e_nbreadonly));
+ return FAIL;
+ }
+ }
+***************
+*** 439,445 ****
+ {
+ /* This happens when the FileChangedRO autocommand changes the
+ * file in a way it becomes shorter. */
+! EMSG(_("E881: Line count changed unexpectedly"));
+ return FAIL;
+ }
+ }
+--- 439,445 ----
+ {
+ /* This happens when the FileChangedRO autocommand changes the
+ * file in a way it becomes shorter. */
+! emsg(_("E881: Line count changed unexpectedly"));
+ return FAIL;
+ }
+ }
+***************
+*** 861,867 ****
+ static void
+ corruption_error(char *mesg, char_u *file_name)
+ {
+! EMSG3(_("E825: Corrupted undo file (%s): %s"), mesg, file_name);
+ }
+
+ static void
+--- 861,867 ----
+ static void
+ corruption_error(char *mesg, char_u *file_name)
+ {
+! semsg(_("E825: Corrupted undo file (%s): %s"), mesg, file_name);
+ }
+
+ static void
+***************
+*** 1553,1559 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)
+ _("Cannot write undo file in any directory in 'undodir'"));
+ verbose_leave();
+ }
+--- 1553,1559 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(
+ _("Cannot write undo file in any directory in 'undodir'"));
+ verbose_leave();
+ }
+***************
+*** 1601,1607 ****
+ {
+ if (name == NULL)
+ verbose_enter();
+! smsg((char_u *)
+ _("Will not overwrite with undo file, cannot read: %s"),
+ file_name);
+ if (name == NULL)
+--- 1601,1607 ----
+ {
+ if (name == NULL)
+ verbose_enter();
+! smsg(
+ _("Will not overwrite with undo file, cannot read: %s"),
+ file_name);
+ if (name == NULL)
+***************
+*** 1623,1629 ****
+ {
+ if (name == NULL)
+ verbose_enter();
+! smsg((char_u *)
+ _("Will not overwrite, this is not an undo file: %s"),
+ file_name);
+ if (name == NULL)
+--- 1623,1629 ----
+ {
+ if (name == NULL)
+ verbose_enter();
+! smsg(
+ _("Will not overwrite, this is not an undo file: %s"),
+ file_name);
+ if (name == NULL)
+***************
+*** 1649,1662 ****
+ O_CREAT|O_EXTRA|O_WRONLY|O_EXCL|O_NOFOLLOW, perm);
+ if (fd < 0)
+ {
+! EMSG2(_(e_not_open), file_name);
+ goto theend;
+ }
+ (void)mch_setperm(file_name, perm);
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Writing undo file: %s"), file_name);
+ verbose_leave();
+ }
+
+--- 1649,1662 ----
+ O_CREAT|O_EXTRA|O_WRONLY|O_EXCL|O_NOFOLLOW, perm);
+ if (fd < 0)
+ {
+! semsg(_(e_not_open), file_name);
+ goto theend;
+ }
+ (void)mch_setperm(file_name, perm);
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Writing undo file: %s"), file_name);
+ verbose_leave();
+ }
+
+***************
+*** 1688,1694 ****
+ fp = fdopen(fd, "w");
+ if (fp == NULL)
+ {
+! EMSG2(_(e_not_open), file_name);
+ close(fd);
+ mch_remove(file_name);
+ goto theend;
+--- 1688,1694 ----
+ fp = fdopen(fd, "w");
+ if (fp == NULL)
+ {
+! semsg(_(e_not_open), file_name);
+ close(fd);
+ mch_remove(file_name);
+ goto theend;
+***************
+*** 1743,1750 ****
+ #ifdef U_DEBUG
+ if (headers_written != buf->b_u_numhead)
+ {
+! EMSGN("Written %ld headers, ...", headers_written);
+! EMSGN("... but numhead is %ld", buf->b_u_numhead);
+ }
+ #endif
+
+--- 1743,1750 ----
+ #ifdef U_DEBUG
+ if (headers_written != buf->b_u_numhead)
+ {
+! semsg("Written %ld headers, ...", headers_written);
+! semsg("... but numhead is %ld", buf->b_u_numhead);
+ }
+ #endif
+
+***************
+*** 1756,1762 ****
+ write_error:
+ fclose(fp);
+ if (!write_ok)
+! EMSG2(_("E829: write error in undo file: %s"), file_name);
+
+ #if defined(WIN3264)
+ /* Copy file attributes; for systems where this can only be done after
+--- 1756,1762 ----
+ write_error:
+ fclose(fp);
+ if (!write_ok)
+! semsg(_("E829: write error in undo file: %s"), file_name);
+
+ #if defined(WIN3264)
+ /* Copy file attributes; for systems where this can only be done after
+***************
+*** 1846,1852 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Not reading undo file, owner differs: %s"),
+ file_name);
+ verbose_leave();
+ }
+--- 1846,1852 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Not reading undo file, owner differs: %s"),
+ file_name);
+ verbose_leave();
+ }
+***************
+*** 1860,1866 ****
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg((char_u *)_("Reading undo file: %s"), file_name);
+ verbose_leave();
+ }
+
+--- 1860,1866 ----
+ if (p_verbose > 0)
+ {
+ verbose_enter();
+! smsg(_("Reading undo file: %s"), file_name);
+ verbose_leave();
+ }
+
+***************
+*** 1868,1874 ****
+ if (fp == NULL)
+ {
+ if (name != NULL || p_verbose > 0)
+! EMSG2(_("E822: Cannot open undo file for reading: %s"), file_name);
+ goto error;
+ }
+ bi.bi_buf = curbuf;
+--- 1868,1874 ----
+ if (fp == NULL)
+ {
+ if (name != NULL || p_verbose > 0)
+! semsg(_("E822: Cannot open undo file for reading: %s"), file_name);
+ goto error;
+ }
+ bi.bi_buf = curbuf;
+***************
+*** 1880,1886 ****
+ if (fread(magic_buf, UF_START_MAGIC_LEN, 1, fp) != 1
+ || memcmp(magic_buf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
+ {
+! EMSG2(_("E823: Not an undo file: %s"), file_name);
+ goto error;
+ }
+ version = get2c(fp);
+--- 1880,1886 ----
+ if (fread(magic_buf, UF_START_MAGIC_LEN, 1, fp) != 1
+ || memcmp(magic_buf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
+ {
+! semsg(_("E823: Not an undo file: %s"), file_name);
+ goto error;
+ }
+ version = get2c(fp);
+***************
+*** 1889,1902 ****
+ #ifdef FEAT_CRYPT
+ if (*curbuf->b_p_key == NUL)
+ {
+! EMSG2(_("E832: Non-encrypted file has encrypted undo file: %s"),
+ file_name);
+ goto error;
+ }
+ bi.bi_state = crypt_create_from_file(fp, curbuf->b_p_key);
+ if (bi.bi_state == NULL)
+ {
+! EMSG2(_("E826: Undo file decryption failed: %s"), file_name);
+ goto error;
+ }
+ if (crypt_whole_undofile(bi.bi_state->method_nr))
+--- 1889,1902 ----
+ #ifdef FEAT_CRYPT
+ if (*curbuf->b_p_key == NUL)
+ {
+! semsg(_("E832: Non-encrypted file has encrypted undo file: %s"),
+ file_name);
+ goto error;
+ }
+ bi.bi_state = crypt_create_from_file(fp, curbuf->b_p_key);
+ if (bi.bi_state == NULL)
+ {
+! semsg(_("E826: Undo file decryption failed: %s"), file_name);
+ goto error;
+ }
+ if (crypt_whole_undofile(bi.bi_state->method_nr))
+***************
+*** 1912,1924 ****
+ bi.bi_used = 0;
+ }
+ #else
+! EMSG2(_("E827: Undo file is encrypted: %s"), file_name);
+ goto error;
+ #endif
+ }
+ else if (version != UF_VERSION)
+ {
+! EMSG2(_("E824: Incompatible undo file: %s"), file_name);
+ goto error;
+ }
+
+--- 1912,1924 ----
+ bi.bi_used = 0;
+ }
+ #else
+! semsg(_("E827: Undo file is encrypted: %s"), file_name);
+ goto error;
+ #endif
+ }
+ else if (version != UF_VERSION)
+ {
+! semsg(_("E824: Incompatible undo file: %s"), file_name);
+ goto error;
+ }
+
+***************
+*** 2122,2134 ****
+ #ifdef U_DEBUG
+ for (i = 0; i < num_head; ++i)
+ if (uhp_table_used[i] == 0)
+! EMSGN("uhp_table entry %ld not used, leaking memory", i);
+ vim_free(uhp_table_used);
+ u_check(TRUE);
+ #endif
+
+ if (name != NULL)
+! smsg((char_u *)_("Finished reading undo file %s"), file_name);
+ goto theend;
+
+ error:
+--- 2122,2134 ----
+ #ifdef U_DEBUG
+ for (i = 0; i < num_head; ++i)
+ if (uhp_table_used[i] == 0)
+! semsg("uhp_table entry %ld not used, leaking memory", i);
+ vim_free(uhp_table_used);
+ u_check(TRUE);
+ #endif
+
+ if (name != NULL)
+! smsg(_("Finished reading undo file %s"), file_name);
+ goto theend;
+
+ error:
+***************
+*** 2488,2494 ****
+
+ if (absolute)
+ {
+! EMSGN(_("E830: Undo number %ld not found"), step);
+ return;
+ }
+
+--- 2488,2494 ----
+
+ if (absolute)
+ {
+! semsg(_("E830: Undo number %ld not found"), step);
+ return;
+ }
+
+***************
+*** 2678,2684 ****
+ || bot > curbuf->b_ml.ml_line_count + 1)
+ {
+ unblock_autocmds();
+! IEMSG(_("E438: u_undo: line numbers wrong"));
+ changed(); /* don't want UNCHANGED now */
+ return;
+ }
+--- 2678,2684 ----
+ || bot > curbuf->b_ml.ml_line_count + 1)
+ {
+ unblock_autocmds();
+! iemsg(_("E438: u_undo: line numbers wrong"));
+ changed(); /* don't want UNCHANGED now */
+ return;
+ }
+***************
+*** 2988,2994 ****
+ }
+ #endif
+
+! smsg_attr_keep(0, (char_u *)_("%ld %s; %s #%ld %s"),
+ u_oldcount < 0 ? -u_oldcount : u_oldcount,
+ _(msgstr),
+ did_undo ? _("before") : _("after"),
+--- 2988,2994 ----
+ }
+ #endif
+
+! smsg_attr_keep(0, _("%ld %s; %s #%ld %s"),
+ u_oldcount < 0 ? -u_oldcount : u_oldcount,
+ _(msgstr),
+ did_undo ? _("before") : _("after"),
+***************
+*** 3165,3171 ****
+ return; /* nothing changed before */
+ if (curbuf->b_u_curhead != NULL)
+ {
+! EMSG(_("E790: undojoin is not allowed after undo"));
+ return;
+ }
+ if (!curbuf->b_u_synced)
+--- 3165,3171 ----
+ return; /* nothing changed before */
+ if (curbuf->b_u_curhead != NULL)
+ {
+! emsg(_("E790: undojoin is not allowed after undo"));
+ return;
+ }
+ if (!curbuf->b_u_synced)
+***************
+*** 3270,3276 ****
+ {
+ if (curbuf->b_u_newhead == NULL || curbuf->b_u_newhead->uh_entry == NULL)
+ {
+! IEMSG(_("E439: undo list corrupt"));
+ return NULL;
+ }
+ return curbuf->b_u_newhead->uh_entry;
+--- 3270,3276 ----
+ {
+ if (curbuf->b_u_newhead == NULL || curbuf->b_u_newhead->uh_entry == NULL)
+ {
+! iemsg(_("E439: undo list corrupt"));
+ return NULL;
+ }
+ return curbuf->b_u_newhead->uh_entry;
+***************
+*** 3302,3308 ****
+ uep->ue_bot = uep->ue_top + uep->ue_size + 1 + extra;
+ if (uep->ue_bot < 1 || uep->ue_bot > curbuf->b_ml.ml_line_count)
+ {
+! IEMSG(_("E440: undo line missing"));
+ uep->ue_bot = uep->ue_top + 1; /* assume all lines deleted, will
+ * get all the old lines back
+ * without deleting the current
+--- 3302,3308 ----
+ uep->ue_bot = uep->ue_top + uep->ue_size + 1 + extra;
+ if (uep->ue_bot < 1 || uep->ue_bot > curbuf->b_ml.ml_line_count)
+ {
+! iemsg(_("E440: undo line missing"));
+ uep->ue_bot = uep->ue_top + 1; /* assume all lines deleted, will
+ * get all the old lines back
+ * without deleting the current
+*** ../vim-8.1.0742/src/userfunc.c 2018-12-13 22:17:52.881941445 +0100
+--- src/userfunc.c 2019-01-13 19:58:05.537159726 +0100
+***************
+*** 119,125 ****
+ || (p - arg == 8 && STRNCMP(arg, "lastline", 8) == 0))
+ {
+ if (!skip)
+! EMSG2(_("E125: Illegal argument: %s"), arg);
+ break;
+ }
+ if (newargs != NULL && ga_grow(newargs, 1) == FAIL)
+--- 119,125 ----
+ || (p - arg == 8 && STRNCMP(arg, "lastline", 8) == 0))
+ {
+ if (!skip)
+! semsg(_("E125: Illegal argument: %s"), arg);
+ break;
+ }
+ if (newargs != NULL && ga_grow(newargs, 1) == FAIL)
+***************
+*** 139,145 ****
+ for (i = 0; i < newargs->ga_len; ++i)
+ if (STRCMP(((char_u **)(newargs->ga_data))[i], arg) == 0)
+ {
+! EMSG2(_("E853: Duplicate argument name: %s"), arg);
+ vim_free(arg);
+ goto err_ret;
+ }
+--- 139,145 ----
+ for (i = 0; i < newargs->ga_len; ++i)
+ if (STRCMP(((char_u **)(newargs->ga_data))[i], arg) == 0)
+ {
+! semsg(_("E853: Duplicate argument name: %s"), arg);
+ vim_free(arg);
+ goto err_ret;
+ }
+***************
+*** 157,163 ****
+ if (mustend && *p != endchar)
+ {
+ if (!skip)
+! EMSG2(_(e_invarg2), *argp);
+ break;
+ }
+ }
+--- 157,163 ----
+ if (mustend && *p != endchar)
+ {
+ if (!skip)
+! semsg(_(e_invarg2), *argp);
+ break;
+ }
+ }
+***************
+*** 386,392 ****
+ p = concat_str((char_u *)"<SNR>", name + 3);
+ else
+ p = name;
+! EMSG2(_(ermsg), p);
+ if (p != name)
+ vim_free(p);
+ }
+--- 386,392 ----
+ p = concat_str((char_u *)"<SNR>", name + 3);
+ else
+ p = name;
+! semsg(_(ermsg), p);
+ if (p != name)
+ vim_free(p);
+ }
+***************
+*** 713,719 ****
+ /* If depth of calling is getting too high, don't execute the function */
+ if (depth >= p_mfd)
+ {
+! EMSG(_("E132: Function call depth is higher than 'maxfuncdepth'"));
+ rettv->v_type = VAR_NUMBER;
+ rettv->vval.v_number = -1;
+ return;
+--- 713,719 ----
+ /* If depth of calling is getting too high, don't execute the function */
+ if (depth >= p_mfd)
+ {
+! emsg(_("E132: Function call depth is higher than 'maxfuncdepth'"));
+ rettv->v_type = VAR_NUMBER;
+ rettv->vval.v_number = -1;
+ return;
+***************
+*** 885,891 ****
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg((char_u *)_("calling %s"), sourcing_name);
+ if (p_verbose >= 14)
+ {
+ char_u buf[MSG_BUF_LEN];
+--- 885,891 ----
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg(_("calling %s"), sourcing_name);
+ if (p_verbose >= 14)
+ {
+ char_u buf[MSG_BUF_LEN];
+***************
+*** 990,998 ****
+ verbose_enter_scroll();
+
+ if (aborting())
+! smsg((char_u *)_("%s aborted"), sourcing_name);
+ else if (fc->rettv->v_type == VAR_NUMBER)
+! smsg((char_u *)_("%s returning #%ld"), sourcing_name,
+ (long)fc->rettv->vval.v_number);
+ else
+ {
+--- 990,998 ----
+ verbose_enter_scroll();
+
+ if (aborting())
+! smsg(_("%s aborted"), sourcing_name);
+ else if (fc->rettv->v_type == VAR_NUMBER)
+! smsg(_("%s returning #%ld"), sourcing_name,
+ (long)fc->rettv->vval.v_number);
+ else
+ {
+***************
+*** 1014,1020 ****
+ trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+ s = buf;
+ }
+! smsg((char_u *)_("%s returning %s"), sourcing_name, s);
+ vim_free(tofree);
+ }
+ }
+--- 1014,1020 ----
+ trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+ s = buf;
+ }
+! smsg(_("%s returning %s"), sourcing_name, s);
+ vim_free(tofree);
+ }
+ }
+***************
+*** 1040,1046 ****
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg((char_u *)_("continuing in %s"), sourcing_name);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ verbose_leave_scroll();
+--- 1040,1046 ----
+ ++no_wait_return;
+ verbose_enter_scroll();
+
+! smsg(_("continuing in %s"), sourcing_name);
+ msg_puts((char_u *)"\n"); /* don't overwrite this either */
+
+ verbose_leave_scroll();
+***************
+*** 1194,1200 ****
+ restore_funccal(void)
+ {
+ if (funccal_stack == NULL)
+! IEMSG("INTERNAL: restore_funccal()");
+ else
+ {
+ current_funccal = funccal_stack->top_funccal;
+--- 1194,1200 ----
+ restore_funccal(void)
+ {
+ if (funccal_stack == NULL)
+! iemsg("INTERNAL: restore_funccal()");
+ else
+ {
+ current_funccal = funccal_stack->top_funccal;
+***************
+*** 1312,1318 ****
+ {
+ if (argc == MAX_FUNC_ARGS - (partial == NULL ? 0 : partial->pt_argc))
+ {
+! EMSG(_("E699: Too many arguments"));
+ break;
+ }
+ /* Make a copy of each argument. This is needed to be able to set
+--- 1312,1318 ----
+ {
+ if (argc == MAX_FUNC_ARGS - (partial == NULL ? 0 : partial->pt_argc))
+ {
+! emsg(_("E699: Too many arguments"));
+ break;
+ }
+ /* Make a copy of each argument. This is needed to be able to set
+***************
+*** 1660,1666 ****
+ if (end == start)
+ {
+ if (!skip)
+! EMSG(_("E129: Function name required"));
+ goto theend;
+ }
+ if (end == NULL || (lv.ll_tv != NULL && (lead > 2 || lv.ll_range)))
+--- 1660,1666 ----
+ if (end == start)
+ {
+ if (!skip)
+! emsg(_("E129: Function name required"));
+ goto theend;
+ }
+ if (end == NULL || (lv.ll_tv != NULL && (lead > 2 || lv.ll_range)))
+***************
+*** 1673,1679 ****
+ if (!aborting())
+ {
+ if (end != NULL)
+! EMSG2(_(e_invarg2), start);
+ }
+ else
+ *pp = find_name_end(start, NULL, NULL, FNE_INCL_BR);
+--- 1673,1679 ----
+ if (!aborting())
+ {
+ if (end != NULL)
+! semsg(_(e_invarg2), start);
+ }
+ else
+ *pp = find_name_end(start, NULL, NULL, FNE_INCL_BR);
+***************
+*** 1706,1712 ****
+ {
+ if (!skip && !(flags & TFN_QUIET) && (fdp == NULL
+ || lv.ll_dict == NULL || fdp->fd_newkey == NULL))
+! EMSG(_(e_funcref));
+ else
+ *pp = end;
+ name = NULL;
+--- 1706,1712 ----
+ {
+ if (!skip && !(flags & TFN_QUIET) && (fdp == NULL
+ || lv.ll_dict == NULL || fdp->fd_newkey == NULL))
+! emsg(_(e_funcref));
+ else
+ *pp = end;
+ name = NULL;
+***************
+*** 1789,1795 ****
+ /* It's "s:" or "<SID>" */
+ if (current_sctx.sc_sid <= 0)
+ {
+! EMSG(_(e_usingsid));
+ goto theend;
+ }
+ sprintf((char *)sid_buf, "%ld_", (long)current_sctx.sc_sid);
+--- 1789,1795 ----
+ /* It's "s:" or "<SID>" */
+ if (current_sctx.sc_sid <= 0)
+ {
+! emsg(_(e_usingsid));
+ goto theend;
+ }
+ sprintf((char *)sid_buf, "%ld_", (long)current_sctx.sc_sid);
+***************
+*** 1798,1804 ****
+ }
+ else if (!(flags & TFN_INT) && builtin_function(lv.ll_name, len))
+ {
+! EMSG2(_("E128: Function name must start with a capital or \"s:\": %s"),
+ start);
+ goto theend;
+ }
+--- 1798,1804 ----
+ }
+ else if (!(flags & TFN_INT) && builtin_function(lv.ll_name, len))
+ {
+! semsg(_("E128: Function name must start with a capital or \"s:\": %s"),
+ start);
+ goto theend;
+ }
+***************
+*** 1808,1814 ****
+
+ if (cp != NULL && cp < end)
+ {
+! EMSG2(_("E884: Function name cannot contain a colon: %s"), start);
+ goto theend;
+ }
+ }
+--- 1808,1814 ----
+
+ if (cp != NULL && cp < end)
+ {
+! semsg(_("E884: Function name cannot contain a colon: %s"), start);
+ goto theend;
+ }
+ }
+***************
+*** 1961,1967 ****
+ if (!aborting())
+ {
+ if (!eap->skip && fudi.fd_newkey != NULL)
+! EMSG2(_(e_dictkey), fudi.fd_newkey);
+ vim_free(fudi.fd_newkey);
+ return;
+ }
+--- 1961,1967 ----
+ if (!aborting())
+ {
+ if (!eap->skip && fudi.fd_newkey != NULL)
+! semsg(_(e_dictkey), fudi.fd_newkey);
+ vim_free(fudi.fd_newkey);
+ return;
+ }
+***************
+*** 1981,1987 ****
+ {
+ if (!ends_excmd(*skipwhite(p)))
+ {
+! EMSG(_(e_trailing));
+ goto ret_free;
+ }
+ eap->nextcmd = check_nextcmd(p);
+--- 1981,1987 ----
+ {
+ if (!ends_excmd(*skipwhite(p)))
+ {
+! emsg(_(e_trailing));
+ goto ret_free;
+ }
+ eap->nextcmd = check_nextcmd(p);
+***************
+*** 2027,2033 ****
+ {
+ if (!eap->skip)
+ {
+! EMSG2(_("E124: Missing '(': %s"), eap->arg);
+ goto ret_free;
+ }
+ /* attempt to continue by skipping some text */
+--- 2027,2033 ----
+ {
+ if (!eap->skip)
+ {
+! semsg(_("E124: Missing '(': %s"), eap->arg);
+ goto ret_free;
+ }
+ /* attempt to continue by skipping some text */
+***************
+*** 2062,2068 ****
+ }
+ /* Disallow using the g: dict. */
+ if (fudi.fd_dict != NULL && fudi.fd_dict->dv_scope == VAR_DEF_SCOPE)
+! EMSG(_("E862: Cannot use g: here"));
+ }
+
+ if (get_function_args(&p, ')', &newargs, &varargs, eap->skip) == FAIL)
+--- 2062,2068 ----
+ }
+ /* Disallow using the g: dict. */
+ if (fudi.fd_dict != NULL && fudi.fd_dict->dv_scope == VAR_DEF_SCOPE)
+! emsg(_("E862: Cannot use g: here"));
+ }
+
+ if (get_function_args(&p, ')', &newargs, &varargs, eap->skip) == FAIL)
+***************
+*** 2107,2113 ****
+ if (*p == '\n')
+ line_arg = p + 1;
+ else if (*p != NUL && *p != '"' && !eap->skip && !did_emsg)
+! EMSG(_(e_trailing));
+
+ /*
+ * Read the body of the function, until ":endfunction" is found.
+--- 2107,2113 ----
+ if (*p == '\n')
+ line_arg = p + 1;
+ else if (*p != NUL && *p != '"' && !eap->skip && !did_emsg)
+! emsg(_(e_trailing));
+
+ /*
+ * Read the body of the function, until ":endfunction" is found.
+***************
+*** 2120,2126 ****
+ if (!eap->skip && !eap->forceit)
+ {
+ if (fudi.fd_dict != NULL && fudi.fd_newkey == NULL)
+! EMSG(_(e_funcdict));
+ else if (name != NULL && find_func(name) != NULL)
+ emsg_funcname(e_funcexts, name);
+ }
+--- 2120,2126 ----
+ if (!eap->skip && !eap->forceit)
+ {
+ if (fudi.fd_dict != NULL && fudi.fd_newkey == NULL)
+! emsg(_(e_funcdict));
+ else if (name != NULL && find_func(name) != NULL)
+ emsg_funcname(e_funcexts, name);
+ }
+***************
+*** 2170,2176 ****
+ lines_left = Rows - 1;
+ if (theline == NULL)
+ {
+! EMSG(_("E126: Missing :endfunction"));
+ goto erret;
+ }
+
+--- 2170,2176 ----
+ lines_left = Rows - 1;
+ if (theline == NULL)
+ {
+! emsg(_("E126: Missing :endfunction"));
+ goto erret;
+ }
+
+***************
+*** 2374,2380 ****
+ fp = NULL;
+ if (fudi.fd_newkey == NULL && !eap->forceit)
+ {
+! EMSG(_(e_funcdict));
+ goto erret;
+ }
+ if (fudi.fd_di == NULL)
+--- 2374,2380 ----
+ fp = NULL;
+ if (fudi.fd_newkey == NULL && !eap->forceit)
+ {
+! emsg(_(e_funcdict));
+ goto erret;
+ }
+ if (fudi.fd_di == NULL)
+***************
+*** 2421,2427 ****
+ }
+ if (j == FAIL)
+ {
+! EMSG2(_("E746: Function name does not match script file name: %s"), name);
+ goto erret;
+ }
+ }
+--- 2421,2427 ----
+ }
+ if (j == FAIL)
+ {
+! semsg(_("E746: Function name does not match script file name: %s"), name);
+ goto erret;
+ }
+ }
+***************
+*** 2876,2888 ****
+ if (name == NULL)
+ {
+ if (fudi.fd_dict != NULL && !eap->skip)
+! EMSG(_(e_funcref));
+ return;
+ }
+ if (!ends_excmd(*skipwhite(p)))
+ {
+ vim_free(name);
+! EMSG(_(e_trailing));
+ return;
+ }
+ eap->nextcmd = check_nextcmd(p);
+--- 2876,2888 ----
+ if (name == NULL)
+ {
+ if (fudi.fd_dict != NULL && !eap->skip)
+! emsg(_(e_funcref));
+ return;
+ }
+ if (!ends_excmd(*skipwhite(p)))
+ {
+ vim_free(name);
+! emsg(_(e_trailing));
+ return;
+ }
+ eap->nextcmd = check_nextcmd(p);
+***************
+*** 2898,2909 ****
+ if (fp == NULL)
+ {
+ if (!eap->forceit)
+! EMSG2(_(e_nofunc), eap->arg);
+ return;
+ }
+ if (fp->uf_calls > 0)
+ {
+! EMSG2(_("E131: Cannot delete function %s: It is in use"), eap->arg);
+ return;
+ }
+
+--- 2898,2909 ----
+ if (fp == NULL)
+ {
+ if (!eap->forceit)
+! semsg(_(e_nofunc), eap->arg);
+ return;
+ }
+ if (fp->uf_calls > 0)
+ {
+! semsg(_("E131: Cannot delete function %s: It is in use"), eap->arg);
+ return;
+ }
+
+***************
+*** 3032,3038 ****
+
+ if (current_funccal == NULL)
+ {
+! EMSG(_("E133: :return not inside a function"));
+ return;
+ }
+
+--- 3032,3038 ----
+
+ if (current_funccal == NULL)
+ {
+! emsg(_("E133: :return not inside a function"));
+ return;
+ }
+
+***************
+*** 3108,3114 ****
+ if (fudi.fd_newkey != NULL)
+ {
+ /* Still need to give an error message for missing key. */
+! EMSG2(_(e_dictkey), fudi.fd_newkey);
+ vim_free(fudi.fd_newkey);
+ }
+ if (tofree == NULL)
+--- 3108,3114 ----
+ if (fudi.fd_newkey != NULL)
+ {
+ /* Still need to give an error message for missing key. */
+! semsg(_(e_dictkey), fudi.fd_newkey);
+ vim_free(fudi.fd_newkey);
+ }
+ if (tofree == NULL)
+***************
+*** 3133,3139 ****
+
+ if (*startarg != '(')
+ {
+! EMSG2(_("E107: Missing parentheses: %s"), eap->arg);
+ goto end;
+ }
+
+--- 3133,3139 ----
+
+ if (*startarg != '(')
+ {
+! semsg(_("E107: Missing parentheses: %s"), eap->arg);
+ goto end;
+ }
+
+***************
+*** 3158,3164 ****
+ {
+ // If the function deleted lines or switched to another buffer
+ // the line number may become invalid.
+! EMSG(_(e_invrange));
+ break;
+ }
+ curwin->w_cursor.lnum = lnum;
+--- 3158,3164 ----
+ {
+ // If the function deleted lines or switched to another buffer
+ // the line number may become invalid.
+! emsg(_(e_invrange));
+ break;
+ }
+ curwin->w_cursor.lnum = lnum;
+***************
+*** 3205,3211 ****
+ if (!ends_excmd(*arg))
+ {
+ emsg_severe = TRUE;
+! EMSG(_(e_trailing));
+ }
+ else
+ eap->nextcmd = check_nextcmd(arg);
+--- 3205,3211 ----
+ if (!ends_excmd(*arg))
+ {
+ emsg_severe = TRUE;
+! emsg(_(e_trailing));
+ }
+ else
+ eap->nextcmd = check_nextcmd(arg);
+***************
+*** 3267,3273 ****
+ if ((cstack->cs_rettv[idx] = alloc_tv()) != NULL)
+ *(typval_T *)cstack->cs_rettv[idx] = *(typval_T *)rettv;
+ else
+! EMSG(_(e_outofmem));
+ }
+ else
+ cstack->cs_rettv[idx] = NULL;
+--- 3267,3273 ----
+ if ((cstack->cs_rettv[idx] = alloc_tv()) != NULL)
+ *(typval_T *)cstack->cs_rettv[idx] = *(typval_T *)rettv;
+ else
+! emsg(_(e_outofmem));
+ }
+ else
+ cstack->cs_rettv[idx] = NULL;
+*** ../vim-8.1.0742/src/vim.h 2019-01-12 22:47:01.264088074 +0100
+--- src/vim.h 2019-01-13 19:44:12.812867446 +0100
+***************
+*** 1625,1638 ****
+
+ #define MSG(s) msg((char_u *)(s))
+ #define MSG_ATTR(s, attr) msg_attr((char_u *)(s), (attr))
+- #define EMSG(s) emsg((char_u *)(s))
+- #define EMSG2(s, p) emsg2((char_u *)(s), (char_u *)(p))
+- #define EMSG3(s, p, q) emsg3((char_u *)(s), (char_u *)(p), (char_u *)(q))
+- #define EMSGN(s, n) emsgn((char_u *)(s), (long)(n))
+- #define EMSGU(s, n) emsgu((char_u *)(s), (long_u)(n))
+- #define IEMSG(s) iemsg((char_u *)(s))
+- #define IEMSG2(s, p) iemsg2((char_u *)(s), (char_u *)(p))
+- #define IEMSGN(s, n) iemsgn((char_u *)(s), (long)(n))
+ #define OUT_STR(s) out_str((char_u *)(s))
+ #define OUT_STR_NF(s) out_str_nf((char_u *)(s))
+ #define MSG_PUTS(s) msg_puts((char_u *)(s))
+--- 1625,1630 ----
+***************
+*** 1676,1685 ****
+ # define GUI_GET_COLOR GUI_FUNCTION(get_color)
+ #endif
+
+! /* Prefer using emsg3(), because perror() may send the output to the wrong
+ * destination and mess up the screen. */
+ #ifdef HAVE_STRERROR
+! # define PERROR(msg) (void)emsg3((char_u *)"%s: %s", (char_u *)msg, (char_u *)strerror(errno))
+ #else
+ # define PERROR(msg) do_perror(msg)
+ #endif
+--- 1668,1677 ----
+ # define GUI_GET_COLOR GUI_FUNCTION(get_color)
+ #endif
+
+! /* Prefer using emsgf(), because perror() may send the output to the wrong
+ * destination and mess up the screen. */
+ #ifdef HAVE_STRERROR
+! # define PERROR(msg) (void)semsg("%s: %s", (char *)msg, strerror(errno))
+ #else
+ # define PERROR(msg) do_perror(msg)
+ #endif
+*** ../vim-8.1.0742/src/window.c 2019-01-11 20:34:18.300314693 +0100
+--- src/window.c 2019-01-13 19:58:11.409110820 +0100
+***************
+*** 101,107 ****
+ do { \
+ if (cmdwin_type != 0) \
+ { \
+! EMSG(_(e_cmdwin)); \
+ return; \
+ } \
+ } while (0)
+--- 101,107 ----
+ do { \
+ if (cmdwin_type != 0) \
+ { \
+! emsg(_(e_cmdwin)); \
+ return; \
+ } \
+ } while (0)
+***************
+*** 156,164 ****
+ ? curwin->w_alt_fnum : Prenum) == NULL)
+ {
+ if (Prenum == 0)
+! EMSG(_(e_noalt));
+ else
+! EMSGN(_("E92: Buffer %ld not found"), Prenum);
+ break;
+ }
+
+--- 156,164 ----
+ ? curwin->w_alt_fnum : Prenum) == NULL)
+ {
+ if (Prenum == 0)
+! emsg(_(e_noalt));
+ else
+! semsg(_("E92: Buffer %ld not found"), Prenum);
+ break;
+ }
+
+***************
+*** 220,226 ****
+ if (wp->w_p_pvw)
+ break;
+ if (wp == NULL)
+! EMSG(_("E441: There is no preview window"));
+ else
+ win_goto(wp);
+ break;
+--- 220,226 ----
+ if (wp->w_p_pvw)
+ break;
+ if (wp == NULL)
+! emsg(_("E441: There is no preview window"));
+ else
+ win_goto(wp);
+ break;
+***************
+*** 739,745 ****
+ flags |= cmdmod.split;
+ if ((flags & WSP_TOP) && (flags & WSP_BOT))
+ {
+! EMSG(_("E442: Can't split topleft and botright at the same time"));
+ return FAIL;
+ }
+
+--- 739,745 ----
+ flags |= cmdmod.split;
+ if ((flags & WSP_TOP) && (flags & WSP_BOT))
+ {
+! emsg(_("E442: Can't split topleft and botright at the same time"));
+ return FAIL;
+ }
+
+***************
+*** 794,800 ****
+ {
+ if (VISIBLE_HEIGHT(oldwin) <= p_wmh && new_wp == NULL)
+ {
+! EMSG(_(e_noroom));
+ return FAIL;
+ }
+ need_status = STATUS_HEIGHT;
+--- 794,800 ----
+ {
+ if (VISIBLE_HEIGHT(oldwin) <= p_wmh && new_wp == NULL)
+ {
+! emsg(_(e_noroom));
+ return FAIL;
+ }
+ need_status = STATUS_HEIGHT;
+***************
+*** 852,858 ****
+ }
+ if (available < needed && new_wp == NULL)
+ {
+! EMSG(_(e_noroom));
+ return FAIL;
+ }
+ if (new_size == 0)
+--- 852,858 ----
+ }
+ if (available < needed && new_wp == NULL)
+ {
+! emsg(_(e_noroom));
+ return FAIL;
+ }
+ if (new_size == 0)
+***************
+*** 935,941 ****
+ }
+ if (available < needed && new_wp == NULL)
+ {
+! EMSG(_(e_noroom));
+ return FAIL;
+ }
+ oldwin_height = oldwin->w_height;
+--- 935,941 ----
+ }
+ if (available < needed && new_wp == NULL)
+ {
+! emsg(_(e_noroom));
+ return FAIL;
+ }
+ oldwin_height = oldwin->w_height;
+***************
+*** 1606,1612 ****
+ FOR_ALL_FRAMES(frp, curwin->w_frame->fr_parent->fr_child)
+ if (frp->fr_win == NULL)
+ {
+! EMSG(_("E443: Cannot rotate when another window is split"));
+ return;
+ }
+
+--- 1606,1612 ----
+ FOR_ALL_FRAMES(frp, curwin->w_frame->fr_parent->fr_child)
+ if (frp->fr_win == NULL)
+ {
+! emsg(_("E443: Cannot rotate when another window is split"));
+ return;
+ }
+
+***************
+*** 2309,2315 ****
+
+ if (last_window())
+ {
+! EMSG(_("E444: Cannot close last window"));
+ return FAIL;
+ }
+
+--- 2309,2315 ----
+
+ if (last_window())
+ {
+! emsg(_("E444: Cannot close last window"));
+ return FAIL;
+ }
+
+***************
+*** 2318,2329 ****
+ return FAIL; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+! EMSG(_("E813: Cannot close autocmd window"));
+ return FAIL;
+ }
+ if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
+ {
+! EMSG(_("E814: Cannot close window, only autocmd window would remain"));
+ return FAIL;
+ }
+
+--- 2318,2329 ----
+ return FAIL; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+! emsg(_("E813: Cannot close autocmd window"));
+ return FAIL;
+ }
+ if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
+ {
+! emsg(_("E814: Cannot close window, only autocmd window would remain"));
+ return FAIL;
+ }
+
+***************
+*** 3419,3425 ****
+ }
+
+ if (message && !ONE_WINDOW)
+! EMSG(_("E445: Other window contains changes"));
+ }
+
+ /*
+--- 3419,3425 ----
+ }
+
+ if (message && !ONE_WINDOW)
+! emsg(_("E445: Other window contains changes"));
+ }
+
+ /*
+***************
+*** 5447,5453 ****
+ --p_wmh;
+ if (first)
+ {
+! EMSG(_(e_noroom));
+ first = FALSE;
+ }
+ }
+--- 5447,5453 ----
+ --p_wmh;
+ if (first)
+ {
+! emsg(_(e_noroom));
+ first = FALSE;
+ }
+ }
+***************
+*** 5473,5479 ****
+ --p_wmw;
+ if (first)
+ {
+! EMSG(_(e_noroom));
+ first = FALSE;
+ }
+ }
+--- 5473,5479 ----
+ --p_wmw;
+ if (first)
+ {
+! emsg(_(e_noroom));
+ first = FALSE;
+ }
+ }
+***************
+*** 5950,5956 ****
+ {
+ if (frp == NULL)
+ {
+! EMSG(_(e_noroom));
+ p_ch = old_p_ch;
+ curtab->tp_ch_used = p_ch;
+ cmdline_row = Rows - p_ch;
+--- 5950,5956 ----
+ {
+ if (frp == NULL)
+ {
+! emsg(_(e_noroom));
+ p_ch = old_p_ch;
+ curtab->tp_ch_used = p_ch;
+ cmdline_row = Rows - p_ch;
+***************
+*** 6041,6047 ****
+ {
+ if (fp == topframe)
+ {
+! EMSG(_(e_noroom));
+ return;
+ }
+ /* In a column of frames: go to frame above. If already at
+--- 6041,6047 ----
+ {
+ if (fp == topframe)
+ {
+! emsg(_(e_noroom));
+ return;
+ }
+ /* In a column of frames: go to frame above. If already at
+***************
+*** 6170,6176 ****
+ if (*ptr == NUL) /* nothing found */
+ {
+ if (options & FNAME_MESS)
+! EMSG(_("E446: No file name under cursor"));
+ return NULL;
+ }
+
+--- 6170,6176 ----
+ if (*ptr == NUL) /* nothing found */
+ {
+ if (options & FNAME_MESS)
+! emsg(_("E446: No file name under cursor"));
+ return NULL;
+ }
+
+***************
+*** 6319,6325 ****
+ {
+ c = ptr[len];
+ ptr[len] = NUL;
+! EMSG2(_("E447: Can't find file \"%s\" in path"), ptr);
+ ptr[len] = c;
+ }
+
+--- 6319,6325 ----
+ {
+ c = ptr[len];
+ ptr[len] = NUL;
+! semsg(_("E447: Can't find file \"%s\" in path"), ptr);
+ ptr[len] = c;
+ }
+
+***************
+*** 6782,6788 ****
+ return -1;
+ if (id < -1 || id == 0)
+ {
+! EMSGN(_("E799: Invalid ID: %ld (must be greater than or equal to 1)"), id);
+ return -1;
+ }
+ if (id != -1)
+--- 6782,6788 ----
+ return -1;
+ if (id < -1 || id == 0)
+ {
+! semsg(_("E799: Invalid ID: %ld (must be greater than or equal to 1)"), id);
+ return -1;
+ }
+ if (id != -1)
+***************
+*** 6792,6798 ****
+ {
+ if (cur->id == id)
+ {
+! EMSGN(_("E801: ID already taken: %ld"), id);
+ return -1;
+ }
+ cur = cur->next;
+--- 6792,6798 ----
+ {
+ if (cur->id == id)
+ {
+! semsg(_("E801: ID already taken: %ld"), id);
+ return -1;
+ }
+ cur = cur->next;
+***************
+*** 6800,6811 ****
+ }
+ if ((hlg_id = syn_namen2id(grp, (int)STRLEN(grp))) == 0)
+ {
+! EMSG2(_(e_nogroup), grp);
+ return -1;
+ }
+ if (pat != NULL && (regprog = vim_regcomp(pat, RE_MAGIC)) == NULL)
+ {
+! EMSG2(_(e_invarg2), pat);
+ return -1;
+ }
+
+--- 6800,6811 ----
+ }
+ if ((hlg_id = syn_namen2id(grp, (int)STRLEN(grp))) == 0)
+ {
+! semsg(_(e_nogroup), grp);
+ return -1;
+ }
+ if (pat != NULL && (regprog = vim_regcomp(pat, RE_MAGIC)) == NULL)
+ {
+! semsg(_(e_invarg2), pat);
+ return -1;
+ }
+
+***************
+*** 6900,6906 ****
+ }
+ else
+ {
+! EMSG(_("List or number required"));
+ goto fail;
+ }
+ if (toplnum == 0 || lnum < toplnum)
+--- 6900,6906 ----
+ }
+ else
+ {
+! emsg(_("List or number required"));
+ goto fail;
+ }
+ if (toplnum == 0 || lnum < toplnum)
+***************
+*** 6969,6975 ****
+ if (id < 1)
+ {
+ if (perr == TRUE)
+! EMSGN(_("E802: Invalid ID: %ld (must be greater than or equal to 1)"),
+ id);
+ return -1;
+ }
+--- 6969,6975 ----
+ if (id < 1)
+ {
+ if (perr == TRUE)
+! semsg(_("E802: Invalid ID: %ld (must be greater than or equal to 1)"),
+ id);
+ return -1;
+ }
+***************
+*** 6981,6987 ****
+ if (cur == NULL)
+ {
+ if (perr == TRUE)
+! EMSGN(_("E803: ID not found: %ld"), id);
+ return -1;
+ }
+ if (cur == prev)
+--- 6981,6987 ----
+ if (cur == NULL)
+ {
+ if (perr == TRUE)
+! semsg(_("E803: ID not found: %ld"), id);
+ return -1;
+ }
+ if (cur == prev)
+*** ../vim-8.1.0742/src/version.c 2019-01-13 19:10:28.963419901 +0100
+--- src/version.c 2019-01-13 19:19:37.843871508 +0100
+***************
+*** 797,798 ****
+--- 797,800 ----
+ { /* Add new patch number below this line */
++ /**/
++ 743,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+195. Your cat has its own home page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///