diff options
author | Takeshi ISHII <2170248+mtei@users.noreply.github.com> | 2022-04-22 06:48:50 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-21 14:48:50 -0700 |
commit | c2939bf03833e013742ecc74d8229832c88656c2 (patch) | |
tree | a4a07d2c17c83a0d3836a6dbf86fbaa91dce8918 /users/mtei/pseudo_sprintf.c | |
parent | 1e389c7904e42df36d8a2f64b315b83f70aa9b60 (diff) |
[Keymap] Fix build error `helix:five_rows` (#16847)
Diffstat (limited to 'users/mtei/pseudo_sprintf.c')
-rw-r--r-- | users/mtei/pseudo_sprintf.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/users/mtei/pseudo_sprintf.c b/users/mtei/pseudo_sprintf.c new file mode 100644 index 0000000000..446e3efc65 --- /dev/null +++ b/users/mtei/pseudo_sprintf.c @@ -0,0 +1,53 @@ +// Copyright 2022 Takeshi Ishii (@mtei) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "pseudo_sprintf.h" + +static char *sprint_decimal(char *buf, int data) { + if (data > 9) { + buf = sprint_decimal(buf, data/10); + } + *buf++ = "0123456789"[data%10]; + *buf = '\0'; + return buf; +} + +static char *sprint_hex(char *buf, uint32_t data) { + if (data > 0xf) { + buf = sprint_hex(buf, data/0x10); + } + *buf++ = "0123456789abcdef"[data & 0xf]; + *buf = '\0'; + return buf; +} + +char *sprints(char *buf, char *src) { + while (*src) { + *buf++ = *src++; + } + *buf = '\0'; + return buf; +} + +char *sprintx(char *buf, char *leadstr, uint32_t data) { + buf = sprints(buf, leadstr); + buf = sprint_hex(buf, data); + return buf; +} + +char *sprintd(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + buf = sprint_decimal(buf, data); + return buf; +} + +char *sprint2d(char *buf, char *leadstr, int data) { + buf = sprints(buf, leadstr); + if (data > 99) { + return sprint_decimal(buf, data); + } + if (data < 10) { + *buf++ = ' '; + } + return sprint_decimal(buf, data); +} |