summaryrefslogtreecommitdiff
path: root/libarchive/archive_write_add_filter_compress.c
Commit message (Collapse)AuthorAgeFilesLines
* Implement private state logic for write filtersMartin Matuska2019-12-061-5/+0
| | | | | | | | | This ensures that filters may be opened and closed only once and __archive_write_filter() may be called only on an open filter. Refactor filter open code and move logic to archive_write.c Fixes #351
* Refactor archive_write_close_filter logicJoerg Sonnenberger2019-11-271-7/+3
|
* archive_write_filter_compress: free state in free handlerJoerg Sonnenberger2019-11-271-3/+4
|
* Replace deprecated macro ARCHIVE_COMPRESSION_* by ARCHIVE_FILTER_*.Michihiro NAKAJIMA2012-10-091-2/+2
|
* Fix the error which Clang Static Analyzer says "Division by zero".Michihiro NAKAJIMA2012-02-271-1/+1
|
* On Visual Studio, Enable Warning 4244: 'conversion' conversion from 'type1'Michihiro NAKAJIMA2012-02-191-3/+3
| | | | to 'type2', possible lose of data.
* The size of output buffer should be the multiple number of the write block sizeMichihiro NAKAJIMA2012-01-061-1/+11
| | | | | | in order to reduce an extra copy of output data at archive_write.c. SVN-Revision: 4090
* Issue 176: Const-ify several static arrays.Michihiro NAKAJIMA2011-09-011-1/+1
| | | | SVN-Revision: 3666
* Canonicalize spelling of "less than or equal to": "<=", not "=<".Colin Percival2011-08-161-1/+1
| | | | | | Via: Tarsnap SVN-Revision: 3629
* Properly return an error code; do not overwirte an error code with a return codeMichihiro NAKAJIMA2011-03-211-2/+4
| | | | | | | | of __archive_write_close_filter(); Found with Clang Static Analyzer. SVN-Revision: 3045
* __archive_write_filter returns a status, not a count of bytes written.Tim Kientzle2010-10-311-3/+2
| | | | | | Correct the bzip2 and compress writers. SVN-Revision: 2773
* I think I've now removed every off_t from the format handlers.Tim Kientzle2010-05-311-1/+1
| | | | SVN-Revision: 2436
* Open a door to changing the current abort-on-state-failure behavior:Tim Kientzle2010-03-011-2/+2
| | | | | | | | | | | | | | | * Change __archive_check_magic to return a status code. * Change callers to use the archive_check_magic() wrapper macro, which calls __archive_check_magic and returns immediately if there's an ARCHIVE_FATAL status. * Update a bunch of API calls to actually do magic state checks. I've also changed __archive_check_magic around a little bit: * Magic number checks still call abort(). * State failures still call abort() * Starting with libarchive 3.0, state failures will return ARCHIVE_FATAL. SVN-Revision: 2003
* The only place blocking is really needed is just before callingTim Kientzle2010-02-211-0/+1
| | | | | | | | | the client write functions. So I've moved all of the blocking code (that used to be duplicated in every compression filter) into archive_write.c in the code that wraps the client callbacks. As a result, add_filter_none is a true no-op. SVN-Revision: 1936
* Stackable write filter support. This ended up touching an awful lotTim Kientzle2010-02-201-0/+443
of files. But, the old API is supported almost entirely unchanged, which I wasn't certain would be possible. Big changes: * You can add more than one write filter by using archive_write_add_filter_{bzip2,compress,gzip,lzma,xz}. This will be more interesting when we have uuencode, RPM, encryption. * The old archive_write_set_compression_XXXX are shorthands for "remove all the current filters and add this one." They're deprecated and scheduled to be removed in libarchive 4.0. * The internal API and life cycle for write filters has been rationalized: create, set options, open, write, close, free. * New utility functions provide information about each filter when there's more than one: code, name, and number of bytes processed * Old archive_bytes_compressed(), etc, are implemented in terms of the more generic new functions. * The read side was generalized to also support the new utility functions. In particular, the write filters are much simpler since each one doesn't have to deal with blocking. In this version, there's still a "write_add_filter_none" that handles blocking, but I think I'll soon fold that down into the client wrapper and add_filter_none will become a no-op. I think this also gets us a big step closer to multi-volume support on the write side. SVN-Revision: 1920