exfatprogs 1.1.1 - released 2021-04-21
======================================

CHANGES :
 * mkfs.exfat: adjust the boundary alignment calculations to compensate
   for the volume offset.

NEW FEATURES :
 * mkfs.exfat: add the "--pack-bitmap" option to relocate the allocation
   bitmap to allow the FAT and the bitmap to share the same allocation
   unit on flash media.

BUG FIXES :
 * Fix wrong bit operations on 64-bit big.
 * Fix memory leaks in error paths.

exfatprogs 1.1.0 - released 2021-02-09
======================================

CHANGES :
 * fsck.exfat: recover corrupted boot region.

NEW FEATURES :
 * exfatlabel: Print or Set volume label and serial.
 * dump.exfat: Show the on-disk metadata information and the statistics.

BUG FIXES :
 * set _FILE_OFFSET_BITS=64 for Android build.

exfatprogs 1.0.4 - released 2020-07-31
======================================

CHANGES :
 * fsck.exfat: display sector, cluster, and volume sizes in the human
   readable format.
 * fsck.exfat: reduce the elapsed time using read-ahead.

NEW FEATURES :
 * mkfs.exfat: generate pseudo unique serials while creating filesystems.
 * mkfs.exfat: add the "-b" option to align the start offset of FAT and
   data clusters.
 * fsck.exfat: repair zero-byte files which have the NoFatChain attribute.

BUG FIXES :
 * Fix memory leaks on error handling paths.
 * fsck.exfat: fix the bug that cannot access space beyond 2TB.

exfatprogs 1.0.3 - released 2020-05-12
======================================

CHANGES :
 * Rename label.exfat to tune.exfat.
 * tune.exfat: change argument style(-l option for print level,
   -L option for setting label)
 * mkfs.exfat: harmonize set volume label option with tune.exfat.

NEW FEATURES :
 * Add man page.

BUG FIXES :
 * Fix the reported build warnings/errors.
 * Add memset to clean garbage in allocation.
 * Fix wrong volume label array size.
 * Open a device using O_EXCL to avoid formatting it while it is mounted.
 * Fix incomplete "make dist" generated tarball.


exfatprogs 1.0.2 - released 2020-04-23
======================================

CHANGES :
 * Rename project name to exfatprogs.
 * Replace iconv library by standard C functions mbstowcs() and wcrtomb().

NEW FEATURES :
 * Add support for Android build system.
 * label.exfat: Add support for label.exfat to set/get exfat volume label.

BUG FIXES :
 * Fix the build warnings/errors and add warning options.
 * Fix several bugs(memory leak, wrong endian conversion, zero out beyond
   end of file) and cleanup codes
 * Fix issues on big endian system and on 32bit system.


exfatprogs 1.0.1 - released 2020-04-09
======================================

NEW FEATURES :
 * mkfs.exfat: quick/full format support
 * mkfs.exfat: specify cluster size
 * mkfs.exfat: set volume label
 * fsck.exfat: consistency check support
