1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 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);
- }
|