libqrencode NEWS - Overview of changes
======================================

Version 3.1.1 (2010.2.3)
------------------------
* A bug in the library has been fixed.

Release Note:

Libqrecode had generated incorrect QR Code in some cases. Symbols larger than
version 5 (error correction level Q and H) were affected. In many cases this
bug did not cause serious damage thanks to the error correction mechanism, but
we highly recommend you to encode symbols again using this release.

Version 3.1.0 (2009.6.6)
------------------------
* Various code cleanups and performance improves.
* Strict internal error checks have been added.
* "--without-tests" has become default setting. Specify "--with-tests" to
  compile test programs.
* Some memory leak bugs have been fixed.

Release Note:

This release focuses on the code cleanup and performance improve. Encoding time
has been improved, drastically in large symbols. Basically this update only
changes its internal code. The API is not changed, no need to recompile user
applications that includes only qrencode.h. If your application refers the
internal data representation (not recommended), see ChangeLog for further
information.

Version 3.0.3 (2008.6.1)
------------------------
* Portability enhancement. (Thanks to Gavan Fantom)
* The command line tool "qrencode" now accepts long options. See the man page
  for the detailed instruction.

Release Note:

This release improves the portability of our command line tool "qrencode".
The library is not changed so that any applications using libqrencode are not
affected.

From this release, qrencode accepts "long" options, such as "--help". See the
manpage for the detailed instructions.

Qrencode now uses getopt_long() instead of getopt_long_only() which is not
available in some operating systems. If the getopt_long() is not provided or
the implementation of it is not compatible with GNU's one, please try
qrencode-3.0.3-gnulib, that contains the source code of the getopt_long().
Gnulib version is a test release. If you feel happy with it, please let us know
and the future releases will include gnulib.

Version 3.0.2 (2008.5.18)
-------------------------
* Some compile-time warnings/erros with g++ have been fixed.
  (Thanks to wangsai)
* The bit order of "Version information" has been corrected.
  Symbols greater than version 6 were affected. (Thanks to Paul Janssesn)
* The "--without-tests" option has been added to the configure script.

Version 3.0.1 (2008.5.9)
------------------------
* A bug fix for non-POSIX platform. (Thanks to Paul Janssens)
* The RPM spec file now packages the man page correctly.

Version 3.0.0 (2008.4.30)
-------------------------
* The interface of QRencode_encodeInput() has been changed. User applications
  using it must be modified.
* Structured append support has been added. (patches from Yusuke Mihara)
* The "-S" option for structured append has been added to qrencode and
  view_qrcode.
* Some functions now set errno to indicate errors.
* Some bug fixes.

Release Note:

Now libqrencode supports "structured-append" of symbols. A large data set can
be split into multiple QR code symbols. The basic usage of structured-append
is not so different from the single symbol encoding: just call
QRcode_encodeStringStructured() or QRcode_encodeString8bitStructured() and
they return a list of symbols. Instead of giving a string, you can encode
an explicitly typed data. See the manual generated by Doxygen for the detailed
usage.

Many thanks to Yusuke Mihara, who contributed a patch to add support of
structured-append to version 1.0.2.

API changes:
* Incompatible API changes:
  - QRencode_encodeInput
* New types:
  - QRinput_Struct
  - QRcode_List
* New functions:
  - QRinput_new2
  - QRinput_Struct_new
  - QRinput_Struct_setParity
  - QRinput_Struct_appendInput
  - QRinput_Struct_free
  - QRinput_Struct_insertStructuredAppendHeaders
  - QRinput_splitQRinputToStruct
  - QRcode_encodeStructuredInput
  - QRcode_encodeStringStructured
  - QRcode_encodeString8bitStructured
  - QRcode_List_size
  - QRcode_List_free
* Declarations moved to qrencode.h:
  - QRinput_getErrorCorrectionLevel
  - QRinput_setErrorCorrectionLevel
  - QRinput_getVersion
  - QRinput_setVersion

Version 2.0.0 (2008.1.24)
--------------------------
Summary:
* "-i" option to ignore case distinctions has been added to qrencode and
  view_qrcode.
* "-c" option (case-sensitive mode) of qrencode is now enabled by default and
  has been improved. See details in Release Note section.
* "-8" option has been added to qrencode to encode whole data in 8-bit mode.
* tests/view_qrcode now accepts various options like qrencode.
* Man page has been added.
* Code cleanup.
* The mask evaluation bug has been fixed. (Philippe Delcroix)

* API changes
  - QRcode_encodeString() now receives case-sensitive flag.
  - QRcode_encodeStringCase() has been removed.
  - QRcode_encodeString8bit() has been added.

Release Note:

Previously libqrencode encodes lower-case alphabet characters in Alphabet-
Numeric mode (upper-case alphabet and numeric) by default. According to the
specification of QR code, however, it is clearly claimed that Alphabet-Numeric
mode provides only upper-case alphabet (+ numeric and some symbol) characters.
Since this version, libqrencode distinguishes lower-case and upper-case of
alphabet characters by default. Because of that, "-c" option of qrencode
is now deprecated, and "-i" option has been added. By giving "-i", qrencode
converts lower-case characters to upper-case if possible, then encode a QR code
symbol. Please read qrencode.h for the details about API changes if you are
going to use this library.

Many thanks to NANKI Haruo for his suggestions.

Version 1.0.2 (2007.03.24)
--------------------------
* A small bug fix. (Thanks to NANKI Haruo)
* 'extern "C"' barrier has been added to qrencode.h.

Version 1.0.1 (2006.12.27)
--------------------------
* Added "force 8-bit encoding mode".
* Configure script finds libpng's header correctly.

Version 1.0.0 (2006.12.12)
--------------------------
* The first public release.
