Skip to content

Commit

Permalink
3.0.0rc1 is merged to the main trunk.
Browse files Browse the repository at this point in the history
  • Loading branch information
fukuchi committed Apr 17, 2008
1 parent b587b2a commit 5600a47
Show file tree
Hide file tree
Showing 25 changed files with 2,442 additions and 276 deletions.
79 changes: 78 additions & 1 deletion ChangeLog
@@ -1,3 +1,80 @@
2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net>
* Bumped version to 3.0.0.
* qrencode.[ch]:
- QRcode_encodeInput() has changed the API. Previously it takes a
QRinput, version and level, but now it takes only a QRinput, because
QRinput holds the version and level in it. From 3.0.0, you should set
them by calling QRinput_setVersion() and
QRinput_setErrorCorrectionLevel(), or use QRinput_new2() to
instantiate a QRinput object.

2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net>
* qrspe.c:
- NULL check has been added.
* split.[ch]:
- API changed.
* qrencode.c:
- Arguments (version and level) are now checked in QRcode_encodeMask().
Internal functions trust the arguments are valid.
- Error checks improved.
* qrinput.c:
- Error checks improved.
* qrencode.h:
- Documentation improvements.

2008.04.13 Kentaro FUKUCHI <fukuchi@megaui.net>
* qrencode.c, qrencode_innter.h, tests/view_qrcode.c:
- Changed API of QRcode_encodeMask().
* qrencode.[ch], qrinput.[ch], split.[ch]:
- Some functions now set errno appropriately.

2008.04.09 Kentaro FUKUCHI <fukuchi@megaui.net>
* qrencode.h, qrinput.c:
- QRinput_Struct_insertStructuredAppendHeaders() and
QRinput_insertStructuredAppendHeader now returns error, when the input
contains too many structured inputs.
* qrencode.c:
- QRcode_encodeInputToStructured() now returns NULL when
QRinput_splitQRinputToStruct() fails.
* tests/view_qrcode.c:
- Segmentation fault bug has been fixed. (see previous memo)

2008.04.08 Kentaro FUKUCHI <fukuchi@megaui.net>
* qrinput.c:
- Fixed a bug in QRinput_estimateBitStreamSizeOfEntry(). It could over-
estimate the size.
* rscode.c:
- Optimized the order of the parameters equality test in init_rs().
* qrspec.c, qrspec.h:
- Added QRspec_clearCache().
* tests/test_estimatebit.c:
- Bug fixed in test_numbit3().

2008.04.07 Kentaro FUKUCHI <fukuchi@megaui.net>
* Bumped version to 2.1.0.
* Structured append is now supported (patches from Yusuke Mihara):
- Two new types, QRcode_List and QRinput_Struct, have been added.
- Following functions have been added:
- QRcode_encodeStructuredInput()
- QRcode_encodeStringStructured()
- QRcode_encodeString8bitStructured()
- Some functions to handle structured append symbols have been added.
See Doxygen-ized descriptions for the details.
* qrenc.c:
- "-S" option has been added for structured append.
* split.h:
- "extern" was dropped.
* qrinput.h, qrencode.h:
- Moved declarations of QRinput_{get,set}{Version,ErrorCorrectionLevel}
from qrinput.h to qrencode.h. Now they are publicly accessible.
* qrencode.h, qrinput.h, qrinput.c:
- Added QRinput_new2().
- QRinput_newEntry(), QRinput_freeEntry have been renamed to
QRinput_List_newEntry(), QRinput_List_freeEntry().
* split.c:
- Bug fix: Split_eat8() now eats at least 1 byte. Previously it could
produce a 0-length input entry.

2008.01.23 Kentaro FUKUCHI <fukuchi@megaui.net>
* qrencode.1.in, Makefile.am, configure.ac:
- Manpage of qrencode has been added.
Expand All @@ -11,7 +88,7 @@
- Followed recent API changes.
- Added new test "test_toupper()".
* qrenc.c, tests/view_qrcode.c:
- Source-level compatiblity has been improved.
- Source-level compatibility has been improved.
- view_qrcode now accepts stdin like qrencode.
- Usage message has been updated/fixed.
* Copyright year has been updated.
Expand Down
45 changes: 45 additions & 0 deletions NEWS
@@ -1,6 +1,51 @@
libqrencode NEWS - Overview of changes
======================================

