mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user