aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Paland <marco@paland.com>2018-08-01 14:06:37 +0200
committerMarco Paland <marco@paland.com>2018-08-01 14:06:37 +0200
commitdeb685e7a9f15cec3a7156454ecdc282097c89e7 (patch)
treeb89aa2ff506e2963f89f5d380447e9fed8df4185
parenta07b5d4200c81b1c99ce459e341ff9a12ee7cdac (diff)
downloadprintf-deb685e7a9f15cec3a7156454ecdc282097c89e7.tar.gz
printf-deb685e7a9f15cec3a7156454ecdc282097c89e7.tar.bz2
printf-deb685e7a9f15cec3a7156454ecdc282097c89e7.zip
fix(printf): change char* to void* pointer to avoid cast-align trouble
Closes #17 again
-rw-r--r--printf.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/printf.c b/printf.c
index 5203932..0fd6569 100644
--- a/printf.c
+++ b/printf.c
@@ -74,7 +74,7 @@
// output function type
-typedef void (*out_fct_type)(char character, char* buffer, size_t idx, size_t maxlen);
+typedef void (*out_fct_type)(char character, void* buffer, size_t idx, size_t maxlen);
// wrapper (used as buffer) for output function type
@@ -85,23 +85,23 @@ typedef struct {
// internal buffer output
-static inline void _out_buffer(char character, char* buffer, size_t idx, size_t maxlen)
+static inline void _out_buffer(char character, void* buffer, size_t idx, size_t maxlen)
{
if (idx < maxlen) {
- buffer[idx] = character;
+ ((char*)buffer)[idx] = character;
}
}
// internal null output
-static inline void _out_null(char character, char* buffer, size_t idx, size_t maxlen)
+static inline void _out_null(char character, void* buffer, size_t idx, size_t maxlen)
{
(void)character; (void)buffer; (void)idx; (void)maxlen;
}
// internal _putchar wrapper
-static inline void _out_char(char character, char* buffer, size_t idx, size_t maxlen)
+static inline void _out_char(char character, void* buffer, size_t idx, size_t maxlen)
{
(void)buffer; (void)idx; (void)maxlen;
if (character) {
@@ -111,7 +111,7 @@ static inline void _out_char(char character, char* buffer, size_t idx, size_t ma
// internal output function wrapper
-static inline void _out_fct(char character, char* buffer, size_t idx, size_t maxlen)
+static inline void _out_fct(char character, void* buffer, size_t idx, size_t maxlen)
{
(void)idx; (void)maxlen;
// buffer is the output fct pointer