Stripping prefixes

This commit is contained in:
kamkow1
2025-05-30 13:47:07 +02:00
parent 3872c0d746
commit 214b2d8a67
5 changed files with 103 additions and 26 deletions

View File

@ -1,3 +1,4 @@
#define GEBS_NO_PREFIX
#define GEBS_IMPLEMENTATION #define GEBS_IMPLEMENTATION
#include "../gebs.h" #include "../gebs.h"
@ -8,19 +9,19 @@ typedef struct {
int main(void) int main(void)
{ {
Gebs_Arena *arena = gebs_arena_make(sizeof(int)); Arena *arena = arena_make(sizeof(int));
defer { gebs_arena_destroy(arena); } defer { arena_destroy(arena); }
Ints ints = {0}; Ints ints = {0};
defer { gebs_list_free_alloc(arena, &ints); } defer { list_free_alloc(arena, &ints); }
for (size_t i = 0; i < 1000; i++) { for (size_t i = 0; i < 1000; i++) {
gebs_list_append_alloc(arena, &ints, i); list_append_alloc(arena, &ints, i);
} }
for (size_t i = 0; i < ints.count; i++) { for (size_t i = 0; i < ints.count; i++) {
printf("%zu\n", i); printf("%zu\n", i);
} }
printf("%s\n", gebs_fmt("Hello formatting %d", 124)); printf("%s\n", fmt("Hello formatting %d", 124));
return 0; return 0;
} }

View File

@ -1,26 +1,27 @@
#include <stdio.h> #include <stdio.h>
#define GEBS_NO_PREFIX
#define GEBS_IMPLEMENTATION #define GEBS_IMPLEMENTATION
#include "../gebs.h" #include "../gebs.h"
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
gebs_rebuild_self(argc, argv, "cc", "-o", "commands", __FILE__); rebuild_self(argc, argv, "cc", "-o", "commands", __FILE__);
int code = GEBS_CMD("ls", "-la"); int code = CMD("ls", "-la");
GEBS_LOGI("Exited with %d\n", code); LOGI("Exited with %d\n", code);
Gebs_Cmd cmd = {0}; Cmd cmd = {0};
defer { gebs_list_free(&cmd); } defer { list_free(&cmd); }
gebs_cmd_append(&cmd, "ls"); cmd_append(&cmd, "ls");
gebs_cmd_append(&cmd, "-la"); cmd_append(&cmd, "-la");
Gebs_String_Builder out_sb = {0}; String_Builder out_sb = {0};
defer { gebs_sb_free(&out_sb); } defer { sb_free(&out_sb); }
code = gebs_cmd_run_collect(&cmd, &out_sb); code = cmd_run_collect(&cmd, &out_sb);
printf("CAPTURED\n%sCAPTURED\n", out_sb.items); printf("CAPTURED\n%sCAPTURED\n", out_sb.items);
GEBS_LOGI("Exited with %d\n", code); LOGI("Exited with %d\n", code);
return 0; return 0;
} }

View File

@ -1,10 +1,11 @@
#include <stdio.h> #include <stdio.h>
#define GEBS_NO_PREFIX
#define GEBS_IMPLEMENTATION #define GEBS_IMPLEMENTATION
#include "../gebs.h" #include "../gebs.h"
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
gebs_rebuild_self(argc, argv, "cc", "-o", "self_rebuild", __FILE__); rebuild_self(argc, argv, "cc", "-o", "self_rebuild", __FILE__);
printf("Hello world\n"); printf("Hello world\n");
return 0; return 0;

20
gebs.c
View File

