git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

commit 1c4a6e16edef5fd54bab68bed72a901c38c778ba
parent 077692bcb2cbf282e0bc30a89a7efbfd1a68a5e0
Author: Toxa <untoxa@mail.ru>
Date:   Wed, 15 Nov 2023 16:29:13 +0300

LIBRARY: change calling convention for printf()/sprintf()

Diffstat:
Mgbdk-lib/include/stdio.h6+++---
Mgbdk-lib/libc/printf.c2+-
Mgbdk-lib/libc/sprintf.c15++++++++++++---
3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/gbdk-lib/include/stdio.h b/gbdk-lib/include/stdio.h @@ -15,7 +15,7 @@ @param c Character to print */ -void putchar(char c) OLDCALL; +void putchar(char c) OLDCALL REENTRANT; /** Print the string and arguments given by format to stdout. @@ -38,7 +38,7 @@ void putchar(char c) OLDCALL; the function. See @ref docs_chars_varargs for more details. */ -void printf(const char *format, ...) OLDCALL REENTRANT; +void printf(const char *format, ...); /** Print the string and arguments given by format to a buffer. @@ -52,7 +52,7 @@ void printf(const char *format, ...) OLDCALL REENTRANT; the function. See @ref docs_chars_varargs for more details. */ -void sprintf(char *str, const char *format, ...) OLDCALL REENTRANT; +void sprintf(char *str, const char *format, ...); /** puts() writes the string __s__ and a trailing newline to stdout. */ diff --git a/gbdk-lib/libc/printf.c b/gbdk-lib/libc/printf.c @@ -3,7 +3,7 @@ void __printf(const char *format, void *emitter, char **pData, va_list va); -void printf(const char *format, ...) OLDCALL { +void printf(const char *format, ...) { va_list va; va_start(va, format); diff --git a/gbdk-lib/libc/sprintf.c b/gbdk-lib/libc/sprintf.c @@ -4,7 +4,11 @@ #include <stdlib.h> #include <stdint.h> -typedef void (*emitter_t)(char, char **) OLDCALL REENTRANT; +#if defined(__PORT_mos6502) +typedef void (*emitter_t)(char, char **) REENTRANT; +#else +typedef void (*emitter_t)(char, char **) OLDCALL; +#endif static const char _hex[] = "0123456789ABCDEF"; @@ -98,12 +102,17 @@ void __printf(const char *format, emitter_t emitter, char **pData, va_list va) } } -static void _sprintf_emitter(char c, char ** pData) OLDCALL REENTRANT { +#if defined(__PORT_mos6502) +static void _sprintf_emitter(char c, char ** pData) REENTRANT +#else +static void _sprintf_emitter(char c, char ** pData) OLDCALL +#endif +{ **pData = c; (*pData)++; } -void sprintf(char *into, const char *format, ...) OLDCALL { +void sprintf(char *into, const char *format, ...) { va_list va; va_start(va, format);

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.