const std = @import("std"); // https://github.com/ghostty-org/ghostty/blob/9fb03ba55c9e53901193187d5c43341f5b1b430d/src/pty.zig#L11 pub const winsize = extern struct { ws_row: u16 = 100, ws_col: u16 = 80, ws_xpixel: u16 = 800, ws_ypixel: u16 = 600, }; var gpa: std.heap.GeneralPurposeAllocator(.{}) = .init; const alloc = gpa.allocator(); const ArrayList = std.ArrayList; pub fn main() !void { // // var child = std.process.Child.init(&.{ "cat", "-" }, alloc); // var child = std.process.Child.init(&.{"./study-samples/split"}, alloc); // child.stdin_behavior = .Pipe; // child.stdout_behavior = .Pipe; // child.stderr_behavior = .Pipe; // var stdin_buf: [0x100]u8 = undefined; // var stdin = std.fs.File.stdin().readerStreaming(&stdin_buf); // var stdout: ArrayList(u8) = .empty; // defer stdout.deinit(alloc); // var stderr: ArrayList(u8) = .empty; // defer stderr.deinit(alloc); // try child.spawn(); // errdefer { // _ = child.kill() catch {}; // } // var child_writer_buf: [0x100]u8 = undefined; // var child_stdin_writer = child.stdin.?.writer(&child_writer_buf); // while (true) { // if (stdin.interface.streamDelimiter(&child_stdin_writer.interface, '\n')) |_| {} else |e| { // switch (e) { // error.EndOfStream => { // std.debug.print("end of stream\n", .{}); // break; // }, // else => {}, // } // break; // } // _ = try child_stdin_writer.interface.writeByte('\n'); // if (child_stdin_writer.interface.flush()) |_| {} else |_| { // break; // } // } // child.collectOutput(alloc, &stdout, &stderr, 0x1000) catch {}; // std.debug.print("{s}\n {s}\n", .{ stdout.items, stderr.items }); // const term = try child.wait(); // switch (term) { // .Signal => |s| { // inline for (@typeInfo(std.os.linux.SIG).@"struct".decls) |f| { // const field = @field(std.os.linux.SIG, f.name); // const t = @TypeOf(field); // if (t == comptime_int) { // if (field == s) // std.debug.print("Returned with Signal: {s} ({d})\n", .{ f.name, s }); // } // } // }, // else => std.debug.print("{any}\n", .{ .term = term }), // } // // std.debug.print("*** If you this message alone... Something probably went wrong\nIs this leaking? {any}\n", .{gpa.detectLeaks()}); }