@ -1,24 +1,26 @@
#define GEBS_NO_PREFIX
#define GEBS_IMPLEMENTATION #define GEBS_IMPLEMENTATION
#include "gebs.h" #include "gebs.h"
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
gebs_rebuild_self(argc, argv, "cc", "-o", "gebs", __FILE__); rebuild_self(argc, argv, "cc", "-o", "gebs", __FILE__);
if (!gebs_exists("build")) { if (!exists1("build")) {
gebs_mkdir("build"); mkdir1("build");
} }
if (gebs_needs_rebuild_many("build/self_rebuild", "example/self_rebuild.c", "gebs.h")) { if (needs_rebuild_many("build/self_rebuild", "example/self_rebuild.c", "gebs.h")) {
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/self_rebuild", "example/self_rebuild.c") != 0) if (CMD("gcc", "-ggdb", "-o", "build/self_rebuild", "example/self_rebuild.c") != 0)
return 1; return 1;
} }
if (gebs_needs_rebuild_many("build/arena", "example/arena.c", "gebs.h")) { if (needs_rebuild_many("build/arena", "example/arena.c", "gebs.h")) {
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/arena", "example/arena.c") != 0) if (CMD("gcc", "-ggdb", "-o", "build/arena", "example/arena.c") != 0)
return 1; return 1;
} }
if (gebs_needs_rebuild_many("build/commands", "example/commands.c", "gebs.h")) {
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/commands", "example/commands.c") != 0) { if (needs_rebuild_many("build/commands", "example/commands.c", "gebs.h")) {
if (CMD("gcc", "-ggdb", "-o", "build/commands", "example/commands.c") != 0) {
return 1; return 1;
} }
} }

72
gebs.h
View File

@ -1,6 +1,7 @@
#ifndef GEBS_H_ #ifndef GEBS_H_
#define GEBS_H_ #define GEBS_H_
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Platform macros // Platform macros
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -689,4 +690,75 @@ void gebs_rebuild_self1_alloc(Gebs_Allocator *alloc, int argc, char ** argv,
#endif // GEBS_IMPLEMENTATION #endif // GEBS_IMPLEMENTATION
// ----------------------------------------------------------------------------
// Prefixes
// ----------------------------------------------------------------------------
#ifdef GEBS_NO_PREFIX
#define SHIFT_CHECK GEBS_SHIFT_CHECK
#define SHIFT GEBS_SHIFT
#define LOGI GEBS_LOGI
#define LOGE GEBS_LOGE
#define LOGD GEBS_LOGD
#define LOGW GEBS_LOGW
#define LOGO GEBS_LOGO
#define Allocator Gebs_Allocator
#define default_allocator gebs_default_allocator
#define Arena Gebs_Arena
#define arena_reset gebs_arena_reset
#define arena_destroy gebs_arena_destroy
#define arena_make gebs_arena_make
#define arena_expand gebs_arena_expand
#define list_append_alloc gebs_list_append_alloc
#define list_append gebs_list_append
#define list_free_alloc gebs_list_free_alloc
#define list_free gebs_list_free
#define NString_List Gebs_NString_List
#define nsl_join_alloc gebs_nls_join_alloc
#define String_Builder Gebs_String_Builder
#define sb_append_char_alloc gebs_sb_append_char_alloc
#define sb_free_alloc gebs_sb_free_alloc
#define sb_finish_alloc gebs_sb_finish_alloc
#define sb_append_nstr_alloc gebs_sb_append_nstr_alloc
#define sb_append_char gebs_sb_append_char
#define sb_free gebs_sb_free
#define sb_finish gebs_sb_finish
#define sb_append_nstr gebs_sb_append_nstr
#define rename1 gebs_rename
#define remove1 gebs_remove
#define mkdir1 gebs_mkdir
#define exists1 gebs_exists
#define Cmd Gebs_Cmd
#define cmd_append_alloc gebs_cmd_append_alloc
#define cmd_free_aloc gebs_cmd_free_alloc
#define cmd_append gebs_cmd_append
#define cmd_free gebs_cmd_free
#define cmd_run_alloc gebs_cmd_run_alloc
#define cmd_run gebs_cmd_run
#define cmd_run_sync_alloc gebs_cmd_run_sync_alloc
#define CMD GEBS_CMD
#define cmd_run_sync_collect_alloc gebs_cmd_run_sync_collect_alloc
#define cmd_run_collect_alloc gebs_cmd_run_collect_alloc
#define cmd_run_collect gebs_cmd_run_collect
#define needs_rebuild gebs_needs_rebuild
#define needs_rebuild_many gebs_needs_rebuild_many
#define rebuild_self gebs_rebuild_self
#define make_compile_flags gebs_make_compile_flags
#define scratch_arena gebs_scratch_arena
#define fmt gebs_fmt
#define scratch_arena_reset gebs_scratch_arena_reset
#endif
#endif // GEBS_H_ #endif // GEBS_H_