diff options
-rw-r--r-- | src/root.zig | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/root.zig b/src/root.zig index 0e26e33..a2561bf 100644 --- a/src/root.zig +++ b/src/root.zig @@ -344,11 +344,13 @@ pub fn eval(comptime T: type, str: []const u8, var ret: Value = undefined; const errflags = janet.dobytes(root_env, str.ptr, @intCast(str.len), src, &ret); - return if (errflags == 0) .{ - .ret = try unwrap(T, ret) - } else .{ - .err = try unwrap([]const u8, ret) // TODO: trace - }; + if (errflags == 0) { + return .{ .ret = try unwrap(T, ret) }; + } else { + const string = janet.unwrapString(ret); + const len = janet.stringLength(string); + return .{ .err = string[0..@intCast(len)] }; // TODO: trace + } } test eval { |