MCPcopy Create free account
hub / github.com/Entware/Entware / input

Function input

scripts/config/lexer.lex.c:3311–3383  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3309 static int yyinput (void)
3310#else
3311 static int input (void)
3312#endif
3313
3314{
3315 int c;
3316
3317 *(yy_c_buf_p) = (yy_hold_char);
3318
3319 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3320 {
3321 /* yy_c_buf_p now points to the character we want to return.
3322 * If this occurs *before* the EOB characters, then it's a
3323 * valid NUL; if not, then we've hit the end of the buffer.
3324 */
3325 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3326 /* This was really a NUL. */
3327 *(yy_c_buf_p) = '\0';
3328
3329 else
3330 { /* need more input */
3331 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
3332 ++(yy_c_buf_p);
3333
3334 switch ( yy_get_next_buffer( ) )
3335 {
3336 case EOB_ACT_LAST_MATCH:
3337 /* This happens because yy_g_n_b()
3338 * sees that we've accumulated a
3339 * token and flags that we need to
3340 * try matching the token before
3341 * proceeding. But for input(),
3342 * there's no matching to consider.
3343 * So convert the EOB_ACT_LAST_MATCH
3344 * to EOB_ACT_END_OF_FILE.
3345 */
3346
3347 /* Reset buffer status. */
3348 yyrestart( yyin );
3349
3350 /*FALLTHROUGH*/
3351
3352 case EOB_ACT_END_OF_FILE:
3353 {
3354 if ( yywrap( ) )
3355 return 0;
3356
3357 if ( ! (yy_did_buffer_switch_on_eof) )
3358 YY_NEW_FILE;
3359#ifdef __cplusplus
3360 return yyinput();
3361#else
3362 return input();
3363#endif
3364 }
3365
3366 case EOB_ACT_CONTINUE_SCAN:
3367 (yy_c_buf_p) = (yytext_ptr) + offset;
3368 break;

Callers 1

expand_tokenFunction · 0.85

Calls 2

yy_get_next_bufferFunction · 0.85
yyrestartFunction · 0.85

Tested by

no test coverage detected