aboutsummaryrefslogtreecommitdiffstats
path: root/default-plugins/session-manager/src
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2024-12-06 09:37:57 +0100
committerGitHub <noreply@github.com>2024-12-06 09:37:57 +0100
commita489b2166c2d1f35d4fb6e7b4b424c206c5717a6 (patch)
tree1b164def2e3a743f2929b219c523d4038aa5be6e /default-plugins/session-manager/src
parentchore(repo): add funding.json (#3838) (diff)
downloadsl0ppij-a489b2166c2d1f35d4fb6e7b4b424c206c5717a6.tar.gz
sl0ppij-a489b2166c2d1f35d4fb6e7b4b424c206c5717a6.tar.xz
sl0ppij-a489b2166c2d1f35d4fb6e7b4b424c206c5717a6.zip
fix(plugins): do not detach if using a slash in a session name (#3839)
Diffstat (limited to 'default-plugins/session-manager/src')
-rw-r--r--default-plugins/session-manager/src/main.rs7
-rw-r--r--default-plugins/session-manager/src/ui/components.rs10
2 files changed, 17 insertions, 0 deletions
diff --git a/default-plugins/session-manager/src/main.rs b/default-plugins/session-manager/src/main.rs
index 3d4848af..8dd6da87 100644
--- a/default-plugins/session-manager/src/main.rs
+++ b/default-plugins/session-manager/src/main.rs
@@ -462,6 +462,9 @@ impl State {
// through the package)
self.show_error("Session name must be shorter than 108 bytes");
return;
+ } else if self.new_session_info.name().contains('/') {
+ self.show_error("Session name cannot contain '/'");
+ return;
}
self.new_session_info.handle_selection(&self.session_name);
},
@@ -483,6 +486,10 @@ impl State {
self.show_error("A resurrectable session by this name already exists.");
return; // s that we don't hide self
} else {
+ if renaming_session_name.contains('/') {
+ self.show_error("Session names cannot contain '/'");
+ return;
+ }
self.update_current_session_name_in_ui(&renaming_session_name);
rename_session(&renaming_session_name);
return; // s that we don't hide self
diff --git a/default-plugins/session-manager/src/ui/components.rs b/default-plugins/session-manager/src/ui/components.rs
index 29eba512..03c4d328 100644
--- a/default-plugins/session-manager/src/ui/components.rs
+++ b/default-plugins/session-manager/src/ui/components.rs
@@ -891,6 +891,16 @@ pub fn render_renaming_session_screen(
33 + new_session_name.width()..40 + new_session_name.width(),
);
print_text_with_coordinates(text, x, y, None, None);
+ if new_session_name.contains('/') {
+ let error_text = "Error: session name cannot contain '/'";
+ print_text_with_coordinates(
+ Text::new(error_text).color_range(3, ..),
+ x,
+ y + 2,
+ None,
+ None,
+ );
+ }
}
pub fn render_controls_line(