Do not return Z_BUF_ERROR if deflateParam() has nothing to write.

If the compressed data was already at a block boundary, then
deflateParam() would report Z_BUF_ERROR, because there was nothing
to write.  With this patch, Z_OK is returned in that case.
diff --git a/deflate.c b/deflate.c
index 4aa5afb..a942e25 100644
--- a/deflate.c
+++ b/deflate.c
@@ -513,6 +513,8 @@
         strm->total_in != 0) {
         /* Flush the last buffer: */
         err = deflate(strm, Z_BLOCK);
+        if (err == Z_BUF_ERROR && s->pending == 0)
+            err = Z_OK;
     }
     if (s->level != level) {
         s->level = level;