summaryrefslogtreecommitdiff
path: root/src/main.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2020-10-19 20:39:25 +1100
committerMaxime Coste <mawww@kakoune.org>2020-10-19 20:39:25 +1100
commit2cd323b314e9f2b2cdf11bbf2974e9390914d5ea (patch)
treecf698d814f131d9e9e5de22186c8671a6a0fe27d /src/main.cc
parent97e88b60878133bea4b2c3920e5176da97483c12 (diff)
Allow quiting last client with unsaved buffer in daemon mode
Because the server will out-live that client's disconnection it is still ok to have modified buffers, the server will complain on `kill`. Fixes #3801
Diffstat (limited to 'src/main.cc')
-rw-r--r--src/main.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main.cc b/src/main.cc
index af3d68ba..a65424ad 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -740,7 +740,8 @@ int run_server(StringView session, StringView server_init,
}
EventManager event_manager;
- Server server{session.empty() ? to_string(getpid()) : session.str()};
+ Server server{session.empty() ? to_string(getpid()) : session.str(),
+ (bool)(flags & ServerFlags::Daemon)};
StringRegistry string_registry;
GlobalScope global_scope;
@@ -832,7 +833,7 @@ int run_server(StringView session, StringView server_init,
try
{
- if (not (flags & ServerFlags::Daemon))
+ if (not server.is_daemon())
{
local_client = client_manager.create_client(
create_local_ui(ui_type), getpid(), {}, get_env_vars(), client_init, std::move(init_coord),
@@ -849,8 +850,7 @@ int run_server(StringView session, StringView server_init,
}
while (not terminate and
- (not client_manager.empty() or server.negotiating() or
- (flags & ServerFlags::Daemon)))
+ (not client_manager.empty() or server.negotiating() or server.is_daemon()))
{
client_manager.redraw_clients();