changeset 17212:fd983b381ec0 v8.1.1605

patch 8.1.1605: Vim may delay processing messages on a json channel commit https://github.com/vim/vim/commit/4340fc95d50518c6eb199107e5f1144f210c7ee5 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jun 28 22:06:49 2019 +0200 patch 8.1.1605: Vim may delay processing messages on a json channel Problem: Vim may delay processing messages on a json channel. (Pontus Leitzler) Solution: Try parsing json when checking if there is readahead.
author Bram Moolenaar <Bram@vim.org>
date Fri, 28 Jun 2019 22:15:05 +0200
parents 7b6fc912182c
children d031972f6d0a
files src/channel.c src/version.c
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/channel.c
+++ b/src/channel.c
@@ -2851,9 +2851,13 @@ channel_has_readahead(channel_T *channel
     if (ch_mode == MODE_JSON || ch_mode == MODE_JS)
     {
 	jsonq_T   *head = &channel->ch_part[part].ch_json_head;
-	jsonq_T   *item = head->jq_next;
-
-	return item != NULL;
+
+	if (head->jq_next == NULL)
+	    // Parse json from readahead, there might be a complete message to
+	    // process.
+	    channel_parse_json(channel, part);
+
+	return head->jq_next != NULL;
     }
     return channel_peek(channel, part) != NULL;
 }
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1605,
+/**/
     1604,
 /**/
     1603,