mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-20 11:14:56 +00:00
Fix save file initialisation & incorrect saved session index
Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
12
src/main.zig
12
src/main.zig
@@ -259,10 +259,10 @@ pub fn main() !void {
|
||||
.session_index = session_index,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// If no save file previously existed, fill it up with all usernames
|
||||
if (saved_users.user_list.items.len > 0) break :read_save_file;
|
||||
|
||||
// If no save file previously existed, fill it up with all usernames
|
||||
if (config.save and saved_users.user_list.items.len == 0) {
|
||||
for (usernames.items) |user| {
|
||||
try saved_users.user_list.append(allocator, .{
|
||||
.username = user,
|
||||
@@ -408,6 +408,9 @@ pub fn main() !void {
|
||||
var session = Session.init(allocator, &buffer, &login);
|
||||
defer session.deinit();
|
||||
|
||||
login = try UserList.init(allocator, &buffer, usernames, &saved_users, &session);
|
||||
defer login.deinit();
|
||||
|
||||
addOtherEnvironment(&session, lang, .shell, null) catch |err| {
|
||||
try info_line.addMessage(lang.err_alloc, config.error_bg, config.error_fg);
|
||||
try log_writer.print("failed to add shell environment: {s}\n", .{@errorName(err)});
|
||||
@@ -467,9 +470,6 @@ pub fn main() !void {
|
||||
try log_writer.writeAll("no users found\n");
|
||||
}
|
||||
|
||||
login = try UserList.init(allocator, &buffer, usernames, &saved_users, &session);
|
||||
defer login.deinit();
|
||||
|
||||
var password = Text.init(allocator, &buffer, true, config.asterisk);
|
||||
defer password.deinit();
|
||||
|
||||
|
||||
@@ -17,10 +17,12 @@ const EnvironmentLabel = generic.CyclableLabel(Env, *UserList);
|
||||
const Session = @This();
|
||||
|
||||
label: EnvironmentLabel,
|
||||
user_list: *UserList,
|
||||
|
||||
pub fn init(allocator: Allocator, buffer: *TerminalBuffer, user_list: *UserList) Session {
|
||||
return .{
|
||||
.label = EnvironmentLabel.init(allocator, buffer, drawItem, sessionChanged, user_list),
|
||||
.user_list = user_list,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -36,7 +38,10 @@ pub fn deinit(self: *Session) void {
|
||||
}
|
||||
|
||||
pub fn addEnvironment(self: *Session, environment: Environment) !void {
|
||||
try self.label.addItem(.{ .environment = environment, .index = self.label.list.items.len });
|
||||
const env = Env{ .environment = environment, .index = self.label.list.items.len };
|
||||
|
||||
try self.label.addItem(env);
|
||||
sessionChanged(env, self.user_list);
|
||||
}
|
||||
|
||||
fn sessionChanged(env: Env, maybe_user_list: ?*UserList) void {
|
||||
|
||||
Reference in New Issue
Block a user