[commonlib.h] Update
authorahmedsamyh <ahmedsamyh10@gmail.com>
Wed, 26 Mar 2025 21:55:16 +0000 (02:55 +0500)
committerahmedsamyh <ahmedsamyh10@gmail.com>
Wed, 26 Mar 2025 21:55:16 +0000 (02:55 +0500)
include/commonlib.h

index ba8f44fe7e8b00a949680834f45f5146fb64b09e..9aa11b36880273f59c033cb0bb7c6f08c3d19a50 100644 (file)
@@ -11,8 +11,8 @@
 \r
 // Remove Prefix\r
 #ifdef COMMONLIB_REMOVE_PREFIX\r
-#define ASSERT c_ASSERT\r
-#define ARRAY_LEN c_ARRAY_LEN\r
+#define ASSERT C_ASSERT\r
+#define ARRAY_LEN C_ARRAY_LEN\r
 \r
 #define da_append c_da_append\r
 #define da_free c_da_free\r
@@ -114,14 +114,14 @@ typedef const wchar* wstr;
 \r
 \r
 // Macros\r
-#define c_ASSERT(condition, msg) do {\\r
+#define C_ASSERT(condition, msg) do {\\r
                 if (!(condition)) {\\r
                         fprintf(stderr, "%s:%d:0 [ASSERTION FAILED] %s: %s", __FILE__, __LINE__, #condition, msg);\\r
                         exit(1);\\r
                 }\\r
         } while (0)\r
 \r
-#define c_ARRAY_LEN(arr) (sizeof(arr) / sizeof(arr[0]))\r
+#define C_ARRAY_LEN(arr) (sizeof(arr) / sizeof(arr[0]))\r
 \r
 #define c_shift(xs, xsz) (assert(xsz > 0 && "Array is empty"), xsz--, *xs++)\r
 #define c_shift_args c_shift\r
@@ -170,12 +170,12 @@ typedef struct c_Arena c_Arena;
                if ((da).count >= (da).capacity) {\\r
                        (da).capacity *= 2;\\r
                         (da).items = C_REALLOC((da).items, (da).capacity * sizeof(elm));\\r
-                       c_ASSERT((da).items != NULL, "TODO: Log error instead of asserting");\\r
+                       C_ASSERT((da).items != NULL, "TODO: Log error instead of asserting");\\r
                }\\r
                (da).items[(da).count++] = elm;\\r
        } while (0)\r
 \r
-// NOTE: We cant do c_ASSERT() here because it aint one expression...\r
+// NOTE: We cant do C_ASSERT() here because it aint one expression...\r
 #define c_da_shift(da) (assert((da).count > 0 && "Array is empty"), (da).count--, *(da).items++)\r
 #define c_da_free(da) C_FREE((da).items)\r
 \r
@@ -308,19 +308,19 @@ bool c_sv_equals(c_String_view sv1, c_String_view sv2);
 #if defined(_WIN32) || defined(__CYGWIN__)\r
 void c_os_get_timedate(c_Arena* a) {\r
         (void)a;\r
-        c_ASSERT(false, "Unimplemented!");\r
+        C_ASSERT(false, "Unimplemented!");\r
 }\r
 \r
 bool c_os_file_exists(cstr filename) {\r
         (void) filename;\r
-        c_ASSERT(false, "Unimplemented!");\r
+        C_ASSERT(false, "Unimplemented!");\r
         return false;\r
 }\r
 \r
 #elif defined(__linux__)\r
 void c_os_get_timedate(c_Arena* a) {\r
         (void)a;\r
-        c_ASSERT(false, "Unimplemented!");\r
+        C_ASSERT(false, "Unimplemented!");\r
 }\r
 \r
 bool c_os_file_exists(cstr filename) {\r
@@ -399,13 +399,13 @@ c_Arena c_Arena_make(size_t size) {
     res.buff = C_MALLOC(res.buff_size);\r
     res.ptr = res.buff;\r
 \r
-    c_ASSERT(res.buff, "Malloc failed?");\r
+    C_ASSERT(res.buff, "Malloc failed?");\r
 \r
     return res;\r
 }\r
 \r
 void* c_Arena_alloc(c_Arena* a, size_t size) {\r
-    c_ASSERT(a->buff, "Bro pass an initialized arena!");\r
+    C_ASSERT(a->buff, "Bro pass an initialized arena!");\r
 \r
     void* res = a->ptr;\r
     a->ptr = (uint8*)a->ptr + size;\r
@@ -419,7 +419,7 @@ void* c_Arena_alloc(c_Arena* a, size_t size) {
         res = a->ptr;\r
         a->ptr = (uint8*)a->ptr + size;\r
     }\r
-    /* c_ASSERT((size_t)((uint8*)a->ptr - (uint8*)a->buff) <= a->buff_size); */\r
+    /* C_ASSERT((size_t)((uint8*)a->ptr - (uint8*)a->buff) <= a->buff_size); */\r
 \r
     return res;\r
 }\r
@@ -607,8 +607,12 @@ void c_sv_trim(c_String_view* sv){
 }\r
 \r
 char* c_sv_to_cstr(c_String_view sv){\r
-    char* res = (char*)calloc(1, sizeof(char)*sv.count);\r
+    char* res = (char*)malloc(sizeof(char)*(sv.count + 1));\r
+    if (res == NULL) {\r
+        C_ASSERT(false, "Buy more RAM bruh");\r
+    }\r
     C_MEMCPY(res, sv.data, sv.count);\r
+    res[sv.count] = '\0';\r
     return res;\r
 }\r
 \r
@@ -666,7 +670,7 @@ bool c_sv_is_hex_numbers(c_String_view sv) {
     bool found = false;\r
     for (size_t i = 0; i < sv.count; ++i) {\r
         char c = sv.data[i];\r
-        for (size_t j = 0; j < c_ARRAY_LEN(hex); ++j) {\r
+        for (size_t j = 0; j < C_ARRAY_LEN(hex); ++j) {\r
             if (hex[j] == c) {\r
        found = true;\r
             }\r