diff --git a/src/core/log-away.c b/src/core/log-away.c index 681edcbf..c6de721c 100644 --- a/src/core/log-away.c +++ b/src/core/log-away.c @@ -62,6 +62,9 @@ static void awaylog_open(void) return; } + /* Flush the dirty buffers to disk before acquiring the file position */ + write_buffer_flush(); + awaylog = log; away_filepos = lseek(log->handle, 0, SEEK_CUR); away_msgs = 0; @@ -83,6 +86,9 @@ static void awaylog_close(void) if (awaylog == log) awaylog = NULL; + /* Flush the dirty buffers to disk before showing the away log */ + write_buffer_flush(); + signal_emit("awaylog show", 3, log, GINT_TO_POINTER(away_msgs), GINT_TO_POINTER(away_filepos)); log_close(log);