+ harbour/contrib/hbzebra/datamtrx.c
* harbour/contrib/hbzebra/hbzebra.hbp
* harbour/contrib/hbzebra/hbzebra.ch
+ added DataMatrix 2D barcode support
; implemented ASCII encoding only. This is enough for most real
life applications, but it is only a minor part of available
codeword encodings. I just unable to implement without docs.
Reverse engineering of black and white dots take a lot of time
for 2D barcodes, so I've dropped this idea. If someone has
full ISO/IEC 16022:2006 specification, I can implement the rest.
* harbour/contrib/hbzebra/tests/testcair.prg
+ added DataMatrix test
; Please, add it to other backend tests
* harbour/contrib/hbzebra/core.c
* changed bitbuffer logic a little
* harbour/contrib/hbzebra/pdf417.c
* comment added
* small cleanup
* package/winuni/mpkg_win_uni.bat
! Fixed to install all .hbc files inside the contrib
dir structure. This is needed because now they exist
also under '3rd' dirs, referenced from contrib .hbc files.
(lightly tested, will find out with next nightly)
* contrib/hbzebra/hbzebra.hbc
! Deleted no more needed reference to hbcairo.hbc
* contrib/hbzebra/tests/testwin.prg
* Trying to figure what's best way to round off coordinates
to the stupid integers the winapi requires. Patch it further
if you know better.
* bin/hb3rdpat.hbs
+ Clarification to help text, by Tamas.
* harbour/contrib/hbzebra/hbzebra.ch
* harbour/contrib/hbzebra/hbzebra.h
* harbour/contrib/hbzebra/hbzebra.hbp
+ harbour/contrib/hbzebra/pdf417.c
+ added two-dimensional PDF417 barcode support
HB_ZEBRA_PDF417( cData, [ nFlags ] [, nDataColumns ] ) --> hZebra
; This requires testing on real scanners. F.e., some internet online
PDF417 decoders does not allow encoding mode switching from numeric
to text. Though I see no reason to be this prohibited by
specification.
* harbour/contrib/hbzebra/drawcore.c
+ implemented 2D barcode drawing
* changed argument error logic to generate RTE from Harbour level
* harbour/contrib/hbzebra/testcair.prg
* harbour/contrib/hbzebra/testhpdf.prg
* harbour/contrib/hbzebra/testwin.prg
* included new barcode into test samples
* contrib/hbwin/tests/testcom1.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/win_tcom.prg
* contrib/hbwin/win_com.c
! Fixed samples to not query error value (since it RTEs if
the port is not open)
+ WIN_COMISVALID( <nPort> ) -> <l> added to check if port number is a valid one.
+ WIN_COMERRORCLEAR( <nPort> ) added to clear last error.
! WIN_COMERROR() changed to not clear the error on read.
+ WIN_COM():ERROR() method added to retrieve last error in numeric form.
* Samples changed to use :ERRORTEXT() to show errors.
; INCOMPATIBLE changes.
; DISCLAIMER: I'm not a user of this, so to raise your chances for
a fix, pls submit patches. I also couldn't spend huge
time to rethink the whole concept of these interfaces.
IOW: Contribute.
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
+ Converted to UTF8. (from cp1252 and KOI8)
; I didn't make any tests and nobody commented about this, hopefully
it will work. Pls test it.
* utils/hbmk2/hbmk2.prg
! Adjusted the way Harbour dynlib is calculated for cygwin, after
making it a platform.
+ Added feedback when platform is redetected along compiler autodetection
process.
* contrib/hbzebra/d_gen.c
+ Implemented C level callback interface.
+ .prg level codeblock callback interface reimplemented on above
generic layer.
; So now there is a pure C level callback mechanism and the
.prg level HB_ZEBRA_DRAW() builds upon this.
* contrib/hbzebra/d_hpdf.c
! Silenced msvc warning.
* contrib/hbzebra/hbzebra.hbp
+ contrib/hbzebra/d_hpdf.c
+ contrib/hbzebra/d_win.c
+ contrib/hbzebra/tests/testhpdf.prg
+ contrib/hbzebra/tests/testwin.prg
+ Added Windows DC renderer
+ Added libharu renderer
; TODO: rework current rendering solution. Thinking about
callback based solution, to give it a smoother layout.
Current system has too much interdependencies and
too much redundancy even in renderer "plugins".
* utils/hbmk2/hbmk2.prg
+ Readded PathNormalize() calls missed after prev modif.
* src/common/hbver.c
+ Added support for hb_iswin*() and HB_OSISWIN*() functions
on MS-DOS platforms.
Please test them.
; TODO: Detection of 2K and Vista isn't currently implemented,
but can be added if someone knows how to detect them.
+ harbour/contrib/hbzebra
+ harbour/contrib/hbzebra/hbzebra.ch
+ harbour/contrib/hbzebra/hbzebra.h
+ harbour/contrib/hbzebra/core.c
+ harbour/contrib/hbzebra/codabar.c
+ harbour/contrib/hbzebra/code11.c
+ harbour/contrib/hbzebra/code128.c
+ harbour/contrib/hbzebra/code39.c
+ harbour/contrib/hbzebra/code93.c
+ harbour/contrib/hbzebra/eanupc.c
+ harbour/contrib/hbzebra/itf.c
+ harbour/contrib/hbzebra/msi.c
+ harbour/contrib/hbzebra/hbzebra.hbc
+ harbour/contrib/hbzebra/hbzebra.hbp
+ added barcode library. It supports these types of barcodes: EAN-13,
EAN-8, UPC-A, UPC-E, Code 128, Code 93, Code 39, Code 11, Codabar,
Interleave 2 of 5 (ITF), MSI.
Library has both C and Harbour level API functions. GC pointers
are used to store Zebra structures in Harbour items.
Current impementation has Cairo draw backend only. Draw A different
backends can be added
Harbour level API:
hb_zebra_create_<type>( cCode [, nFlags ] ) --> hZebra
hb_zebra_destroy( hZebra )
hb_zebra_geterror( hCairo ) --> nError
hb_zebra_getcode( hCairo ) --> cPrintableCode
hb_zebra_draw_cairo( hZebra, hCairo, nX, nY, nLineWidth, nHeight [, nFlags ] ) --> hZebra
+ harbour/contrib/hbzebra/tests
+ harbour/contrib/hbzebra/tests/test1.prg
+ harbour/contrib/hbzebra/tests/hbmk.hbm
+ added test app to generate barcodes. Creates .pdf and .png output,
uses Cairo backend to draw barcode
; TODO: (my todo list with low priority)
- 2-digit and 5-digit supplemental barcodes for EAN13
- draw EAN, UPC barcode in native format
- 2D barcode support
- PDF417
; If someone has real scanner it would be nice to do tests and get feedback.
; I guess I've implemented Code 128 encoding (code set selection, etc) that
generates the optimal (shortest) barcode. If someone can find a sample of
barcode that encodes the same data and is shorter than hbzebra's barcode,
please inform me.
; Make system is not working and a requires to be fixed by someone!
This library has properties that possibly could not be solved in current
make implementation. It can have multiple draw backends: Cairo, Win32 GDI,
GD, ASCII art, libharu, etc. These depends on system and installed
packages. I do not know howto put all backends into the same hbzebra
library. A separate library for each backend seems to be wasteful way to
solve a problem, because draw backend implements only one function (a few
more functions should be implemented to support EAN/UPC native draw, some
2D barcodes, but backend code size is small).
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
% Normalizing doc .txt files.
* INSTALL
* Made TDM again the recommended mingw compiler, as apparently
official version 4.5.0-1 has a random crash bug (in dbfnsx.c
usually).
WARNING: TDM 4.5.1 has another bug, which prevent it from
working, so stick with 4.5.0, DWARF2 build recommended.
WARNING2: TDM 4.5.0 installation might be tricky. Read devel list.
* contrib/hbhpdf/harupdf.c
! More fixes by Saulius Zrelskis, in recently added libharu
wrappers.
* package/winuni/RELNOTES
* Updated C compiler name.
* harbour/src/rdd/sdf1.c
! fixed bug in SDF import procedure - many thanks
to Enrico Maria Giordano for reporting the problem
and to Vicente Guerra for locating the reason
BTW fix committed to xHarbour may work but it's not correct,
I suggest to update it.
* harbour/src/rtl/hbdyn.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/contrib/hbct/bitnum.c
* harbour/contrib/hbwin/olecore.c
* pacified some of MSVC6 warnings reported by Andi
* harbour/utils/Makefile
* added internal/developers build switch
+ contrib/hbexpat/3rd/expat/expat.dif
* contrib/hbexpat/3rd/expat/expat.hbp
+ Added .dif file.
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* Updated .dif file.
; NOTE: Previous failures were caused by .hbs extension being
associated with hbrun and I relied on this when running
hb3rdpat.hbs. It wouldn't work this way, and I experienced
various unexpected behavior in such case with other scripts
too in the past. So moral of the story, always use
'hbrun <name>.hbs', at least on Windows.
* harbour/include/hbcompdf.h
* harbour/include/hbexprb.c
* harbour/src/common/expropt1.c
+ added protection against pushing series of parameters on HVM
stack by hb_arrayToParams() function used in wrong contects,
i.e.:
var := hb_arrayToParams( { 1, 2, 3 } )
Possible TODO: add compile time warning in such case.
* harbour/contrib/hbexpat/3rd/expat/_hbconf.h
* harbour/contrib/hbexpat/3rd/expat/expat.hbp
* harbour/contrib/hbexpat/3rd/expat/xmltok.c
* harbour/contrib/hbexpat/3rd/expat/xmlrole.c
* harbour/contrib/hbexpat/3rd/expat/xmlparse.c
* updated to define endian setting using information from hbdefs.h
* harbour/contrib/hbexpat/3rd/expat/xmltok.c
! added missing members in structure initializations
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
! Fixed to enable win-specific dynamic lib related option
only on win platform.
* doc/xhb-diff.txt
! Minor typo.
* harbour/contrib/xhb/xhb.hbp
* harbour/contrib/xhb/xhb.hbx
+ harbour/contrib/xhb/xhbarrex.c
+ added ASIZEALLOC(), ALENALLOC() xHarbour functions
In Harbour they are in practice useless because we are using
dynamic array preallocation not static one as in xHarbour.
* harbour/doc/xhb-diff.txt
+ added information about HB_ARRAYTOPARAMS() function
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
! Do not apply HB_QTPOSTFIX to rcc tool.
* utils/hbmk2/hbmk2.prg
+ Added two potential TOFIXes. I'd be grateful is something
could get to the end of them.
* package/harbour.spec
! Fixed messed accents.
; QUESTION: Can we switch this file to UTF-8? It contains
translations to multiple different languages,
so current state is already not very optimal.
Anyone?
* ChangeLog
+ Added TODO to prev. (HB_BUILD_EXTDEF -> HB_BUILD_3RDEXT)
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/hbmk2.prg
* config/detfun.mk
* config/detect.mk
* INSTALL
* Terminology cleanup: "external code" -> "3rd party code"
- bin/hbxpatch.hbs
+ bin/hb3rdpat.hbs
* config/postinst.hbs
* package/harbour.spec
* Renamed hbxpatch.hbs to hb3rdpat.hbs to reflect terminology
cleanup ("external code" -> "3rd party code")
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/oohg.hbc
* Using .hbc files.
* contrib/hbssl/ssl.c
+ SSL_GET_READ_AHEAD() function enabled. Made it a dummy
for bcc, where it for some reason creates unresolved
external when referencing the corresponding openssl API.
* utils/hbmk2/hbmk2.prg
+ HB_HAS_<name> hbmk2 macro is now defined, in case a given
dependency gets detected.
+ HB_HAS_<name>_LOCAL hbmk2 macro is now defined, in case a
given dependency gets detected on a local path.
+ Added -depfinish=<name> option which will tell hbmk2 to
not expect any more <name> related dependency information,
and do the detection right there while processing options.
Combined with above macros, now it's possible to use
filters based dependency detection results.
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbmzip/hbmzip.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbbz2/hbbz2.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/sddsqlt3/sddsqlt3.hbp
+ By using above hbmk2 feature, now the locally hosted
dependency won't be referenced (and thus won't be built)
if the dependency is detected on a user supplied or
system path.
This effectively restores previous behavior (before
moving 3rd party libs to hbmk2 build system / contrib
area), and f.e. if a Linux user has sqlite3 installed
as a system package, the locally hosted version won't
be built.
* contrib/hbexpat/3rd/expat/expat.hbp
* expat locally hosted sources are now not excluded from
*nix builds, and they will be used if it's not installed
as a system package.
- external/zlib
- external/png
- external/jpeg
- external/hbpmcom
- external/pcre
- external/Makefile
+ src/3rd
+ src/3rd/zlib
* src/3rd/zlib/Makefile
+ src/3rd/png
* src/3rd/png/Makefile
+ src/3rd/hbpmcom
* src/3rd/hbpmcom/Makefile
+ src/3rd/jpeg
* src/3rd/jpeg/Makefile
+ src/3rd/pcre
* src/3rd/pcre/Makefile
+ src/3rd/Makefile
* Moved /external to /src/3rd
; This way all core components reside in core.
; NOTE: png, jpeg are not referenced by core components,
so they may be moved to contrib area in the future.
* config/detect.mk
* Makefile
* src/Makefile
* src/rtl/hbcom.c
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
* contrib/hbwin/hbwin.hbp
* Updated to reflect above change.
; NOTE: Now -j builds can be optimized to better overlap with
3rd component builds. Please do it in src/Makefile.
* contrib/hbplist
* Updated.