Browse Source

Allow for printf style `assert` and `panic`

gingerBill 7 years ago
parent
commit
24c09c9201
1 changed files with 10 additions and 12 deletions
  1. 10 12
      core/_preload.odin

+ 10 - 12
core/_preload.odin

@@ -625,24 +625,22 @@ default_allocator :: proc() -> Allocator {
 }
 
 
-assert :: proc "contextless" (condition: bool, message := "", using loc := #caller_location) -> bool {
+assert :: proc "contextless" (condition: bool, message := "", args: ...any, using loc := #caller_location) -> bool {
 	if !condition {
-		if len(message) > 0 {
-			fmt.fprintf(os.stderr, "%s(%d:%d) Runtime assertion: %s\n", file_path, line, column, message);
-		} else {
-			fmt.fprintf(os.stderr, "%s(%d:%d) Runtime assertion\n", file_path, line, column);
-		}
+		fmt.fprintf(os.stderr, "%s(%d:%d) Runtime assertion", file_path, line, column);
+		if len(message) > 0 do fmt.fprint(os.stderr, ": ");
+		fmt.fprintf(os.stderr, message, ...args);
+		fmt.fprintf(os.stderr, "\n");
 		__debug_trap();
 	}
 	return condition;
 }
 
-panic :: proc "contextless" (message := "", using loc := #caller_location) {
-	if len(message) > 0 {
-		fmt.fprintf(os.stderr, "%s(%d:%d) Panic: %s\n", file_path, line, column, message);
-	} else {
-		fmt.fprintf(os.stderr, "%s(%d:%d) Panic\n", file_path, line, column);
-	}
+panic :: proc "contextless" (message := "", args: ...any, using loc := #caller_location) {
+	fmt.fprintf(os.stderr, "%s(%d:%d) Panic", file_path, line, column);
+	if len(message) > 0 do fmt.fprint(os.stderr, ": ");
+	fmt.fprintf(os.stderr, message, ...args);
+	fmt.fprintf(os.stderr, "\n");
 	__debug_trap();
 }