static char *pstrncspn( char *s, char *charset, orl_sec_size *len ) { int l = strncspn( s, charset, *len ); *len -= l; return( s + l ); }
static char *pstrncspn( char *s, char *charset, int *len ) { int l = strncspn( s, charset, *len ); *len -= l; return( s + l ); }
static const char *pstrncspn( const char *s, const char *charset, size_t *len ) { size_t l; l = strncspn( s, charset, *len ); *len -= l; return( s + l ); }
static orl_return ParseExport( char **contents, orl_sec_size *len, orl_note_callbacks *cb, void *cookie ) /*******************************************************************************************************/ { char *arg; int l; l = strncspn( *contents, ", \t", *len ); arg = alloca( l + 1 ); memcpy(arg, *contents, l); arg[l] = 0; *len -= l; *contents += l; return( cb->export_fn( arg, cookie ) ); }
static orl_return ParseDefLibEntry( char **contents, int *len, orl_return (*deflibentry_fn)( char *, void * ), void *cookie ) /************************************************************************/ { char * arg; int l; orl_return retval; for(;;) { l = strncspn( *contents, ", \t", *len ); arg = alloca(l+1); memcpy(arg, *contents, l); arg[l] = 0; *len -= l; *contents += l; retval = deflibentry_fn( arg, cookie ); if( retval != ORL_OKAY || **contents != ',' ) break; (*contents)++; } return retval; }