mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-24 14:48:16 -04:00
Fixed Z_INSERT_ONLY support in deflate_stored().
This commit is contained in:
1 parent
1492b4b2b2
commit
0301b334c7
1 file changed
+10
-5
+10
-5
@@ -1092,11 +1092,6 @@ local block_state deflate_stored(s, flush)
|
||||
max_block_size = s->pending_buf_size - 5;
|
||||
}
|
||||
|
||||
if (flush == Z_INSERT_ONLY) {
|
||||
s->block_start = s->strstart;
|
||||
return need_more;
|
||||
}
|
||||
|
||||
/* Copy as much as possible from input to output: */
|
||||
for (;;) {
|
||||
/* Fill the window as much as possible: */
|
||||
@@ -1115,6 +1110,11 @@ local block_state deflate_stored(s, flush)
|
||||
s->strstart += s->lookahead;
|
||||
s->lookahead = 0;
|
||||
|
||||
if (flush == Z_INSERT_ONLY) {
|
||||
s->block_start = s->strstart;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Emit a stored block if pending_buf will be full: */
|
||||
max_start = s->block_start + max_block_size;
|
||||
if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
|
||||
@@ -1130,6 +1130,11 @@ local block_state deflate_stored(s, flush)
|
||||
FLUSH_BLOCK(s, 0);
|
||||
}
|
||||
}
|
||||
if (flush == Z_INSERT_ONLY) {
|
||||
s->block_start = s->strstart;
|
||||
return need_more;
|
||||
}
|
||||
|
||||
FLUSH_BLOCK(s, flush == Z_FINISH);
|
||||
return flush == Z_FINISH ? finish_done : block_done;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user