From 2cce22519a7cbade6d9e7ec2b244a672ec8bbed9 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Fri, 5 Dec 2025 05:26:10 -0300 Subject: codecrafters submit [skip ci] --- src/builtins.zig | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/builtins.zig') diff --git a/src/builtins.zig b/src/builtins.zig index 011a923..18e1840 100644 --- a/src/builtins.zig +++ b/src/builtins.zig @@ -116,8 +116,21 @@ pub fn executeType(allocator: std.mem.Allocator, stdout: anytype, args: ?[]const } } -pub fn executeHistory(stdout: anytype, history_list: []const []const u8) !void { - for (history_list, 1..) |cmd, idx| { +pub fn executeHistory(stdout: anytype, history_list: []const []const u8, args: ?[]const u8) !void { + var limit: usize = history_list.len; + + if (args) |a| { + const trimmed = std.mem.trim(u8, a, " "); + if (trimmed.len > 0) { + limit = std.fmt.parseInt(usize, trimmed, 10) catch { + try stdout.print("history: invalid argument\n", .{}); + return; + }; + } + } + + const start = if (limit < history_list.len) history_list.len - limit else 0; + for (history_list[start..], start + 1..) |cmd, idx| { try stdout.print(" {d} {s}\n", .{ idx, cmd }); } } -- cgit v1.2.3