Version 3.0.0 (2008.4.x)
------------------------
Summary:
* A significant API change that requires to modify user applications.
* Structured append support has been added. (patches from Yusuke Mihara)
* "-S" option for structured append has been added to qrencode and view_qrcode.

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:
Expand Down
34 changes: 24 additions & 10 deletions README
@@ -1,4 +1,4 @@
libqrencode 2.0.0 - QR Code encoding library
libqrencode 3.0.0 - QR Code encoding library

GENERAL INFORMATION
===================
Expand All @@ -7,27 +7,37 @@ symbology that can be scanned by handy terminals such as a mobile phone with
CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has
high robustness.

Libqrencode accepts a string or a list of data chunks then encodes in a QR Code
symbol as a bitmap array. While other QR Code applications generate image files,
using libqrencode allows applications to render QR Code symbols from raw bitmap
data directly. This library also contains a command-line utility outputs a QR
Code symbol as a PNG image. It will help lightweight CGI programs.


SPECIFICATION
=============
Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial
Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are
not supported:
Standards) X0510:2004 or ISO/IEC 18004. Most of features in the specification
are implemented such as:
- Numeric, alphabet, Japanese kanji (Shift-JIS) or any 8 bit code can be
embedded
- Optimized encoding of a string
- Structured-append of symbols

Currently the following features are not supported:
- ECI and FNC1 mode
- Structured Append Feature
- Micro QR Code
- QR Code model 1
- QR Code model 1 (deprecated)


INSTALL
=======

Requirements
------------
Some test programs or utility tools requires SDL or PNG, but the library itself
has no dependencies. You can skip compiling those tools when if you want not to
install programs using SDL or PNG. If you are trying to compile this library on
MS-Windows, cygwin or some kinds of UNIX-like environments will be needed.
Some test programs or utility tools uses SDL or PNG, but the library itself
has no dependencies. You can skip compiling those tools if you want not to
install programs using SDL or PNG.

Compile & install
-----------------
Expand All @@ -51,7 +61,7 @@ USAGE
Basic usages of this library are written in the header file (qrencode.h).
You can generate a manual of the library by using Doxygen.

WARNING: This library is thread UNSAFE.
WARNING: Some functions are THREAD UNSAFE. See qrencode.h for the details.


LICENSING INFORMATION
Expand Down Expand Up @@ -91,3 +101,7 @@ countries.

Reed-Solomon code encoder is written by Phil Karn, KA9Q.
Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q

NANKI Haruo - improved lower-case characteres encoding
Philippe Delcroix - improved mask evaluation
Yusuke Mihara - structured-append support
9 changes: 7 additions & 2 deletions TODO
@@ -1,10 +1,15 @@
Thread unsafe.
Only two functions, QRspec_newFrame() and init_rs(), are thread unsafe, but
all of qrencode functions are thread unsafe because of them.
Version 3.0 of libqrencode will introduce semaphores to avoid this problem.
It also requires, however, a kind of init function of libqrencode such as
QRencode_init().

This package contains

*.c and *.h files (total): 5916 lines, 146312 bytes.
configure script : 22510 lines, 724802 bytes.
*.c and *.h files (total): 7967 lines, 196078 bytes.
configure script : 22511 lines, 724922 bytes.

It's absolutely crazy.

This library does not return any error code (just returns NULL silently).
2 changes: 1 addition & 1 deletion configure.ac
@@ -1,6 +1,6 @@
AC_INIT(QRencode)

MAJOR_VERSION=2
MAJOR_VERSION=3
MINOR_VERSION=0
MICRO_VERSION=0
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
Expand Down

0 comments on commit 5600a47

Please sign in to comment.