From 5559eaa2356d9ec4a71c4d55c6cbb278098edbce Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 30 Dec 2024 12:20:57 -0800 Subject: [PATCH] os: don't return stack memory A regression from adcaff7137ef --- src/os/open.zig | 54 +++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/src/os/open.zig b/src/os/open.zig index ff7d6049a..f6dc7ca2a 100644 --- a/src/os/open.zig +++ b/src/os/open.zig @@ -18,7 +18,31 @@ pub fn open( typ: Type, url: []const u8, ) !void { - const cmd = try openCommand(alloc, typ, url); + const cmd: OpenCommand = switch (builtin.os.tag) { + .linux => .{ .child = std.process.Child.init( + &.{ "xdg-open", url }, + alloc, + ) }, + + .windows => .{ .child = std.process.Child.init( + &.{ "rundll32", "url.dll,FileProtocolHandler", url }, + alloc, + ) }, + + .macos => .{ + .child = std.process.Child.init( + switch (typ) { + .text => &.{ "open", "-t", url }, + .unknown => &.{ "open", url }, + }, + alloc, + ), + .wait = true, + }, + + .ios => return error.Unimplemented, + else => @compileError("unsupported OS"), + }; var exe = cmd.child; if (cmd.wait) { @@ -53,31 +77,3 @@ const OpenCommand = struct { child: std.process.Child, wait: bool = false, }; - -fn openCommand(alloc: Allocator, typ: Type, url: []const u8) !OpenCommand { - return switch (builtin.os.tag) { - .linux => .{ .child = std.process.Child.init( - &.{ "xdg-open", url }, - alloc, - ) }, - - .windows => .{ .child = std.process.Child.init( - &.{ "rundll32", "url.dll,FileProtocolHandler", url }, - alloc, - ) }, - - .macos => .{ - .child = std.process.Child.init( - switch (typ) { - .text => &.{ "open", "-t", url }, - .unknown => &.{ "open", url }, - }, - alloc, - ), - .wait = true, - }, - - .ios => return error.Unimplemented, - else => @compileError("unsupported OS"), - }; -}