Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102/clib/sscanf.c
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

37 lines
1.2 KiB
C

/**************************************************************************
*
* s s c a n f F u n c t i o n
* -----------------------------
* Copyright 1982 by Digital Research Inc. All rights reserved.
*
* "sscanf" scans the given string for items specified, and assigns
* them to user supplied variables (via pointers to these vars).
*
* Calling sequence:
* ret = sscanf(str,fmt,p1,p2,...)
* Where:
* ret = the number of items successfully matched & assigned
* EOF returned if encountered on input
* str -> a (null terminated) string to scan
* fmt -> a string specifying how to parse the input
* p1,p2,... -> where matched items get stored
*
*****************************************************************************/
#include <stdio.h>
WORD sscanf(str,fmt,ptrs)
BYTE *str;
BYTE *fmt;
BYTE *ptrs;
{
FILE spbuf, *sp;
BYTE locbuf[BUFSIZ]; /* set up a local buffer */
sp = &spbuf; /* set up a pseudo stream */
sp->_fd = -1;
sp->_flag = _IOREAD | _IOSTRI; /* readable string */
sp->_cnt = strlen(str) + 1; /* allow doscan to read NULL*/
strcpy(locbuf,str); /* copy to safe place */
sp->_base = sp->_ptr = locbuf;
return(_doscan(sp,fmt,&ptrs));
}