ref: 2d59d75e3a4faa51bfc146f70aea7734cd8bb9ef
parent: 9ea93a5fd347a04ed409c46410cd5ead033c0695
author: Ori Bernstein <[email protected]>
date: Sun Jul 19 10:14:14 EDT 2020
stdio: fix warnings, make code more standard Masking with _IO_CHMASK after the assignment causes a warning. We're better off masking before, but casting the assignment to prevent sign extension.
--- a/sys/include/ape/stdio.h
+++ b/sys/include/ape/stdio.h
@@ -106,7 +106,7 @@
#define getchar() getc(stdin)
extern char *gets(char *);
extern int putc(int, FILE *);
-#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):((*(f)->wp++=(c))&_IO_CHMASK))
+#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(unsigned char*)(f)->wp++=(c)&_IO_CHMASK))
extern int _IO_putc(int, FILE *);
extern int putchar(int);
#define putchar(c) putc(c, stdout)
--- a/sys/include/stdio.h
+++ b/sys/include/stdio.h
@@ -92,7 +92,7 @@
#define getchar() getc(stdin)
char *gets(char *);
int putc(int, FILE *);
-#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):((*(f)->wp++=(c))&_IO_CHMASK))
+#define putc(c, f) ((f)->wp>=(f)->rp?_IO_putc(c, f):(*(unsigned char*)(f)->wp++=(c)&_IO_CHMASK))
int _IO_putc(int, FILE *);
int putchar(int);
#define putchar(c) putc(c, stdout)