commit bfcf3f845482a39bca4a5e8a3602ef5e4ad3dc6d
parent 596c955b7066e375ffda216c818a45f1fd906938
Author: Jake Koroman <jake@jakekoroman.com>
Date: Tue, 12 Aug 2025 20:34:26 -0400
add JRK_UNUSED and jrk_shift.
Diffstat:
M | jrk.h | | | 17 | ++++++++++++++--- |
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/jrk.h b/jrk.h
@@ -24,6 +24,8 @@ typedef uint64_t u64;
typedef float f32;
typedef double f64;
+#define JRK_UNUSED(x) (void)x
+
typedef struct {
u8 *data;
u64 length;
@@ -72,6 +74,9 @@ jrk_StringView jrk_sv_from_cstr(char*);
/* NOTE(jake): no shortname as 'assert' is just too generic */
#define jrk_assert(c, msg) do { if (!(c)) jrk_die("jrk_assert: "msg); } while(0)
+#define jrk_shift(x, n) ((n)--, *(x)++)
+#define jrk_shift_loop(x, n, it) for (char *it = jrk_shift(x, n); n >= 0; it = jrk_shift(x, n))
+
#define jrk_emalloc(n) jrk_ecalloc(1, n)
#define jrk_arena_destroy(arena) ((arena.data) ? free(arena.data) : (void) 0)
@@ -135,6 +140,8 @@ jrk_StringView jrk_sv_from_cstr(char*);
#define jrk_sb_append_buf(sb, buf, size) jrk_da_append_many(sb, buf, size)
#ifdef JRK_SHORTNAMES
+ #define UNUSED JRK_UNUSED
+
#define Arena jrk_Arena
#define StringBuilder jrk_StringBuilder
#define StringView jrk_StringView
@@ -180,6 +187,9 @@ jrk_StringView jrk_sv_from_cstr(char*);
#define fd_open_read jrk_fd_open_read
#define fd_open_write jrk_fd_open_write
#define fd_open_write_append jrk_fd_open_write_append
+
+ #define shift jrk_shift
+ #define shift_loop jrk_shift_loop
#endif // JRK_SHORTNAMES
#ifdef JRK_IMPLEMENTATION
@@ -282,7 +292,8 @@ jrk_sb_appendf(jrk_StringBuilder *sb, const char *fmt, ...)
return n;
}
-u64 jrk_fd_size(i32 fd)
+u64
+jrk_fd_size(i32 fd)
{
struct stat statbuf = {0};
if (fstat(fd, &statbuf) < 0)
@@ -297,7 +308,7 @@ jrk_sb_fd_read_all(jrk_StringBuilder *sb, i32 fd)
u64 sz = jrk_fd_size(fd);
jrk_da_reserve(sb, sz);
if (read(fd, sb->items, sz) < 0)
- jrk_ediev("jrk_sb_fd_read_all(%p, %d)", sb, fd);
+ jrk_ediev("jrk_sb_fd_read_all(%p, %d)", (void *)sb, fd);
sb->count = sz;
}
@@ -308,7 +319,7 @@ jrk_sb_fd_write_all(jrk_StringBuilder *sb, i32 fd)
i64 result;
result = write(fd, (void *) sb->items, sb->count);
if (result < 0)
- jrk_ediev("jrk_sb_fd_write_all(%p, %d)", sb, fd);
+ jrk_ediev("jrk_sb_fd_write_all(%p, %d)", (void *)sb, fd);
return result;
}