Skip to content

Commit

Permalink
Short term fix for conflicting types for 'tfp_printf' (qmk#8157)
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr authored and jakeisnt committed Aug 20, 2020
1 parent 03a90bf commit d92a907
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
14 changes: 9 additions & 5 deletions tmk_core/common/chibios/printf.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ static int a2d(char ch) {
return -1;
}

static char a2i(char ch, char** src, int base, int* nump) {
char* p = *src;
static char a2i(char ch, const char** src, int base, int* nump) {
const char* p = *src;
int num = 0;
int digit;
while ((digit = a2d(ch)) >= 0) {
Expand All @@ -119,7 +119,7 @@ static void putchw(void* putp, putcf putf, int n, char z, char* bf) {
while ((ch = *bf++)) putf(putp, ch);
}

void tfp_format(void* putp, putcf putf, char* fmt, va_list va) {
void tfp_format(void* putp, putcf putf, const char* fmt, va_list va) {
// This used to handle max of 12, but binary support jumps this to at least 32
char bf[36];

Expand Down Expand Up @@ -211,19 +211,23 @@ void init_printf(void* putp, void (*putf)(void*, char)) {
stdout_putp = putp;
}

void tfp_printf(char* fmt, ...) {
int tfp_printf(const char* fmt, ...) {
va_list va;
va_start(va, fmt);
tfp_format(stdout_putp, stdout_putf, fmt, va);
va_end(va);

return 1;
}

static void putcp(void* p, char c) { *(*((char**)p))++ = c; }

void tfp_sprintf(char* s, char* fmt, ...) {
int tfp_sprintf(char* s, const char* fmt, ...) {
va_list va;
va_start(va, fmt);
tfp_format(&s, putcp, fmt, va);
putcp(&s, 0);
va_end(va);

return 1;
}
6 changes: 3 additions & 3 deletions tmk_core/common/chibios/printf.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ regs Kusti, 23.10.2004

void init_printf(void* putp, void (*putf)(void*, char));

void tfp_printf(char* fmt, ...);
void tfp_sprintf(char* s, char* fmt, ...);
int tfp_printf(const char* fmt, ...);
int tfp_sprintf(char* s, const char* fmt, ...);

void tfp_format(void* putp, void (*putf)(void*, char), char* fmt, va_list va);
void tfp_format(void* putp, void (*putf)(void*, char), const char* fmt, va_list va);

#define printf tfp_printf
#define sprintf tfp_sprintf
Expand Down

0 comments on commit d92a907

Please sign in to comment.