- int retval = trns->execute (trns->aux, c, case_nr);
- if (retval == TRNS_CONTINUE)
- i++;
- else if (retval >= 0)
- i = retval + trns->idx_ofs;
- else
- return retval == TRNS_END_CASE ? i + 1 : retval;
+ int retval;
+
+ retval = trns->execute (trns->aux, c, case_nr);
+ switch (retval)
+ {
+ case TRNS_CONTINUE:
+ i++;
+ break;
+
+ case TRNS_END_CASE:
+ return i + 1;
+
+ case TRNS_DROP_CASE:
+ case TRNS_ERROR:
+ case TRNS_END_FILE:
+ return retval;
+
+ default:
+ i += retval;
+ assert (i <= chain->trns_cnt);
+ break;
+ }