Compare commits

..

3 Commits

Author SHA1 Message Date
76cb69f0a5 Add basic ~ support 2025-03-31 08:31:14 -04:00
a458e4f55c Add author builtin 2025-03-31 07:59:01 -04:00
8b459cb7cb this is reeeeaaal goooood 2025-03-31 07:58:56 -04:00

View File

@@ -122,10 +122,10 @@ fn mathTest(rand: Random, limit: i32, iteration: u32) !bool {
defer {
print("Calculating", .{});
for (1..4) |_| {
for (0..3) |_| {
print(".", .{});
if (comptime builtin.mode != .Debug) {
std.Thread.sleep(2 * 1000 * 1000 * 1000);
sleep(2 * 1000 * 1000 * 1000);
}
}
print("\n", .{});
@@ -163,6 +163,7 @@ fn cdFn(shell_state: *ShellState, command: [][]const u8, allocator: Allocator) !
const old_pwd = env_map.get("OLDPWD");
const home = env_map.get("HOME");
defer allocator.free(pwd);
var buf: [fs.max_path_bytes]u8 = undefined;
var err: ?anyerror = null;
var target: ?[]const u8 = null;
@@ -170,6 +171,12 @@ fn cdFn(shell_state: *ShellState, command: [][]const u8, allocator: Allocator) !
if (home) |h| {
target = h;
}
} else if (command[1][0] == '~') {
if (home) |h| {
const numReplacements = mem.replace(u8, command[1], "~", h, &buf);
const len = command[1].len - numReplacements + (numReplacements * h.len);
target = buf[0..len];
}
} else if (eql(u8, command[1], "-")) {
if (old_pwd) |old| {
target = old;
@@ -178,7 +185,6 @@ fn cdFn(shell_state: *ShellState, command: [][]const u8, allocator: Allocator) !
return;
}
} else {
var buf: [fs.max_path_bytes]u8 = undefined;
target = cwd.realpath(command[1], &buf) catch |e| blk: {
err = e;
break :blk null;
@@ -303,6 +309,8 @@ const tokenizeAny = mem.tokenizeAny;
const process = std.process;
const sleep = std.Thread.sleep;
const Random = std.Random;
const ArrayList = std.ArrayList;
const StaticStringMap = std.static_string_map.StaticStringMap;