Răsfoiți Sursa

Updated Linux standard library to convert c strs

Zachary Pierson 8 ani în urmă
părinte
comite
8df3175f10
1 a modificat fișierele cu 3 adăugiri și 11 ștergeri
  1. 3 11
      core/os_linux.odin

+ 3 - 11
core/os_linux.odin

@@ -199,24 +199,16 @@ current_thread_id :: proc() -> int {
 }
 
 dlopen :: proc(filename: string, flags: int) -> rawptr #inline {
-	filename += "\x00";
-	return unix_dlopen(filename.data, flags);
+	return unix_dlopen(to_c_str(filename), flags);
 }
 dlsym :: proc(handle: rawptr, symbol: string) -> (proc() #cc_c) #inline {
 	assert(handle != nil);
-	symbol += "\x00";
-	return unix_dlsym(handle, symbol.data);
+	return unix_dlsym(handle, to_c_str(symbol));
 }
 dlclose :: proc(handle: rawptr) -> bool #inline {
 	assert(handle != nil);
 	return unix_dlclose(handle) == 0;
 }
 dlerror :: proc() -> string {
-	// TODO(zangent): Should this be split out into a from_c_string()?
-	c_str := unix_dlerror();
-	len := 0;
-	for s := c_str; s^ != 0; s += 1 {
-		len += 1;
-	}
-	return cast(string)slice_ptr(c_str, len);
+	return from_c_str(unix_dlerror());
 }