Example #1
0
wint_t
fgetwc(Sfio_t* f)
{
	wchar_t	c;

	STDIO_INT(f, "fgetwc", wint_t, (Sfio_t*), (f))

	FWIDE(f, WEOF);
	return (sfread(f, &c, sizeof(c)) == sizeof(c)) ? c : WEOF;
}
Example #2
0
wchar_t*
getws(wchar_t* s)
{
	register wchar_t*	p = s;
	register wchar_t*	e = s + BUFSIZ - 1;
	register wint_t		c;

	FWIDE(sfstdin, 0);
	while (p < e && (c = fgetwc(sfstdin)) != WEOF && (*p++ = c) != '\n');
	*p = 0;
	return s;
}
Example #3
0
wchar_t*
fgetws(wchar_t* s, int n, Sfio_t* f)
{
	register wchar_t*	p = s;
	register wchar_t*	e = s + n - 1;
	register wint_t		c;

	STDIO_PTR(f, "fgets", wchar_t*, (wchar_t*, int, Sfio_t*), (s, n, f))

	FWIDE(f, 0);
	while (p < e && (c = fgetwc(f)) != WEOF && (*p++ = c) != '\n');
	*p = 0;
	return s;
}
Example #4
0
wint_t
ungetwc(wint_t c, Sfio_t* f)
{
	register unsigned char*	s = (unsigned char*)&c;
	register unsigned char*	e = s + sizeof(c);

	STDIO_INT(f, "ungetwc", wint_t, (wint_t, Sfio_t*), (c, f))

	FWIDE(f, WEOF);
	while (s < e)
		if (sfungetc(f, *s++) == EOF)
			return WEOF;
	return c;
}