From b39d1d6095702bf80fd11bbad8842d22c409ae58 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 5 Nov 2023 15:46:31 -0800 Subject: [PATCH] shuffle some code --- src/config/Config.zig | 60 +++++++++++++++++++++++-------------------- src/os/homedir.zig | 1 + 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/config/Config.zig b/src/config/Config.zig index 7f7222aa5..b7db59ae4 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -1134,38 +1134,42 @@ pub fn finalize(self: *Config) !void { } } - if (builtin.target.os.tag == .windows) { - if (self.command == null) { - log.warn("no default shell found, will default to using cmd", .{}); - self.command = "cmd.exe"; - } - - if (wd_home) { - var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; - if (try internal_os.home(&buf)) |home| { - self.@"working-directory" = try alloc.dupe(u8, home); + switch (builtin.os.tag) { + .windows => { + if (self.command == null) { + log.warn("no default shell found, will default to using cmd", .{}); + self.command = "cmd.exe"; } - } - } else { - // We need the passwd entry for the remainder - const pw = try internal_os.passwd.get(alloc); - if (self.command == null) { - if (pw.shell) |sh| { - log.info("default shell src=passwd value={s}", .{sh}); - self.command = sh; - } - } - if (wd_home) { - if (pw.home) |home| { - log.info("default working directory src=passwd value={s}", .{home}); - self.@"working-directory" = home; + if (wd_home) { + var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + if (try internal_os.home(&buf)) |home| { + self.@"working-directory" = try alloc.dupe(u8, home); + } } - } + }, - if (self.command == null) { - log.warn("no default shell found, will default to using sh", .{}); - } + else => { + // We need the passwd entry for the remainder + const pw = try internal_os.passwd.get(alloc); + if (self.command == null) { + if (pw.shell) |sh| { + log.info("default shell src=passwd value={s}", .{sh}); + self.command = sh; + } + } + + if (wd_home) { + if (pw.home) |home| { + log.info("default working directory src=passwd value={s}", .{home}); + self.@"working-directory" = home; + } + } + + if (self.command == null) { + log.warn("no default shell found, will default to using sh", .{}); + } + }, } } } diff --git a/src/os/homedir.zig b/src/os/homedir.zig index 5790c4ce9..809afea30 100644 --- a/src/os/homedir.zig +++ b/src/os/homedir.zig @@ -103,6 +103,7 @@ fn homeWindows(buf: []u8) !?[]u8 { if (homepath.ptr != path_buf.ptr) @panic("codebug"); break :blk homepath.len; }; + return buf[0 .. drive_len + path_len]; }