jrk

my own c stdlib to keep myself sane
git clone git://git.jakekoroman.com/jrk
Log | Files | Refs

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:
Mjrk.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; }