aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-05-17 09:14:54 +0200
committerJustin M. Keyes <justinkz@gmail.com>2018-05-17 09:14:54 +0200
commite121b1dbe78cdf7ad46f493ca3a1cb83c190f719 (patch)
tree9b38b0944d078da2b0fa30f2bfe70d6c5233e89b /src
parent2aa308c6852b7c51caef5dd6dc4e809719ca7a55 (diff)
parentd2944e6a298e824e5084ac0dfd8701ff9cd1a523 (diff)
downloadrneovim-e121b1dbe78cdf7ad46f493ca3a1cb83c190f719.tar.gz
rneovim-e121b1dbe78cdf7ad46f493ca3a1cb83c190f719.tar.bz2
rneovim-e121b1dbe78cdf7ad46f493ca3a1cb83c190f719.zip
Merge #8331 'handle various errors'
closes #8331
Diffstat (limited to 'src')
-rw-r--r--src/nvim/memfile.c3
-rw-r--r--src/nvim/memline.c18
-rw-r--r--src/nvim/normal.c5
-rw-r--r--src/nvim/ops.c5
-rw-r--r--src/nvim/spell.c4
-rw-r--r--src/nvim/spellfile.c7
-rw-r--r--src/nvim/tag.c4
7 files changed, 24 insertions, 22 deletions
diff --git a/src/nvim/memfile.c b/src/nvim/memfile.c
index f6e03e2532..fe4d24ba11 100644
--- a/src/nvim/memfile.c
+++ b/src/nvim/memfile.c
@@ -76,8 +76,7 @@
/// @param flags Flags for open() call.
///
-/// @return - The open memory file, on success.
-/// - NULL, on failure.
+/// @return The open memory file.
memfile_T *mf_open(char_u *fname, int flags)
{
memfile_T *mfp = xmalloc(sizeof(memfile_T));
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 06de9fda67..3b0cac0456 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -246,7 +246,6 @@ typedef enum {
*/
int ml_open(buf_T *buf)
{
- memfile_T *mfp;
bhdr_T *hp = NULL;
ZERO_BL *b0p;
PTR_BL *pp;
@@ -275,12 +274,8 @@ int ml_open(buf_T *buf)
buf->b_may_swap = false;
}
- /*
- * Open the memfile. No swap file is created yet.
- */
- mfp = mf_open(NULL, 0);
- if (mfp == NULL)
- goto error;
+ // Open the memfile. No swap file is created yet.
+ memfile_T *mfp = mf_open(NULL, 0);
buf->b_ml.ml_mfp = mfp;
buf->b_ml.ml_flags = ML_EMPTY;
@@ -364,11 +359,10 @@ int ml_open(buf_T *buf)
return OK;
error:
- if (mfp != NULL) {
- if (hp)
- mf_put(mfp, hp, false, false);
- mf_close(mfp, true); /* will also xfree(mfp->mf_fname) */
+ if (hp) {
+ mf_put(mfp, hp, false, false);
}
+ mf_close(mfp, true); // will also xfree(mfp->mf_fname)
buf->b_ml.ml_mfp = NULL;
return FAIL;
}
@@ -842,7 +836,7 @@ void ml_recover(void)
mf_open() will consume "fname_used"! */
mfp = mf_open(fname_used, O_RDONLY);
fname_used = p;
- if (mfp == NULL || mfp->mf_fd < 0) {
+ if (mfp->mf_fd < 0) {
EMSG2(_("E306: Cannot open %s"), fname_used);
goto theend;
}
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index e4310de5d8..43e8b6fb3d 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -1812,7 +1812,10 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
} else {
(void)op_delete(oap);
if (oap->motion_type == kMTLineWise && has_format_option(FO_AUTO)) {
- u_save_cursor(); // cursor line wasn't saved yet
+ // cursor line wasn't saved yet
+ if (u_save_cursor() == FAIL) {
+ break;
+ }
}
auto_format(false, true);
}
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index b39b139f9b..d874768dfc 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -2724,7 +2724,9 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
// So the 'u' command restores cursor position after ".p, save the cursor
// position now (though not saving any text).
if (command_start_char == 'a') {
- u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1);
+ if (u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1) == FAIL) {
+ return;
+ }
}
return;
}
@@ -2742,7 +2744,6 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
// Autocommands may be executed when saving lines for undo, which may make
// y_array invalid. Start undo now to avoid that.
if (u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1) == FAIL) {
- ELOG("Failed to save undo information");
return;
}
}
diff --git a/src/nvim/spell.c b/src/nvim/spell.c
index 84aeeda2bf..686962704a 100644
--- a/src/nvim/spell.c
+++ b/src/nvim/spell.c
@@ -2487,7 +2487,9 @@ buf_T *open_spellbuf(void)
buf->b_spell = true;
buf->b_p_swf = true; // may create a swap file
- ml_open(buf);
+ if (ml_open(buf) == FAIL) {
+ abort();
+ }
ml_open_file(buf); // create swap file now
return buf;
diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c
index dab9a2aacd..b844fd9ab8 100644
--- a/src/nvim/spellfile.c
+++ b/src/nvim/spellfile.c
@@ -5368,8 +5368,9 @@ spell_add_word (
// doesn't work for all systems, close the file first.
fclose(fd);
fd = mch_fopen((char *)fname, "r+");
- if (fd == NULL)
+ if (fd == NULL) {
break;
+ }
if (fseek(fd, fpos, SEEK_SET) == 0) {
fputc('#', fd);
if (undo) {
@@ -5378,7 +5379,9 @@ spell_add_word (
len, word, NameBuff);
}
}
- fseek(fd, fpos_next, SEEK_SET);
+ if (fseek(fd, fpos_next, SEEK_SET) <= 0) {
+ break;
+ }
}
}
if (fd != NULL)
diff --git a/src/nvim/tag.c b/src/nvim/tag.c
index f23465e501..ba2727f0d7 100644
--- a/src/nvim/tag.c
+++ b/src/nvim/tag.c
@@ -2407,8 +2407,8 @@ jumpto_tag (
/* If it was a CTRL-W CTRL-] command split window now. For ":tab tag"
* open a new tab page. */
if (postponed_split || cmdmod.tab != 0) {
- win_split(postponed_split > 0 ? postponed_split : 0,
- postponed_split_flags);
+ (void)win_split(postponed_split > 0 ? postponed_split : 0,
+ postponed_split_flags);
RESET_BINDING(curwin);
}