mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-31 10:22:08 +00:00
remove ctprintf; use fmt.caprintf; fix pipe_linux that I broke.
This commit is contained in:
@@ -3,8 +3,7 @@ package os2
|
||||
|
||||
import "base:intrinsics"
|
||||
import "base:runtime"
|
||||
import "core:fmt"
|
||||
import "core:strings"
|
||||
|
||||
|
||||
// Splits pattern by the last wildcard "*", if it exists, and returns the prefix and suffix
|
||||
// parts which are split by the last "*"
|
||||
@@ -48,16 +47,6 @@ temp_cstring :: proc(s: string) -> (cstring, runtime.Allocator_Error) {
|
||||
return clone_to_cstring(s, temp_allocator())
|
||||
}
|
||||
|
||||
@(require_results)
|
||||
ctprintf :: proc(format: string, args: ..any, newline := false) -> cstring {
|
||||
str: strings.Builder
|
||||
strings.builder_init(&str, temp_allocator())
|
||||
fmt.sbprintf(&str, format, ..args, newline=newline)
|
||||
strings.write_byte(&str, 0)
|
||||
s := strings.to_string(str)
|
||||
return cstring(raw_data(s))
|
||||
}
|
||||
|
||||
@(require_results)
|
||||
string_from_null_terminated_bytes :: proc(b: []byte) -> (res: string) {
|
||||
s := string(b)
|
||||
|
||||
@@ -10,8 +10,8 @@ _pipe :: proc() -> (r, w: ^File, err: Error) {
|
||||
return nil, nil,_get_platform_error(errno)
|
||||
}
|
||||
|
||||
r = _new_file(uintptr(fds[0]))
|
||||
w = _new_file(uintptr(fds[1]))
|
||||
r = _new_file(uintptr(fds[0])) or_return
|
||||
w = _new_file(uintptr(fds[1])) or_return
|
||||
|
||||
r_impl := (^File_Impl)(r.impl)
|
||||
r_impl.kind = .Pipe
|
||||
|
||||
@@ -330,7 +330,7 @@ _process_start :: proc(desc: Process_Desc) -> (process: Process, err: Error) {
|
||||
path_dirs := filepath.split_list(path_env, temp_allocator())
|
||||
found: bool
|
||||
for dir in path_dirs {
|
||||
executable_path = ctprintf("%s/%s", dir, executable_name)
|
||||
executable_path = fmt.caprintf("%s/%s", dir, executable_name, temp_allocator())
|
||||
fail: bool
|
||||
if fail, errno = linux.faccessat(dir_fd, executable_path, linux.F_OK); errno == .NONE && !fail {
|
||||
found = true
|
||||
@@ -339,7 +339,7 @@ _process_start :: proc(desc: Process_Desc) -> (process: Process, err: Error) {
|
||||
}
|
||||
if !found {
|
||||
// check in cwd to match windows behavior
|
||||
executable_path = ctprintf("./%s", name)
|
||||
executable_path = fmt.caprintf("./%s", name, temp_allocator())
|
||||
fail: bool
|
||||
if fail, errno = linux.faccessat(dir_fd, executable_path, linux.F_OK); errno != .NONE || fail {
|
||||
return process, .Not_Exist
|
||||
|
||||
Reference in New Issue
Block a user