This commit is contained in:
Justin M. Keyes
2018-04-21 01:55:10 +02:00
parent 9139bf81cf
commit b71697bc67
2 changed files with 18 additions and 20 deletions

View File

@@ -1328,10 +1328,8 @@ int using_script(void)
return scriptin[curscript] != NULL; return scriptin[curscript] != NULL;
} }
/* /// This function is called just before doing a blocking wait. Thus after
* This function is called just before doing a blocking wait. Thus after /// waiting 'updatetime' for a character to arrive.
* waiting 'updatetime' for a character to arrive.
*/
void before_blocking(void) void before_blocking(void)
{ {
updatescript(0); updatescript(0);
@@ -1340,13 +1338,11 @@ void before_blocking(void)
} }
} }
/* /// updatescript() is called when a character can be written to the script file
* updatescipt() is called when a character can be written into the script file /// or when we have waited some time for a character (c == 0).
* or when we have waited some time for a character (c == 0) ///
* /// All the changed memfiles are synced if c == 0 or when the number of typed
* All the changed memfiles are synced if c == 0 or when the number of typed /// characters reaches 'updatecount' and 'updatecount' is non-zero.
* characters reaches 'updatecount' and 'updatecount' is non-zero.
*/
static void updatescript(int c) static void updatescript(int c)
{ {
static int count = 0; static int count = 0;

View File

@@ -1613,17 +1613,18 @@ void ml_sync_all(int check_file, int check_char, bool do_fsync)
|| file_info.stat.st_mtim.tv_sec != buf->b_mtime_read || file_info.stat.st_mtim.tv_sec != buf->b_mtime_read
|| os_fileinfo_size(&file_info) != buf->b_orig_size) { || os_fileinfo_size(&file_info) != buf->b_orig_size) {
ml_preserve(buf, false, do_fsync); ml_preserve(buf, false, do_fsync);
did_check_timestamps = FALSE; did_check_timestamps = false;
need_check_timestamps = TRUE; /* give message later */ need_check_timestamps = true; // give message later
} }
} }
if (buf->b_ml.ml_mfp->mf_dirty) { if (buf->b_ml.ml_mfp->mf_dirty) {
(void)mf_sync(buf->b_ml.ml_mfp, (check_char ? MFS_STOP : 0) (void)mf_sync(buf->b_ml.ml_mfp, (check_char ? MFS_STOP : 0)
| (do_fsync && bufIsChanged(buf) ? MFS_FLUSH : 0)); | (do_fsync && bufIsChanged(buf) ? MFS_FLUSH : 0));
if (check_char && os_char_avail()) /* character available now */ if (check_char && os_char_avail()) { // character available now
break; break;
} }
} }
}
} }
/* /*
@@ -1654,8 +1655,8 @@ void ml_preserve(buf_T *buf, int message, bool do_fsync)
* before. */ * before. */
got_int = FALSE; got_int = FALSE;
ml_flush_line(buf); /* flush buffered line */ ml_flush_line(buf); // flush buffered line
(void)ml_find_line(buf, (linenr_T)0, ML_FLUSH); /* flush locked block */ (void)ml_find_line(buf, (linenr_T)0, ML_FLUSH); // flush locked block
status = mf_sync(mfp, MFS_ALL | (do_fsync ? MFS_FLUSH : 0)); status = mf_sync(mfp, MFS_ALL | (do_fsync ? MFS_FLUSH : 0));
/* stack is invalid after mf_sync(.., MFS_ALL) */ /* stack is invalid after mf_sync(.., MFS_ALL) */
@@ -1684,11 +1685,12 @@ void ml_preserve(buf_T *buf, int message, bool do_fsync)
CHECK(buf->b_ml.ml_locked_low != lnum, "low != lnum"); CHECK(buf->b_ml.ml_locked_low != lnum, "low != lnum");
lnum = buf->b_ml.ml_locked_high + 1; lnum = buf->b_ml.ml_locked_high + 1;
} }
(void)ml_find_line(buf, (linenr_T)0, ML_FLUSH); /* flush locked block */ (void)ml_find_line(buf, (linenr_T)0, ML_FLUSH); // flush locked block
/* sync the updated pointer blocks */ // sync the updated pointer blocks
if (mf_sync(mfp, MFS_ALL | (do_fsync ? MFS_FLUSH : 0)) == FAIL) if (mf_sync(mfp, MFS_ALL | (do_fsync ? MFS_FLUSH : 0)) == FAIL) {
status = FAIL; status = FAIL;
buf->b_ml.ml_stack_top = 0; /* stack is invalid now */ }
buf->b_ml.ml_stack_top = 0; // stack is invalid now
} }
theend: theend:
got_int |= got_int_save; got_int |= got_int_save;