projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
all printf variants: fix argument type handling for %c and %lc
[musl]
/
src
/
stdio
/
fwide.c
diff --git
a/src/stdio/fwide.c
b/src/stdio/fwide.c
index
fdf8e4b
..
8bab634
100644
(file)
--- a/
src/stdio/fwide.c
+++ b/
src/stdio/fwide.c
@@
-1,13
+1,16
@@
#include <wchar.h>
#include "stdio_impl.h"
#include <wchar.h>
#include "stdio_impl.h"
-
-#define SH (8*sizeof(int)-1)
-#define NORMALIZE(x) ((x)>>SH | -((-(x))>>SH))
+#include "locale_impl.h"
int fwide(FILE *f, int mode)
{
FLOCK(f);
int fwide(FILE *f, int mode)
{
FLOCK(f);
- if (!f->mode) mode = f->mode = NORMALIZE(mode);
+ if (mode) {
+ if (!f->locale) f->locale = MB_CUR_MAX==1
+ ? C_LOCALE : UTF8_LOCALE;
+ if (!f->mode) f->mode = mode>0 ? 1 : -1;
+ }
+ mode = f->mode;
FUNLOCK(f);
return mode;
}
FUNLOCK(f);
return mode;
}