about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/root.zig12
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 {