1/*********************************************************************** 2* * 3* This software is part of the ast package * 4* Copyright (c) 1985-2011 AT&T Intellectual Property * 5* and is licensed under the * 6* Eclipse Public License, Version 1.0 * 7* by AT&T Intellectual Property * 8* * 9* A copy of the License is available at * 10* http://www.eclipse.org/org/documents/epl-v10.html * 11* (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12* * 13* Information and Software Systems Research * 14* AT&T Research * 15* Florham Park NJ * 16* * 17* Glenn Fowler <gsf@research.att.com> * 18* David Korn <dgk@research.att.com> * 19* Phong Vo <kpv@research.att.com> * 20* * 21***********************************************************************/ 22#pragma prototyped 23 24#include "stdhdr.h" 25 26wchar_t* 27fgetws(wchar_t* s, int n, Sfio_t* f) 28{ 29 register wchar_t* p = s; 30 register wchar_t* e = s + n - 1; 31 register wint_t c; 32 33 STDIO_PTR(f, "fgets", wchar_t*, (wchar_t*, int, Sfio_t*), (s, n, f)) 34 35 FWIDE(f, 0); 36 while (p < e && (c = fgetwc(f)) != WEOF && (*p++ = c) != '\n'); 37 *p = 0; 38 return s; 39} 40 41wchar_t* 42getws(wchar_t* s) 43{ 44 register wchar_t* p = s; 45 register wchar_t* e = s + BUFSIZ - 1; 46 register wint_t c; 47 48 FWIDE(sfstdin, 0); 49 while (p < e && (c = fgetwc(sfstdin)) != WEOF && (*p++ = c) != '\n'); 50 *p = 0; 51 return s; 52} 53