89 Commits

Author SHA1 Message Date
Mark Karpov a09152b92c Make ‘saveEntry’ and ‘unpackInto’ restore modification time (#47) 2018-05-24 11:00:44 +07:00
mrkkrp 756ba096f1 Enable more warnings 2018-03-21 19:04:07 +07:00
Mark Karpov e131160592 Stop depending on ‘path’, ‘path-io’, and ‘plan-b’ plus more (#43) 2018-02-09 20:33:35 +07:00
mrkkrp 1d2559e953 Compatibility with newer conduit 2018-02-05 23:05:18 +07:00
mrkkrp 88ed27108c Include 2018 into the copyright years range
[skip ci]
2018-01-01 13:59:31 +07:00
Mark Karpov a5f189f0fe Add some ‘monad-control’ instances for ‘ZipArchive’ (#38) 2017-08-08 22:27:20 +07:00
mrkkrp c00236f7d1 Use ‘ZipSink’ from the public Conduit API 2017-08-01 17:59:41 +07:00
Mark Karpov 3f187d099d Switch to the newer Conduit API (#37) 2017-07-31 21:19:13 +07:00
mrkkrp 2c9ed28477 Even more documentation improvements
[skip ci]
2017-05-24 20:29:57 +07:00
mrkkrp 2008d72f33 Refactor an ugly fragment of code 2017-05-24 18:26:40 +07:00
mrkkrp 0417b9afe0 Improve the documentation
[skip ci]
2017-05-24 18:26:34 +07:00
mrkkrp 783004da4a Update my email address
[skip ci]
2017-05-24 17:16:52 +07:00
mrkkrp 260efe3e11 Derive ‘Eq’ and ‘Ord’ for ‘EntrySelectorException’, ‘ZipException’ 2017-04-01 18:43:51 +03:00
mrkkrp 2f04ec8d75 Numerous cosmetic corrections to the docs 2017-04-01 18:40:39 +03:00
Alexey Karakulov 70123f3996 Allow any MonadResource for getEntrySource (#34) 2017-04-01 15:29:09 +03:00
mrkkrp d8d28e14d2 Fix the issue with mod time serialization on 32 bit systems
Close #32.
2017-03-04 23:36:24 +03:00
Rahul Muttineni e1b2a4eb23 Write correct number of entries to central directory with Zip64 (#31) 2017-02-25 17:40:08 +04:00
mrkkrp 5f7af58011 Remove the ‘zip64-ecd’ flag
Now that the situation is clear, I think it's pretty safe to remove this
additional run of the test suite. It's unlikely that we will run into new
Zip64-related issues.
2017-02-09 20:13:00 +03:00
mrkkrp 9511fd0e57 Fix literal overflows on 32 bit systems 2017-02-09 20:11:10 +03:00
Mark Karpov e5fe94940c Fix reading of empty Zip 64 archives
* Try to catch the Zip64 ECD issue on Travis
* Fix detection of end of central directory
2017-02-08 23:40:38 +04:00
mrkkrp 0927c6189e Include 2017 into copyright years range 2017-01-01 14:27:47 +03:00
mrkkrp e729dd9c6d Use ‘withBinaryFile’ instead of ‘withFile’
Using ‘withFile’ on Windows may lead to incorrect results, see documentation
for ‘openBinaryFile’.
2016-12-28 00:43:10 +03:00
mrkkrp 9acb0e80c2 Derive more instances for some types 2016-12-12 21:16:18 +03:00
mrkkrp 28dfc18d54 Add ‘since’ label to ‘getEntrySource’ 2016-07-22 00:30:09 +03:00
Christopher Wells 692079a784 Add examples to documentation
Add some examples of common uses of the library to the documentation.
2016-06-07 17:45:03 +07:00
mrkkrp 5d857874ba Add ‘getEntrySource’ function
Close #15.
2016-05-15 23:50:49 +07:00
mrkkrp 905328dd57 Speed up detection of invalid archives
Close #16.
2016-05-15 22:56:36 +07:00
mrkkrp 93c670fcc5 Calculate “version needed to extract” field
Close #14.

Two new features:

* Added explicit check of “version needed to extract”, so if archive
  uses some advanced features that we do not support yet, parsing fails.

* Value of “version needed to extract” field is now calculated
  dynamically with respect to actually used features, e.g. if you just
  store or deflate a not very big file, ‘2.0’ version will be
  written (previously we wrote ‘4.6’ unconditionally). This is needed to
  avoid scaring tools that can only handle basic Zip archives.
2016-04-09 14:55:44 +07:00
mrkkrp 1e7d02215c Fix a typo in description of ‘decodeText’ 2016-03-25 19:45:25 +06:00
Michael Thompson c108d12569 Update CP437.hs
One is supposed to accumulate a builder with a right fold:

 https://www.reddit.com/r/haskell/comments/35udfy/fixing_an_aeson_performance_bug_sometimes_the_old/cr94pdj

I skipped that with this attempt, which unfolds the text directly. It
seems 10 or more times as fast if I send /usr/share/dict/words through
it. ‘unfoldrN’ is a pretty strong function with text since it is
basically just replicates to the stream representation.
2016-03-05 23:54:03 +06:00
mrkkrp 26cfc197a2 Add missing word in docs 2016-03-03 21:51:14 +06:00
mrkkrp 740fe99ab7 Work around a bug in ‘path’ package
‘.’ should not be accepted as valid relative file name, it least in the
context of this package.
2016-03-02 23:22:21 +06:00
mrkkrp 52170ab594 Fix undoing 2016-03-02 17:51:35 +06:00
mrkkrp e4b4585322 Improve documentation of ‘getEntries’ and ‘commit’ 2016-03-02 16:50:54 +06:00
mrkkrp 7e6d8025f7 Add ‘doesEntryExist’ and ‘getEntryDesc’
Close #7.
2016-03-02 13:49:32 +06:00
mrkkrp c41b7529a7 Fix more bugs revealed by the new tests 2016-03-02 12:58:11 +06:00
mrkkrp e71dcfa69b Cosmetics and new bug fixes (thanks to new tests) 2016-03-01 21:39:22 +06:00
mrkkrp ab80d36aa5 Rename ‘edModified’ → ‘edModTime’ 2016-03-01 18:22:25 +06:00
mrkkrp 2f3d6c6cfa Remove redundant ‘Ord’ constraint 2016-03-01 17:41:26 +06:00
mrkkrp 167abc349e Fix bug revealed by the new tests 2016-03-01 17:19:52 +06:00
mrkkrp e18ffd269f Make it pass the tests… 2016-03-01 09:53:17 +06:00
mrkkrp a5cfdcf951 Add ‘checkEntry’ function
Close #6.
2016-03-01 09:52:03 +06:00
mrkkrp 3049c2d84d Rename ‘modifyEntries’ → ‘forEntries’ 2016-03-01 09:50:07 +06:00
mrkkrp 5f562af5c0 Improve ‘needsUnicode’ check in ‘Internal.hs’ 2016-02-29 14:47:43 +06:00
mrkkrp 3d81432d44 Minor cosmetic improvements in docs 2016-02-29 12:16:54 +06:00
mrkkrp 99dc0abf18 Improve opening phrase of main module's docs 2016-02-29 00:55:41 +06:00
mrkkrp fcb8e78eb5 Add proper support for CP437
Close #4.
2016-02-28 19:05:06 +06:00
mrkkrp ccde335847 Better typing, limit some values
Close #2.
2016-02-28 16:26:27 +06:00
mrkkrp 13388e4c86 Add ‘modifyEntries’ utility function
Close #5.
2016-02-28 15:41:37 +06:00
mrkkrp 26b96440e1 Making low-level machinery less ugly 2016-02-28 01:53:19 +06:00