From 4340fc95d50518c6eb199107e5f1144f210c7ee5 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 28 Jun 2019 22:06:49 +0200 Subject: [PATCH] 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. --- src/channel.c | 8 ++++++-- src/version.c | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/channel.c b/src/channel.c index 7671e19a6..eb5af0aa4 100644 --- a/src/channel.c +++ b/src/channel.c @@ -2851,9 +2851,13 @@ channel_has_readahead(channel_T *channel, ch_part_T part) 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; } diff --git a/src/version.c b/src/version.c index 9c29b46d8..53c3c66fe 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1605, /**/ 1604, /**/ -- 2.40.0