From e39fa57f831b5c5b6b8692cd4301efacb08ba9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?poljar=20=28Damir=20Jeli=C4=87=29?= <poljar@termina.org.uk> Date: Wed, 7 Feb 2018 12:43:35 +0100 Subject: [PATCH] Fix server buffer merging if no server buffers are created. --- matrix/config.py | 3 ++- matrix/utils.py | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/matrix/config.py b/matrix/config.py index d4d745b..efb6ddc 100644 --- a/matrix/config.py +++ b/matrix/config.py @@ -45,7 +45,8 @@ def matrix_config_change_cb(data, option): OPTIONS.look_server_buf = ServerBufferType( W.config_integer(option)) for server in SERVERS.values(): - server_buffer_merge(server.server_buffer) + if server.server_buffer: + server_buffer_merge(server.server_buffer) elif option_name == "max_initial_sync_events": OPTIONS.sync_limit = W.config_integer(option) diff --git a/matrix/utils.py b/matrix/utils.py index f057a5d..b43d9ae 100644 --- a/matrix/utils.py +++ b/matrix/utils.py @@ -84,10 +84,15 @@ def server_buffer_merge(buffer): W.buffer_merge(buffer, W.buffer_search_main()) elif OPTIONS.look_server_buf == ServerBufferType.MERGE: if SERVERS: - first = list(SERVERS.values())[0].server_buffer - num = W.buffer_get_integer(W.buffer_search_main(), "number") - W.buffer_unmerge(buffer, num + 1) - W.buffer_merge(buffer, first) + first = None + for server in SERVERS.values(): + if server.server_buffer and buffer is not server.server_buffer: + first = server.server_buffer + break + if first: + num = W.buffer_get_integer(W.buffer_search_main(), "number") + W.buffer_unmerge(buffer, num + 1) + W.buffer_merge(buffer, first) else: num = W.buffer_get_integer(W.buffer_search_main(), "number") W.buffer_unmerge(buffer, num + 1)