summaryrefslogtreecommitdiff
path: root/src/stdio/fwide.c
blob: f4da47f6da8ceca422dee4f6c4b1ad45af045ca5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
#include "stdio_impl.h"

#define SH (8*sizeof(int)-1)
#define NORMALIZE(x) ((x)>>SH | -((-(x))>>SH))

int fwide(FILE *f, int mode)
{
	if (!f->mode) f->mode = NORMALIZE(mode);
	return f->mode;
}