std.os: selfExePath implementation for haiku

This commit is contained in:
David CARLIER 2023-04-24 20:35:51 +01:00 committed by Veikka Tuominen
parent dc94729643
commit 7439eb5e99

View File

@ -2913,6 +2913,7 @@ pub const OpenSelfExeError = error{
/// On Windows, file paths cannot contain these characters:
/// '/', '*', '?', '"', '<', '>', '|'
BadPathName,
Overflow,
Unexpected,
} || os.OpenError || SelfExePathError || os.FlockError;
@ -2991,7 +2992,15 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 {
// TODO could this slice from 0 to out_len instead?
return mem.sliceTo(out_buffer, 0);
},
.openbsd, .haiku => {
.haiku => {
// The only possible issue when looking for the self image path is
// when the buffer is too short.
// TODO replace with proper constants
if (os.find_path(null, 1000, null, out_buffer.ptr, out_buffer.len) != 0)
return error.Overflow;
return mem.sliceTo(out_buffer, 0);
},
.openbsd => {
// OpenBSD doesn't support getting the path of a running process, so try to guess it
if (os.argv.len == 0)
return error.FileNotFound;