version: add taisei_version_tostrbuf()

This commit is contained in:
Andrei Alexeyev 2023-06-14 03:09:35 +02:00
parent a6e29bdc56
commit 79768da03a
No known key found for this signature in database
GPG key ID: 72D26128040B9690
2 changed files with 20 additions and 8 deletions

View file

@ -63,14 +63,24 @@ size_t taisei_version_write(SDL_RWops *rwops, TaiseiVersion *version) {
return wrote_total;
}
char* taisei_version_tostring(TaiseiVersion *version) {
if(!version->tweak) {
if(!version->patch) {
return strfmt("%u.%u", version->major, version->minor);
}
char *taisei_version_tostring(TaiseiVersion *version) {
StringBuffer sbuf = {};
taisei_version_tostrbuf(&sbuf, version);
return sbuf.start;
}
return strfmt("%u.%u.%u", version->major, version->minor, version->patch);
void taisei_version_tostrbuf(StringBuffer *sbuf, TaiseiVersion *version) {
strbuf_printf(sbuf, "%u.%u", version->major, version->minor);
if(!version->patch && !version->tweak) {
return;
}
return strfmt("%u.%u.%u.%u", version->major, version->minor, version->patch, version->tweak);
strbuf_printf(sbuf, ".%u", version->patch);
if(!version->tweak) {
return;
}
strbuf_printf(sbuf, ".%u", version->tweak);
}

View file

@ -10,6 +10,7 @@
#include "taisei.h"
#include "util.h"
#include "util/strbuf.h"
#ifdef TAISEI_BUILDCONF_DEBUG
#define TAISEI_VERSION_BUILD_TYPE_0 "debug"
@ -78,6 +79,7 @@ typedef enum {
#define TAISEI_VERSION_SIZE (sizeof(uint8_t) * 3 + sizeof(uint16_t))
int taisei_version_compare(TaiseiVersion *v1, TaiseiVersion *v2, TaiseiVersionCmpLevel level);
char* taisei_version_tostring(TaiseiVersion *version);
char *taisei_version_tostring(TaiseiVersion *version);
void taisei_version_tostrbuf(StringBuffer *sbuf, TaiseiVersion *version);
size_t taisei_version_read(SDL_RWops *rwops, TaiseiVersion *version);
size_t taisei_version_write(SDL_RWops *rwops, TaiseiVersion *version);