mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-20 19:24:53 +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,
|
.session_index = session_index,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If no save file previously existed, fill it up with all usernames
|
// 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 (config.save and saved_users.user_list.items.len == 0) {
|
||||||
|
|
||||||
for (usernames.items) |user| {
|
for (usernames.items) |user| {
|
||||||
try saved_users.user_list.append(allocator, .{
|
try saved_users.user_list.append(allocator, .{
|
||||||
.username = user,
|
.username = user,
|
||||||
@@ -408,6 +408,9 @@ pub fn main() !void {
|
|||||||
var session = Session.init(allocator, &buffer, &login);
|
var session = Session.init(allocator, &buffer, &login);
|
||||||
defer session.deinit();
|
defer session.deinit();
|
||||||
|
|
||||||
|
login = try UserList.init(allocator, &buffer, usernames, &saved_users, &session);
|
||||||
|
defer login.deinit();
|
||||||
|
|
||||||
addOtherEnvironment(&session, lang, .shell, null) catch |err| {
|
addOtherEnvironment(&session, lang, .shell, null) catch |err| {
|
||||||
try info_line.addMessage(lang.err_alloc, config.error_bg, config.error_fg);
|
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)});
|
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");
|
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);
|
var password = Text.init(allocator, &buffer, true, config.asterisk);
|
||||||
defer password.deinit();
|
defer password.deinit();
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,12 @@ const EnvironmentLabel = generic.CyclableLabel(Env, *UserList);
|
|||||||
const Session = @This();
|
const Session = @This();
|
||||||
|
|
||||||
label: EnvironmentLabel,
|
label: EnvironmentLabel,
|
||||||
|
user_list: *UserList,
|
||||||
|
|
||||||
pub fn init(allocator: Allocator, buffer: *TerminalBuffer, user_list: *UserList) Session {
|
pub fn init(allocator: Allocator, buffer: *TerminalBuffer, user_list: *UserList) Session {
|
||||||
return .{
|
return .{
|
||||||
.label = EnvironmentLabel.init(allocator, buffer, drawItem, sessionChanged, user_list),
|
.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 {
|
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 {
|
fn sessionChanged(env: Env, maybe_user_list: ?*UserList) void {
|
||||||
|
|||||||
Reference in New Issue
Block a user