aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-06-14 19:07:41 +0200
committerBad Diode <bd@badd10de.dev>2024-06-14 19:07:41 +0200
commitf90a2480e2a4198fdc94e4635f6f86dffdbe253a (patch)
tree14bd6be4fd99929495d6afd8c27793de734f71fe /src
parent2cad3b5b21fe1644239b03fc8fd3c4329d98e606 (diff)
downloadbdl-f90a2480e2a4198fdc94e4635f6f86dffdbe253a.tar.gz
bdl-f90a2480e2a4198fdc94e4635f6f86dffdbe253a.zip
Add log_int function
Diffstat (limited to 'src')
-rw-r--r--src/badlib.h33
-rw-r--r--src/main.c28
2 files changed, 42 insertions, 19 deletions
diff --git a/src/badlib.h b/src/badlib.h
index 2bc1807..f0f71aa 100644
--- a/src/badlib.h
+++ b/src/badlib.h
@@ -289,12 +289,19 @@ buf_pop(Buf *buf, void *dst, sz size) {
289// A string or string view. 289// A string or string view.
290typedef Array Str; 290typedef Array Str;
291 291
292// Create a string view from a C literal with these. 292// Create a string object from a C literal.
293#define cstr(s) \ 293#define cstr(s) \
294 (Str) { \ 294 (Str) { \
295 (u8 *)s, LEN(s) - 1 \ 295 (u8 *)(s), LEN(s) - 1 \
296 } 296 }
297 297
298// Create a string object from a char* array.
299#define STR(s) \
300 (Str){ \
301 .mem = (u8 *)(s), \
302 .size = strlen(s), \
303 };
304
298bool 305bool
299str_eq(Str a, Str b) { 306str_eq(Str a, Str b) {
300 return array_eq(a, b); 307 return array_eq(a, b);
@@ -920,5 +927,23 @@ log_str(Logger *l, Str str) {
920 } 927 }
921} 928}
922 929
930void
931log_int(Logger *l, sz num) {
932 u8 tmp[64];
933 u8 *end = tmp + sizeof(tmp);
934 u8 *beg = tmp;
935 sz t = num > 0 ? num : -num;
936 do {
937 *--beg = '0' + t % 10;
938 } while (t /= 10);
939 if (num < 0) {
940 *--beg = '-';
941 }
942 Str parsed = {
943 .mem = beg,
944 .size = end - beg,
945 };
946 log_str(l, parsed);
947}
923 948
924#endif // BADLIB_H 949#endif // BADLIB_H
diff --git a/src/main.c b/src/main.c
index e65c9e7..945ebe0 100644
--- a/src/main.c
+++ b/src/main.c
@@ -50,20 +50,21 @@ process_file(Str path) {
50 .storage = &logger_arena, 50 .storage = &logger_arena,
51 }; 51 };
52 log_str(&logger_info, cstr("<<< ")); 52 log_str(&logger_info, cstr("<<< "));
53 log_str(&logger_info, cstr("processing file: ")); 53 log_int(&logger_info, -1234);
54 log_str(&logger_info, path); 54 // log_str(&logger_info, cstr("processing file: "));
55 // log_str(&logger_info, path);
55 log_str(&logger_info, cstr(" >>>")); 56 log_str(&logger_info, cstr(" >>>"));
56 log_str(&logger_info, cstr("\n")); 57 log_str(&logger_info, cstr("\n"));
57
58 Logger logger_err = {
59 .dest = stderr,
60 .storage = &logger_arena,
61 };
62 log_str(&logger_err, path);
63 log_str(&logger_err, cstr(":1:1:"));
64 log_str(&logger_err, cstr("error: testing string logger\n"));
65 log_flush(&logger_info); 58 log_flush(&logger_info);
66 log_flush(&logger_err); 59
60 // Logger logger_err = {
61 // .dest = stderr,
62 // .storage = &logger_arena,
63 // };
64 // log_str(&logger_err, path);
65 // log_str(&logger_err, cstr(":1:1:"));
66 // log_str(&logger_err, cstr("error: testing string logger\n"));
67 // log_flush(&logger_err);
67 68
68 // TODO: add numeric logging 69 // TODO: add numeric logging
69 // TODO: add custom struct logging 70 // TODO: add custom struct logging
@@ -127,10 +128,7 @@ main(int argc, char *argv[]) {
127 // Run from file. 128 // Run from file.
128 while (optind < argc) { 129 while (optind < argc) {
129 char *file_name = argv[optind]; 130 char *file_name = argv[optind];
130 Str file_path = { 131 Str file_path = STR(file_name);
131 .mem = (u8 *)file_name,
132 .size = strlen(file_name),
133 };
134 process_file(file_path); 132 process_file(file_path);
135 optind++; 133 optind++;
136 } 134 }