Start moving away from wrapping libc stuff in akerror, and move towards akstdlib that does this for me

This commit is contained in:
2026-05-10 00:03:45 -04:00
parent cc0916cd1f
commit 4a02f0364f
3 changed files with 20 additions and 33 deletions

View File

@@ -9,6 +9,7 @@ find_package(SDL3_image REQUIRED)
find_package(SDL3_mixer REQUIRED) find_package(SDL3_mixer REQUIRED)
find_package(SDL3_ttf REQUIRED) find_package(SDL3_ttf REQUIRED)
find_package(akerror REQUIRED) find_package(akerror REQUIRED)
find_package(akstdlib REQUIRED)
find_package(jansson REQUIRED) find_package(jansson REQUIRED)
find_package(box2d REQUIRED) find_package(box2d REQUIRED)
@@ -87,18 +88,19 @@ target_link_libraries(akgl
SDL3_image::SDL3_image SDL3_image::SDL3_image
SDL3_mixer::SDL3_mixer SDL3_mixer::SDL3_mixer
SDL3_ttf::SDL3_ttf SDL3_ttf::SDL3_ttf
akstdlib::akstdlib
) )
target_link_libraries(test_actor PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_actor PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_bitmasks PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_bitmasks PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_character PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_character PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_registry PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_registry PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_sprite PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_sprite PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_staticstring PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_staticstring PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_tilemap PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_tilemap PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(test_util PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(test_util PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
target_link_libraries(charviewer PRIVATE akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm) target_link_libraries(charviewer PRIVATE akstdlib::akstdlib akerror::akerror akgl SDL3::SDL3 SDL3_ttf::SDL3_ttf SDL3_image::SDL3_image SDL3_mixer::SDL3_mixer box2d::box2d jansson::jansson -lm)
set(main_lib_dest "lib/akgl-${MY_LIBRARY_VERSION}") set(main_lib_dest "lib/akgl-${MY_LIBRARY_VERSION}")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/akgl.pc DESTINATION "lib/pkgconfig/") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/akgl.pc DESTINATION "lib/pkgconfig/")

View File

@@ -1,7 +1,7 @@
#ifndef _SDL_GAMECONTROLLERDB_H_ #ifndef _SDL_GAMECONTROLLERDB_H_
#define _SDL_GAMECONTROLLERDB_H_ #define _SDL_GAMECONTROLLERDB_H_
// Taken from https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/refs/heads/master/gamecontrollerdb.txt on Sat May 9 02:26:29 PM EDT 2026 // Taken from https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/refs/heads/master/gamecontrollerdb.txt on Sat May 9 11:58:41 PM EDT 2026
#define AKGL_SDL_GAMECONTROLLER_DB_LEN 2227 #define AKGL_SDL_GAMECONTROLLER_DB_LEN 2227

View File

@@ -6,6 +6,7 @@
#include <akerror.h> #include <akerror.h>
#include <semver.h> #include <semver.h>
#include <akstdlib.h>
#include <akgl/game.h> #include <akgl/game.h>
#include <akgl/controller.h> #include <akgl/controller.h>
#include <akgl/tilemap.h> #include <akgl/tilemap.h>
@@ -235,9 +236,8 @@ akerr_ErrorContext AKERR_NOIGNORE *akgl_game_save(char *fpath)
ATTEMPT { ATTEMPT {
FAIL_ZERO_BREAK(errctx, fpath, AKERR_NULLPOINTER, "NULL file path"); FAIL_ZERO_BREAK(errctx, fpath, AKERR_NULLPOINTER, "NULL file path");
fp = fopen(fpath, "wb"); CATCH(errctx, aksl_fopen(fpath, "wb", &fp));
FAIL_ZERO_BREAK(errctx, fp, errno, "%s", fpath); CATCH(errctx, aksl_fwrite(&game, 1, sizeof(akgl_Game), fp));
fwrite(&game, 1, sizeof(akgl_Game), fp);
CATCH(errctx, akgl_game_save_actors(fp)); CATCH(errctx, akgl_game_save_actors(fp));
} PROCESS(errctx) { } PROCESS(errctx) {
} CLEANUP { } CLEANUP {
@@ -256,18 +256,8 @@ akerr_ErrorContext AKERR_NOIGNORE *akgl_game_load_objectnamemap(FILE *fp, SDL_Pr
PREPARE_ERROR(errctx); PREPARE_ERROR(errctx);
while ( 1 ) { while ( 1 ) {
retval = fread((void *)&objname, 1, namelength, fp); CATCH(errctx, aksl_fread((void *)&objname, 1, namelength, fp));
FAIL_NONZERO_RETURN( CATCH(errctx, aksl_fread((void *)&ptr, 1, ptrlength, fp));
errctx,
(retval != namelength),
AKERR_IO,
"Corrupt save file");
retval = fread((void *)&ptr, 1, ptrlength, fp);
FAIL_NONZERO_RETURN(
errctx,
(retval != ptrlength),
AKERR_IO,
"Corrupt save file");
// End of the map // End of the map
if ( ptr == 0x00 && objname[0] == 0x00 ) { if ( ptr == 0x00 && objname[0] == 0x00 ) {
break; break;
@@ -280,7 +270,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgl_game_load_objectnamemap(FILE *fp, SDL_Pr
// SDL_Properties objects can only use string keys, so we can't use the // SDL_Properties objects can only use string keys, so we can't use the
// old pointer as a key without first converting it to a string. // old pointer as a key without first converting it to a string.
memset((void *)&ptrstring, 0x00, 32); CATCH(errctx, aksl_memset((void *)&ptrstring, 0x00, 32));
snprintf((char *)&ptrstring, 32, "%p", ptr); snprintf((char *)&ptrstring, 32, "%p", ptr);
SDL_SetPointerProperty( SDL_SetPointerProperty(
map, map,
@@ -344,13 +334,8 @@ akerr_ErrorContext AKERR_NOIGNORE *akgl_game_load(char *fpath)
FAIL_ZERO_RETURN(errctx, fpath, AKERR_NULLPOINTER, "NULL file path"); FAIL_ZERO_RETURN(errctx, fpath, AKERR_NULLPOINTER, "NULL file path");
ATTEMPT { ATTEMPT {
fp = fopen(fpath, "rb"); CATCH(errctx, aksl_fopen(fpath, "rb", &fp));
FAIL_ZERO_BREAK(errctx, fp, errno, "%s", fpath); CATCH(errctx, aksl_fread((void *)&savegame, 1, sizeof(akgl_Game), fp));
FAIL_NONZERO_BREAK(
errctx,
(fread((void *)&savegame, 1, sizeof(akgl_Game), fp) < sizeof(akgl_Game)),
AKERR_IO,
"Corrupt save file");
CATCH(errctx, akgl_game_load_versioncmp("library", (char *)&savegame.libversion, (char *)AKGL_VERSION)); CATCH(errctx, akgl_game_load_versioncmp("library", (char *)&savegame.libversion, (char *)AKGL_VERSION));
CATCH(errctx, akgl_game_load_versioncmp("game", (char *)&savegame.version, (char *)&game.version)); CATCH(errctx, akgl_game_load_versioncmp("game", (char *)&savegame.version, (char *)&game.version));
FAIL_NONZERO_RETURN( FAIL_NONZERO_RETURN(