From ab563dd4f7101b11d251e675ac504e63770df357 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sat, 28 Nov 2020 19:59:36 -0500 Subject: Use uint64_t for save file signature This fixes building on 32-bit platforms. --- ring.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ring.c b/ring.c index e675526..0a46b09 100644 --- a/ring.c +++ b/ring.c @@ -27,6 +27,8 @@ #include #include +#include +#include #include #include #include @@ -139,17 +141,17 @@ void ringInfo(void) { } } -static const size_t Signatures[] = { +static const uint64_t Signatures[] = { 0x0165636E756F70, // no ring size 0x0265636E756F70, // time_t only 0x0365636E756F70, }; -static size_t signatureVersion(size_t signature) { +static size_t signatureVersion(uint64_t signature) { for (size_t i = 0; i < ARRAY_LEN(Signatures); ++i) { if (signature == Signatures[i]) return i; } - errx(EX_DATAERR, "unknown file signature %zX", signature); + errx(EX_DATAERR, "unknown file signature %" PRIX64, signature); } static int writeSize(FILE *file, size_t value) { @@ -163,7 +165,7 @@ static int writeString(FILE *file, const char *str) { } int ringSave(FILE *file) { - if (writeSize(file, Signatures[2])) return -1; + if (!fwrite(&Signatures[2], sizeof(*Signatures), 1, file)) return -1; if (writeSize(file, ring.len)) return -1; if (writeSize(file, producer)) return -1; if (writeSize(file, consumers.len)) return -1; @@ -202,7 +204,7 @@ static void readString(FILE *file, char **buf, size_t *cap) { } void ringLoad(FILE *file) { - size_t signature; + uint64_t signature; fread(&signature, sizeof(signature), 1, file); if (ferror(file)) err(EX_IOERR, "fread"); if (feof(file)) return; -- cgit 1.4.1 class='path'>path: root/doc (unfollow)
Commit message (Expand)Author
2020-12-31Tell "Music" rather than "iTunes"June McEnroe
2020-12-31Add ASCII control code names to bitJune McEnroe
2020-12-31Simplify bit lexing and parsingJune McEnroe
2020-12-31Add ddateJune McEnroe
2020-12-30Print octal for 8 bits in bitJune McEnroe
2020-12-30Add unary & to bitJune McEnroe
2020-12-30Support unary + in orderJune McEnroe
2020-12-30Add postfix $ operator to bitJune McEnroe
2020-12-29Add make lexerJune McEnroe
2020-12-29Clean up C lexerJune McEnroe
2020-12-29Clean up hilex code somewhatJune McEnroe
2020-12-29Match lex/yacc %% %{ %} lines as MacroJune McEnroe
2020-12-29Match top-level C definitions as IdentifierTagJune McEnroe
2020-12-29Match C type declarations as IdentifierTagJune McEnroe
2020-12-29Match function-like macro definitions as IdentifierTagJune McEnroe
2020-12-29Reconfigure C macro start conditionsJune McEnroe
2020-12-29Document HTML class namesJune McEnroe
2020-12-29Rename Tag class to IdentifierTagJune McEnroe
2020-12-29Change HTML class from hi to hilexJune McEnroe
2020-12-29Add hilex HTML outputJune McEnroe