Compare commits

...

4 commits

3 changed files with 15 additions and 6 deletions

View file

@ -95,12 +95,16 @@ pub fn temporaryName(allocator: *std.mem.Allocator) ![]u8 {
}
// if we fail to access it, we assume it doesn't exist and return it.
_ = std.fs.cwd().openFile(nam, .{ .read = true, .write = false }) catch |err| {
if (err == error.FileNotFound) {
return nam;
}
var tmp_file: std.fs.File = std.fs.cwd().openFile(
nam,
.{ .read = true, .write = false },
) catch |err| blk: {
if (err == error.FileNotFound) return nam else continue;
};
// if we actually found someone, close the handle so that we don't
// get EMFILE later on.
tmp_file.close();
}
return error.TempGenFail;

View file

@ -208,6 +208,10 @@ pub fn doRepl(allocator: *std.mem.Allocator, args_it: var) !void {
std.debug.warn("repl: error while parsing: {}\n", .{err});
continue;
};
// no command? ignore!
if (cmds_parsed.items.len == 0) continue;
current = cmds_parsed.items[0].*;
// by cloning the parent runner, we can iteratively write
@ -220,7 +224,7 @@ pub fn doRepl(allocator: *std.mem.Allocator, args_it: var) !void {
// of this function.
try cmds.append(&runqs_cmd.base);
try runner_clone.runCommands(cmds_parsed, true);
try runner_clone.runCommands(cmds, true);
_ = try stdout.write("\n");
}
}

View file

@ -3,6 +3,7 @@ const langs = @import("lang.zig");
fn printCommandWithParams(stream: var, command: var) !void {
const Parameters = @TypeOf(command.parameters);
try stream.print(" {} {}", .{ command.split, command.index });
inline for (@typeInfo(Parameters).Struct.fields) |field| {
if (field.field_type == f32 or field.field_type == f64) {
try stream.print(" {d}", .{@field(command.parameters, field.name)});