diff --git a/README.md b/README.md index 9b10491..6ba38d9 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ the following are currently supported: - [zig-clap](https://github.com/Hejsil/zig-clap) for arg parsing ## building -1. install [zig 0.13.0](https://ziglang.org/download/#release-0.13.0) +1. install [zig 0.14.0](https://ziglang.org/download/#release-0.14.0) 2. clone repo 3. run `zig build` @@ -40,4 +40,4 @@ release optimize modes are: - safe - small -the mdcat binary will be in `zig-out/bin/mdcat` \ No newline at end of file +the mdcat binary will be in `zig-out/bin/mdcat` diff --git a/build.zig b/build.zig index 148f917..32e33a5 100644 --- a/build.zig +++ b/build.zig @@ -28,8 +28,8 @@ pub fn build(b: *std.Build) void { const clap = b.dependency("clap", .{}); exe.root_module.addImport("clap", clap.module("clap")); - const ansiterm = b.dependency("ansi-term", .{}); - exe.root_module.addImport("ansi-term", ansiterm.module("ansi-term")); + const ansiterm = b.dependency("ansi_term", .{}); + exe.root_module.addImport("ansi-term", ansiterm.module("ansi_term")); // This declares intent for the executable to be installed into the // standard location when the user invokes the "install" step (the default diff --git a/build.zig.zon b/build.zig.zon index e74497f..4c292af 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,7 +6,7 @@ // // It is redundant to include "zig" in this name because it is already // within the Zig package namespace. - .name = "mdcat", + .name = .mdcat, // This is a [Semantic Version](https://semver.org/). // In a future version of Zig it will be used for package deduplication. @@ -24,12 +24,12 @@ // internet connectivity. .dependencies = .{ .clap = .{ - .url = "https://github.com/Hejsil/zig-clap/archive/refs/tags/0.9.1.tar.gz", - .hash = "122062d301a203d003547b414237229b09a7980095061697349f8bef41be9c30266b", + .url = "https://github.com/Hejsil/zig-clap/archive/refs/tags/0.10.0.tar.gz", + .hash = "clap-0.10.0-oBajB434AQBDh-Ei3YtoKIRxZacVPF1iSwp3IX_ZB8f0", }, - .@"ansi-term" = .{ - .url = "https://github.com/ziglibs/ansi-term/archive/refs/heads/master.zip", - .hash = "12203a64b02d46e6c2e268b7da60cb11b2fa83dc580cad77cf330d1438e2280de46f", + .ansi_term = .{ + .url = "git+https://github.com/ziglibs/ansi_term.git#c36f75d2b49c5bed2a5bb4d71e92f6f4591b1887", + .hash = "ansi_term-0.1.0-_baAy-hjAABPPaH9jO03ipMXYOWQBzOJhaj2vsDpc0MK", }, }, .paths = .{ @@ -40,4 +40,6 @@ //"LICENSE", //"README.md", }, + .fingerprint = 0x72dbbe0f3b46658e, + .minimum_zig_version = "0.14.0", } diff --git a/src/main.zig b/src/main.zig index 48b2b16..bea8ab3 100644 --- a/src/main.zig +++ b/src/main.zig @@ -35,10 +35,10 @@ pub fn main() !void { if (res.args.version != 0) return std.debug.print(version_string, .{}); var reader: std.io.AnyReader = undefined; - if (res.positionals.len < 1 or std.mem.eql(u8, res.positionals[0], "-")) { + if (res.positionals.len < 1 or std.mem.eql(u8, res.positionals[0].?, "-")) { reader = std.io.getStdIn().reader().any(); } else { - const filename = res.positionals[0]; + const filename = res.positionals[0].?; const cwd = std.fs.cwd(); reader = (cwd.openFile(filename, .{}) catch errorexit(13, "failed to open file D:\n")).reader().any(); } @@ -57,7 +57,7 @@ pub fn main() !void { gpa.allocator().free(data); - try stdout.writeByte('\n'); + //try stdout.writeByte('\n'); try bw.flush(); } @@ -146,7 +146,7 @@ fn enter_block(blocktype: md4c.MD_BLOCKTYPE, detail: ?*anyopaque, userdata: ?*an state.update_style(temp_style); } if (blocktype == md4c.MD_BLOCK_UL or blocktype == md4c.MD_BLOCK_OL) { - just_write(state.writer, "\n"); + //just_write(state.writer, "\n"); } return 0; // TODO what does the return value represent ???? } @@ -158,6 +158,7 @@ fn leave_block(blocktype: md4c.MD_BLOCKTYPE, detail: ?*anyopaque, userdata: ?*an just_write(state.writer, "\n\n"); } if (blocktype == md4c.MD_BLOCK_P or blocktype == md4c.MD_BLOCK_LI) { + //if (blocktype == md4c.MD_BLOCK_P) { just_write(state.writer, "\n"); } if (blocktype == md4c.MD_BLOCK_HR) { @@ -171,7 +172,7 @@ fn leave_block(blocktype: md4c.MD_BLOCKTYPE, detail: ?*anyopaque, userdata: ?*an var winsize: std.c.winsize = undefined; if (std.c.ioctl(term_fd, std.c.T.IOCGWINSZ, &winsize) != -1) { - for (0..winsize.ws_col) |_| { + for (0..winsize.col) |_| { just_write(state.writer, "-"); } just_write(state.writer, "\n"); @@ -184,7 +185,7 @@ fn leave_block(blocktype: md4c.MD_BLOCKTYPE, detail: ?*anyopaque, userdata: ?*an state.update_style(temp_style); } if (blocktype == md4c.MD_BLOCK_UL or blocktype == md4c.MD_BLOCK_OL) { - just_write(state.writer, "\n"); + //just_write(state.writer, "\n"); } _ = detail; return 0; // TODO what does the return value represent ???? @@ -267,7 +268,7 @@ fn on_text(texttype: md4c.MD_TEXTTYPE, text: [*c]const md4c.MD_CHAR, size: md4c. if (texttype == md4c.MD_TEXT_NULLCHAR) { just_write(state.writer, "�"); } - if (texttype == md4c.MD_TEXT_BR) { + if (texttype == md4c.MD_TEXT_BR or texttype == md4c.MD_TEXT_SOFTBR) { just_write(state.writer, "\n"); } if (texttype == md4c.MD_TEXT_CODE) { @@ -285,7 +286,7 @@ fn on_text(texttype: md4c.MD_TEXTTYPE, text: [*c]const md4c.MD_CHAR, size: md4c. const parser: md4c.MD_PARSER = .{ .abi_version = @intCast(0), - .flags = md4c.MD_FLAG_UNDERLINE | md4c.MD_FLAG_STRIKETHROUGH | md4c.MD_FLAG_COLLAPSEWHITESPACE | md4c.MD_FLAG_TASKLISTS | md4c.MD_FLAG_UNDERLINE, + .flags = md4c.MD_FLAG_UNDERLINE | md4c.MD_FLAG_STRIKETHROUGH | md4c.MD_FLAG_TASKLISTS | md4c.MD_FLAG_UNDERLINE, .enter_block = &enter_block, .leave_block = &leave_block,