summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/commands.cc12
-rw-r--r--src/remote.cc8
-rw-r--r--src/remote.hh2
3 files changed, 8 insertions, 14 deletions
diff --git a/src/commands.cc b/src/commands.cc
index 6f17c023..28574a90 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -1902,10 +1902,10 @@ const CommandDesc change_working_directory_cmd = {
}
};
-const CommandDesc change_session_name = {
- "session",
+const CommandDesc set_session_name = {
+ "namesession",
nullptr,
- "session <name>: change remote session name",
+ "namesession <name>: change remote session name",
ParameterDesc{{}, ParameterDesc::Flags::None, 1, 1},
CommandFlags::None,
CommandHelper{},
@@ -1914,10 +1914,6 @@ const CommandDesc change_session_name = {
{
if (not Server::instance().rename_session(parser[0]))
throw runtime_error(format("Cannot rename current session: '{}' may be already in use", parser[0]));
-
- // update modeline
- for (auto& client : ClientManager::instance())
- client->redraw_ifn();
}
};
@@ -1978,7 +1974,7 @@ void register_commands()
register_command(set_register_cmd);
register_command(select_cmd);
register_command(change_working_directory_cmd);
- register_command(change_session_name);
+ register_command(set_session_name);
}
}
diff --git a/src/remote.cc b/src/remote.cc
index 1130e120..798b14ee 100644
--- a/src/remote.cc
+++ b/src/remote.cc
@@ -651,17 +651,15 @@ Server::Server(String session_name)
m_listener.reset(new FDWatcher{listen_sock, accepter});
}
-bool Server::rename_session(const String& name)
+bool Server::rename_session(StringView name)
{
String old_socket_file = format("/tmp/kakoune/{}/{}", getpwuid(geteuid())->pw_name, m_session);
String new_socket_file = format("/tmp/kakoune/{}/{}", getpwuid(geteuid())->pw_name, name);
- if (link(old_socket_file.c_str(), new_socket_file.c_str()) != 0)
+ if (rename(old_socket_file.c_str(), new_socket_file.c_str()) != 0)
return false;
- unlink(old_socket_file.c_str());
-
- m_session = name;
+ m_session = name.str();
return true;
}
diff --git a/src/remote.hh b/src/remote.hh
index fd214b3d..e396b47a 100644
--- a/src/remote.hh
+++ b/src/remote.hh
@@ -48,7 +48,7 @@ struct Server : public Singleton<Server>
~Server();
const String& session() const { return m_session; }
- bool rename_session(const String& name);
+ bool rename_session(StringView name);
void close_session(bool do_unlink = true);
private: