// BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser // Copyright © 2019-2021 Badwolf Authors // SPDX-License-Identifier: BSD-3-Clause #include "fmt.h" /* flawfinder: ignore. `alpha_digits` is never modified */ static const char alpha_digits[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; void fmt_context_id(uint64_t num, char *out, int withSeparator) { /* flawfinder: ignore. bound checks are done */ char buf[GOODWOLF_CTX_SIZ] = {0, 0, 0, 0, 0, 0, 0}; int len = 2; buf[++len] = alpha_digits[num % 26]; num /= 26; while(num > 0 && len < (GOODWOLF_CTX_SIZ - 1)) { buf[++len] = alpha_digits[(num - 1) % 26]; num /= 26; } for(int i = 0; i < len; i++) { out[i] = buf[len - i]; } if (withSeparator) { out[len - 2] = ':'; out[len - 1] = ' '; } }