exported hcl_readchar() and hcl_unreadchar()
This commit is contained in:
parent
71d024837d
commit
d4d9491f3c
16
lib/hcl.h
16
lib/hcl.h
@ -1497,6 +1497,7 @@ HCL_EXPORT hcl_oop_t hcl_read (
|
||||
hcl_t* hcl
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT int hcl_print (
|
||||
hcl_t* hcl,
|
||||
hcl_oop_t obj
|
||||
@ -1513,6 +1514,21 @@ HCL_EXPORT int hcl_decode (
|
||||
hcl_ooi_t end
|
||||
);
|
||||
|
||||
|
||||
/* if you should read charcters from the input stream before hcl_read(),
|
||||
* you can call hcl_readchar() */
|
||||
HCL_EXPORT hcl_iolxc_t* hcl_readchar (
|
||||
hcl_t* hcl
|
||||
);
|
||||
|
||||
/* If you use hcl_readchar() to read the input stream, you may use
|
||||
* hcl_unreadchar() to put back characters read for hcl_readchar()
|
||||
* to return before reading the stream again. */
|
||||
HCL_EXPORT int hcl_unreadchar (
|
||||
hcl_t* hcl,
|
||||
const hcl_iolxc_t* c
|
||||
);
|
||||
|
||||
/* =========================================================================
|
||||
* SYNTAX ERROR HANDLING
|
||||
* ========================================================================= */
|
||||
|
19
lib/read.c
19
lib/read.c
@ -2402,3 +2402,22 @@ void hcl_detachio (hcl_t* hcl)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hcl_iolxc_t* hcl_readchar (hcl_t* hcl)
|
||||
{
|
||||
int n = get_char(hcl);
|
||||
if (n <= -1) return HCL_NULL;
|
||||
return &hcl->c->lxc;
|
||||
}
|
||||
|
||||
int hcl_unreadchar (hcl_t* hcl, const hcl_iolxc_t* c)
|
||||
{
|
||||
if (hcl->c->nungots >= HCL_COUNTOF(hcl->c->ungot))
|
||||
{
|
||||
hcl_seterrnum (hcl, HCL_EBUFFULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
unget_char (hcl, c);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user