1 2 3 4 5 6 7 8 9 10 11 12 13
#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) mode = f->mode = NORMALIZE(mode); FUNLOCK(f); return mode; }