[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33133: 26.1.50; zlib-decompress-region too rigid
From: |
Noam Postavsky |
Subject: |
bug#33133: 26.1.50; zlib-decompress-region too rigid |
Date: |
Tue, 30 Oct 2018 20:25:10 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Eli Zaretskii <eliz@gnu.org> writes:
>> +data. If @var{allow-partial} is @code{nil}, on failure, the function
>
> We usually say "nil or omitted" for optional arguments. Also, I'd say
> "then on failure, ...", otherwise this could be misinterpreted as if
> "on failure" qualifies the "is nil" part.
>
> Same comment regarding the doc string of the function.
Makes sense, done.
>> +leaves the region unchanged and returns @code{nil}. Otherwise, it
>> +returns the number of bytes that were not decompressed and replaces
>> +the region text by whatever data was successfully decompressed. This
>> +function can be called only in unibyte buffers.
>
> Maybe it would make sense here to say that this emulates what 'gzip'
> does?
Hmm, maybe. I've added a mention of this, not sure if it actually
helps.
>> + Lisp_Object ret = Qt;
>> if (inflate_status != Z_STREAM_END)
>> + {
>> + if (!NILP (allow_partial))
>> + ret = make_int (iend - pos_byte);
> Hmm... should we display a warning message, like gzip does?
Not unconditionally, I'd say. In the example which prompted this bug
thread, a warning would just be a nuisance. We could just leave it up
to the caller to print a warning message if they want, e.g.:
(unless (eq t (zlib-decompress-region START END t))
(message "Incomplete decompression"))
Or perhaps instead of returning the byte count, return an error
indicator which the caller could use to contruct a warning message (this
could allow for a slightly more specific message)? Or maybe it's easier
if the ALLOW-PARTIAL parameter could have another possible value to
control display of the warning message?
v2-0001-Allow-partial-decompression-Bug-33133.patch
Description: patch