+
+ if (comb && cd->marc8_comb_x == 0)
+ {
+ size_t tmp_read = 0;
+ unsigned long next_x;
+
+ /* read next char .. */
+ next_x = yaz_read_marc8(cd, inp + *no_read,
+ inbytesleft - *no_read, &tmp_read);
+ /* save this x for later .. */
+ cd->marc8_comb_x = x;
+ /* save next read for later .. */
+ cd->marc8_comb_no_read = tmp_read;
+ /* return next x - thereby swap */
+ x = next_x;
+ }