* 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.
* 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.