archie/prospero/lib/pfs/qsscanf.c
2024-05-27 16:13:40 +02:00

44 lines
1.2 KiB
C

/* qsscanf.c
Author: Steven Augart (swa@isi.edu)
Designed, Documented, and Written: 7/18/92 -- 7/27/92
Ported from Gnu C to full ANSI C & traditional C, 10/5/92
& modifier added, detraditionalized: 2/16/93.
Made a wrapper around qscanf(), 3/2/93
*/
/* Copyright (c) 1992, 1993 by the University of Southern California. */
/* For copying and distribution information, see the file <usc-copyr.h> */
#include <usc-copyr.h>
#include <stdarg.h> /* ANSI variable arguments facility. */
#include <pfs.h>
#include <pparse.h>
int
qsscanf(const char *s, const char *fmt, ...)
/* s: source string
fmt: format describing what to scan for.
remaining args: pointers to places to store the data we read, or
integers (field widths).
*/
{
va_list ap; /* for varargs */
int retval;
INPUT_ST in_st;
INPUT in = &in_st;
/* Otherwise vqscanf will fail an assertion*/
if (!s || s[0] == '\0') return 0;
in->sourcetype = IO_STRING;
in->rreq = NULL;
in->s = s;
in->file = NULL;
in->flags = PERCENT_R_TARGET_IS_STRING;
va_start(ap, fmt);
retval = vqscanf(in, fmt, ap);
va_end(ap);
return retval;
}