Files
semi-libc/src/stdio/fwide.c
T
Rich Felker ebd8142a6a fix incorrect return value for fwide function
when the orientation of the stream was already set, fwide was
incorrectly returning its argument (the requested orientation) rather
than the actual orientation of the stream.
2014-07-01 18:49:54 -04:00

15 lines
251 B
C

#include <wchar.h>
#include "stdio_impl.h"
#define SH (8*sizeof(int)-1)
#define NORMALIZE(x) ((x)>>SH | -((-(x))>>SH))
int fwide(FILE *f, int mode)
{
FLOCK(f);
if (!f->mode) f->mode = NORMALIZE(mode);
mode = f->mode;
FUNLOCK(f);
return mode;
}