loop { // Make sure that we always have enough lookahead, except // at the end of the input file. We need STD_MAX_MATCH bytes // for the next match, plus WANT_MIN_MATCH bytes to insert the // string following the next match. if stream.state.lookahead < MIN_LOOKAHEAD {
fill_window(stream); if stream.state.lookahead < MIN_LOOKAHEAD && flush == DeflateFlush::NoFlush { return BlockState::NeedMore;
} if stream.state.lookahead == 0 { break; /* flush the current block */
}
}
/* See how many times the previous byte repeats */ let state = &mut stream.state; if state.lookahead >= STD_MIN_MATCH && state.strstart > 0 { let scan = &state.window.filled()[state.strstart - 1..][..3 + 256];
/* Emit match if have run of STD_MIN_MATCH or longer, else emit literal */ if match_len >= STD_MIN_MATCH { // check_match(s, s->strstart, s->strstart - 1, match_len);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.