From 620effdbc8de10fc240a5f0a4d5e8934a0e0e0eb Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 14 Aug 2025 16:44:05 +0200 Subject: Move src/cmd/{=> lib/}types.zig. --- src/cmd/chdir.zig | 2 +- src/cmd/cls.zig | 2 +- src/cmd/copy.zig | 2 +- src/cmd/date.zig | 2 +- src/cmd/dir.zig | 2 +- src/cmd/echo.zig | 2 +- src/cmd/lib/types.zig | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/cmd/mkdir.zig | 2 +- src/cmd/move.zig | 2 +- src/cmd/path.zig | 2 +- src/cmd/remove.zig | 2 +- src/cmd/rename.zig | 2 +- src/cmd/rmdir.zig | 2 +- src/cmd/sort.zig | 2 +- src/cmd/time.zig | 2 +- src/cmd/type.zig | 2 +- src/cmd/types.zig | 63 --------------------------------------------------- src/cmd/ver.zig | 2 +- src/eval.zig | 2 +- 19 files changed, 80 insertions(+), 80 deletions(-) create mode 100644 src/cmd/lib/types.zig delete mode 100644 src/cmd/types.zig diff --git a/src/cmd/chdir.zig b/src/cmd/chdir.zig index fa2da83..5c2c618 100644 --- a/src/cmd/chdir.zig +++ b/src/cmd/chdir.zig @@ -5,7 +5,7 @@ const print = std.debug.print; const paths = @import("../paths.zig"); const formatDosPath = paths.formatDosPath; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/cls.zig b/src/cmd/cls.zig index b476563..70c1fc4 100644 --- a/src/cmd/cls.zig +++ b/src/cmd/cls.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/copy.zig b/src/cmd/copy.zig index 44eeb87..c99560f 100644 --- a/src/cmd/copy.zig +++ b/src/cmd/copy.zig @@ -5,7 +5,7 @@ const print = std.debug.print; const syntax = @import("../syntax.zig"); const FileSpec = syntax.FileSpec; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/date.zig b/src/cmd/date.zig index c6db0a2..a299667 100644 --- a/src/cmd/date.zig +++ b/src/cmd/date.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/dir.zig b/src/cmd/dir.zig index 0c57e6f..a3b8279 100644 --- a/src/cmd/dir.zig +++ b/src/cmd/dir.zig @@ -15,7 +15,7 @@ const paths = @import("../paths.zig"); const formatDosPath = paths.formatDosPath; const convertTo83 = paths.convertTo83; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/echo.zig b/src/cmd/echo.zig index a11d748..d3ef8b1 100644 --- a/src/cmd/echo.zig +++ b/src/cmd/echo.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/lib/types.zig b/src/cmd/lib/types.zig new file mode 100644 index 0000000..1f0e162 --- /dev/null +++ b/src/cmd/lib/types.zig @@ -0,0 +1,63 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const ArrayList = std.ArrayList; + +pub const CommandStatus = union(enum) { + Code: u16, + ExitShell, +}; + +pub const OutputCapture = struct { + buffer: ArrayList(u8), + + pub fn init(allocator: Allocator) OutputCapture { + return OutputCapture{ + .buffer = ArrayList(u8).init(allocator), + }; + } + + pub fn deinit(self: *OutputCapture) void { + self.buffer.deinit(); + } + + pub fn write(self: *OutputCapture, data: []const u8) !void { + try self.buffer.appendSlice(data); + } + + pub fn getContents(self: *const OutputCapture) []const u8 { + return self.buffer.items; + } +}; + +pub const InputSource = struct { + data: []const u8, + position: usize, + + pub fn init(data: []const u8) InputSource { + return InputSource{ + .data = data, + .position = 0, + }; + } + + pub fn readLine(self: *InputSource, allocator: Allocator) !?[]const u8 { + if (self.position >= self.data.len) { + return null; // EOF + } + + var line_end = self.position; + while (line_end < self.data.len and self.data[line_end] != '\n') { + line_end += 1; + } + + const line = self.data[self.position..line_end]; + self.position = if (line_end < self.data.len) line_end + 1 else self.data.len; + + // Remove trailing \r if present (DOS line endings) + if (line.len > 0 and line[line.len - 1] == '\r') { + return try allocator.dupe(u8, line[0 .. line.len - 1]); + } else { + return try allocator.dupe(u8, line); + } + } +}; diff --git a/src/cmd/mkdir.zig b/src/cmd/mkdir.zig index 55d2ab6..7009fbc 100644 --- a/src/cmd/mkdir.zig +++ b/src/cmd/mkdir.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/move.zig b/src/cmd/move.zig index ceaa6db..9ae47b7 100644 --- a/src/cmd/move.zig +++ b/src/cmd/move.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/path.zig b/src/cmd/path.zig index 734350a..f8d5939 100644 --- a/src/cmd/path.zig +++ b/src/cmd/path.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/remove.zig b/src/cmd/remove.zig index 91acf31..7b85f1d 100644 --- a/src/cmd/remove.zig +++ b/src/cmd/remove.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/rename.zig b/src/cmd/rename.zig index e3401d2..9942f4c 100644 --- a/src/cmd/rename.zig +++ b/src/cmd/rename.zig @@ -5,7 +5,7 @@ const print = std.debug.print; const syntax = @import("../syntax.zig"); const FileSpec = syntax.FileSpec; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/rmdir.zig b/src/cmd/rmdir.zig index 03be046..cbb0b92 100644 --- a/src/cmd/rmdir.zig +++ b/src/cmd/rmdir.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/sort.zig b/src/cmd/sort.zig index fb08f0b..9c04c1e 100644 --- a/src/cmd/sort.zig +++ b/src/cmd/sort.zig @@ -3,7 +3,7 @@ const Allocator = std.mem.Allocator; const ArrayList = std.ArrayList; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/time.zig b/src/cmd/time.zig index 57d58bd..bd03cfa 100644 --- a/src/cmd/time.zig +++ b/src/cmd/time.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/type.zig b/src/cmd/type.zig index b908da9..9270e7b 100644 --- a/src/cmd/type.zig +++ b/src/cmd/type.zig @@ -6,7 +6,7 @@ const print = std.debug.print; const syntax = @import("../syntax.zig"); const FileSpec = syntax.FileSpec; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/cmd/types.zig b/src/cmd/types.zig deleted file mode 100644 index 1f0e162..0000000 --- a/src/cmd/types.zig +++ /dev/null @@ -1,63 +0,0 @@ -const std = @import("std"); -const Allocator = std.mem.Allocator; -const ArrayList = std.ArrayList; - -pub const CommandStatus = union(enum) { - Code: u16, - ExitShell, -}; - -pub const OutputCapture = struct { - buffer: ArrayList(u8), - - pub fn init(allocator: Allocator) OutputCapture { - return OutputCapture{ - .buffer = ArrayList(u8).init(allocator), - }; - } - - pub fn deinit(self: *OutputCapture) void { - self.buffer.deinit(); - } - - pub fn write(self: *OutputCapture, data: []const u8) !void { - try self.buffer.appendSlice(data); - } - - pub fn getContents(self: *const OutputCapture) []const u8 { - return self.buffer.items; - } -}; - -pub const InputSource = struct { - data: []const u8, - position: usize, - - pub fn init(data: []const u8) InputSource { - return InputSource{ - .data = data, - .position = 0, - }; - } - - pub fn readLine(self: *InputSource, allocator: Allocator) !?[]const u8 { - if (self.position >= self.data.len) { - return null; // EOF - } - - var line_end = self.position; - while (line_end < self.data.len and self.data[line_end] != '\n') { - line_end += 1; - } - - const line = self.data[self.position..line_end]; - self.position = if (line_end < self.data.len) line_end + 1 else self.data.len; - - // Remove trailing \r if present (DOS line endings) - if (line.len > 0 and line[line.len - 1] == '\r') { - return try allocator.dupe(u8, line[0 .. line.len - 1]); - } else { - return try allocator.dupe(u8, line); - } - } -}; diff --git a/src/cmd/ver.zig b/src/cmd/ver.zig index 286f6f9..2d8d56b 100644 --- a/src/cmd/ver.zig +++ b/src/cmd/ver.zig @@ -2,7 +2,7 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const print = std.debug.print; -const types = @import("./types.zig"); +const types = @import("./lib/types.zig"); const CommandStatus = types.CommandStatus; const OutputCapture = types.OutputCapture; const InputSource = types.InputSource; diff --git a/src/eval.zig b/src/eval.zig index 5aa43e4..8676516 100644 --- a/src/eval.zig +++ b/src/eval.zig @@ -26,7 +26,7 @@ const paths = @import("paths.zig"); const formatDosPath = paths.formatDosPath; const convertTo83 = paths.convertTo83; -const cmdTypes = @import("cmd/types.zig"); +const cmdTypes = @import("cmd/lib/types.zig"); pub const CommandStatus = cmdTypes.CommandStatus; const OutputCapture = cmdTypes.OutputCapture; const InputSource = cmdTypes.InputSource; -- cgit v1.2.1