- /* make sure to get new previous token if this one had been used up */
- if (step->previous && !step->more_tokens){
- if (icu_chain_step_next_token(chain, step->previous, status)){
- icu_tokenizer_attach(step->u.tokenizer, src16, status);
- step->need_new_token = 0;
- step->more_tokens
- = icu_tokenizer_next_token(step->u.tokenizer,
- step->buf16, status);
- }
+
+ /* make sure to get new previous token if this one had been used up
+ by recursive call to _same_ step */
+
+ if (!step->more_tokens)
+ {
+ step->more_tokens = icu_chain_step_next_token(chain, step, status);
+ return step->more_tokens; /* avoid one token count too much! */