Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Apr 22, 2012
  1. Update to v0.0.3, add release notes.

    Also fix the wrong year from previous releases in the NEWS file.
  2. Invoke progress callback once for each block.

    Testing reveals a corner case where progress output is incorrect
    because the decompression can pass over multiple blocks in a
    single call. Make sure that the progress callback is always called
    once for each block that is decompressed.
Commits on Apr 21, 2012
  1. Add initial code for MacBinary header handling.

    Once hooked in, this will allow better handling of MacLHA archives,
    by stripping off the headers that it adds in to its archives.
  2. Move CRC calculation into LHADecoder.

    This will be needed for MacBinary support.
Commits on Apr 19, 2012
  1. Regenerate MacLHA subdirectory archives.

    These archives contain a text file generated using the TeachText
    application, so the MacBinary headers have meaningful content.
Commits on Apr 18, 2012
  1. Regenerate MacLHA test archives.

    This is a more complete set of archives, covering level 0, 1 and 2,
    "full" paths and uncompressed files.
Commits on Apr 17, 2012
Commits on Apr 16, 2012
Commits on Apr 15, 2012
  1. Add missing copyright notice.

  2. Remove unnecessary #includes.

  3. Oops.

  4. Update .gitignore.

  5. Add OS type output for Amiga archives.

    Also enable checking for Amiga level1.lzh file.
Commits on Apr 14, 2012
  1. Add level 3 header decoding.

  2. Rework MS-DOS all-caps filename handling.

    MS-DOS all-caps filenames should be converted to lower case. Rework
    to correctly handle the way that level 2/3 headers handle filenames.
Commits on Apr 13, 2012
  1. Make directory entry handling consistent.

    Make file headers for directories (-lhd-) have a NULL filename when
    read from a level 0/1 header, for consistency with level 2/3 headers.
    Fix various code that assumes a non-NULL filename and sanity check to
    ensure one of either path or filename is always non-NULL.
Commits on Apr 12, 2012
  1. Parse level 2 file headers.

  2. Refactor file header parsing.

    Change the way that headers are parsed, to not make assumptions
    that are level 0/1-specific. This will allow level 2/3 decoding to
    be added.
Commits on Apr 11, 2012
  1. Only build fuzzer when doing 'make check'.

    Fixes failing compile when doing a straight 'make'. (Thanks
    Bastien Dejean)
Commits on Apr 10, 2012
  1. Fix corner case found in fuzz testing.

    If a new block is started with a length of zero, the count would
    be subtracted leading to an integer wraparound, with the result
    that the program could continue generating data indefinitely
    without any input. Use a while() loop to ensure that the new
    block has a size greater than zero, beginning a new block again
    immediately if an empty one is encountered.
  2. Add option to run decompressor input from file.

    Allows the dumped input from failing tests to be re-run and
Commits on Apr 9, 2012
  1. Refactor, dump input on crash or stall.

    Throw an alarm after 5 minutes if an iteration of the fuzz test does
    not complete, and dump the input to a file. Do the same when a SIGSEGV
    is thrown.
  2. Strip down fuzz test code and simplify.

    Genetic algorithm stuff is unnecessary now that the bit stream reader
    bug has been fixed. Just generate a block of random data and feed it
    into the decompressor.
  3. Add canary blocks around allocations.

    When fuzz testing, check that memory outside the structures used by the
    decompressors is not overwritten.
Commits on Apr 8, 2012
Something went wrong with that request. Please try again.