end = window_pos + block_size;
while (window_pos < end) {
ret = read_huffsym_using_maintree(istream, tables,
&main_element);
if (ret != 0)
end = window_pos + block_size;
while (window_pos < end) {
ret = read_huffsym_using_maintree(istream, tables,
&main_element);
if (ret != 0)
if (main_element < LZX_NUM_CHARS) {
/* literal: 0 to LZX_NUM_CHARS - 1 */
window[window_pos++] = main_element;
} else {
/* match: LZX_NUM_CHARS to LZX_MAINTREE_NUM_SYMBOLS - 1 */
if (main_element < LZX_NUM_CHARS) {
/* literal: 0 to LZX_NUM_CHARS - 1 */
window[window_pos++] = main_element;
} else {
/* match: LZX_NUM_CHARS to LZX_MAINTREE_NUM_SYMBOLS - 1 */