vsscanf.c revision 76726
150276Speter/* 250276Speter * This function is needed to support vwscanw 350276Speter */ 450276Speter 550276Speter#include <curses.priv.h> 650276Speter 750276Speter#if !HAVE_VSSCANF 850276Speter 976726SpeterMODULE_ID("$Id: vsscanf.c,v 1.12 2000/12/10 02:43:28 tom Exp $") 1050276Speter 1150276Speter#if defined(_IOREAD) && defined(_NFILE) 1250276Speter/*VARARGS2*/ 1376726SpeterNCURSES_EXPORT(int) 1476726Spetervsscanf 1576726Speter(const char *str, const char *format, va_list ap) 1650276Speter{ 1776726Speter /* 1876726Speter * This code should work on anything descended from AT&T SVr1. 1976726Speter */ 2076726Speter FILE strbuf; 2150276Speter 2276726Speter strbuf._flag = _IOREAD; 2376726Speter strbuf._ptr = strbuf._base = (unsigned char *) str; 2476726Speter strbuf._cnt = strlen(str); 2576726Speter strbuf._file = _NFILE; 2650276Speter 2750276Speter#if HAVE_VFSCANF 2876726Speter return (vfscanf(&strbuf, format, ap)); 2950276Speter#else 3076726Speter return (_doscan(&strbuf, format, ap)); 3150276Speter#endif 3250276Speter} 3350276Speter#else 3450276Speter/*VARARGS2*/ 3576726SpeterNCURSES_EXPORT(int) 3676726Spetervsscanf 3776726Speter(const char *str, const char *format, va_list ap) 3850276Speter{ 3976726Speter /* 4076726Speter * You don't have a native vsscanf(3), and you don't have System-V 4176726Speter * compatible stdio internals. You're probably using a BSD 4276726Speter * older than 4.4 or a really old Linux. You lose. Upgrade 4376726Speter * to a current C library to win. 4476726Speter */ 4576726Speter return -1; /* not implemented */ 4650276Speter} 4750276Speter#endif 4850276Speter#else 4976726Speterextern 5076726SpeterNCURSES_EXPORT(void) 5176726Speter_nc_vsscanf(void); /* quiet's gcc warning */ 5276726SpeterNCURSES_EXPORT(void) 5376726Speter_nc_vsscanf(void) 5476726Speter{ 5576726Speter} /* nonempty for strict ANSI compilers */ 5650276Speter#endif /* !HAVE_VSSCANF */ 57