* 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.
* contrib/hbbz2/hbbz2.hbp
* contrib/hbbz2/hbbz2.hbc
* Modified for new 3rd source location.
* external/Makefile
- external/bzip2
+ contrib/hbbz2/3rd
+ contrib/hbbz2/3rd/bz2
- contrib/hbbz2/3rd/bz2/bzip2.hbc
+ contrib/hbbz2/3rd/bz2/bz2.hbc
- contrib/hbbz2/3rd/bz2/bzip2.hbp
+ contrib/hbbz2/3rd/bz2/bz2.hbp
* Moved to contrib local dir.
* Renamed to bz2 to match lib name.
- contrib/hbhpdf/3rd/libhpdf/Makefile
- Deleted.
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/hbhpdf.hbc
* contrib/hbexpat/3rd/expat/expat.hbc
! Fixed for 'HB_BUILD_CONTRIB_DYN=yes'
* external/Makefile
- external/libhpdf
+ contrib/hbhpdf/3rd
+ contrib/hbhpdf/3rd/libhpdf
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbc
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* Moved to contrib local dir.
+ Added support for 'HB_BUILD_CONTRIB_DYN=yes'
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
! Fixed for dynamic build.
; TODO: Regenerate .dif. For me it restored original copy for some reason :(
* contrib/hbsqlit3/hbsqlit3.hbc
* contrib/sddsqlt3/sddsqlt3.hbc
* Using .hbc file for 3rd party lib.
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
! Changed -warn=no to -warn=low, which is equivalent to 'HB_BUILD_WARN := no'
in Makefile.
* src/rtl/version.c
+ HB_VERSION( HB_VERSION_PLATFORM ) changed to use hb_verPlatformMacro().
This means it will now supported recently added platforms.
; NOTE: For consistency, __PLATFORM__WINDOWS should pbly be changed to __PLATFORM__WIN,
and __PLATFORM__WINCE to __PLATFORM__WCE.
* utils/hbmk2/hbmk2.prg
+ Added HB_HOST_PLAT macro, returning: hb_Version( HB_VERSION_PLATFORM )
+ Added HB_HOST_PLAT_UNIX macro.
! Fixed cygwin to be detected as cross target platform.
! Few cygwin related TOFIX-es cleared.
* external/Makefile
- external/sqlite3
+ contrib/3rd
+ contrib/3rd/sqlite3
* contrib/3rd/sqlite3/sqlite3.hbc
+ contrib/3rd/sqlite3/sqlite3.hbp
- contrib/3rd/sqlite3/Makefile
* Moved sqlite3 foreign code to contrib/3rd dir from
global 3rd party code dir.
+ Migrated remaining platform tweaks from Makefile to sqlite3.hbp
Bumps are expected, pls test.
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/sddsqlt3/sddsqlt3.hbp
* Changed sqlite3 position.
+ Added sqlite3 reference.
; Please note that after above changes sqlite3 will only be built
if required.
* src/common/hbver.c
* Formatting.
* utils/hbmk2/hbmk2.prg
* Changed the way target selection (-hblib, -hbdyn*, -hbexe, etc)
options are handled. So far the last one specified remained
active, now the first one specified will stay active.
IOW: 'hbmk2 -hbdyn mylib.hbp' will result in dynamic lib target,
even if mylib.hbp contains -hblib option.
; Beware of some regressions or incompatibility with certain
build configs.
* contrib/hbpost.hbm
* contrib/hbpre.hbm
* Moved -hbdyn option to hbpre.hbm. This makes it possible
for .hbp files to act differently when built as dynamic lib.
; Such will be required for
* external/libhpdf/libhpdf.hbp
* Cleared TOFIX after above changes.
* contrib/hbplist
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/hbmzip.hbc
- external/minizip
+ contrib/hbmzip/3rd
+ contrib/hbmzip/3rd/minizip
* contrib/hbmzip/3rd/minizip/minizip.hbc
* contrib/hbmzip/3rd/minizip/minizip.hbp
- contrib/hbmzip/3rd/minizip/Makefile
* Moved minizip dir under the contrib that uses it.
; Please test.
* contrib/hbexpat/hbexpat.c
! Added missing 'enum' keyword to just added cast.
; Patches from Tamas:
* utils/hbmk2/hbmk2.prg
+ cygwin is pic by default
* bin/hbxpatch.hbs
+ report all missing tools in one go