* utils/hbmk2/hbmk2.prg
+ dependency check to define HBMK_DIR_* macro with autodetected header dir
+ macro evaluator to return actual value (if any) for internally defined macro
+ contrib/hbdroid
+ contrib/hbdroid/hvminit.c
+ contrib/hbdroid/hbdroid.h
+ contrib/hbdroid/hbdroid.hbc
+ contrib/hbdroid/hbdroid.hbp
+ contrib/hbdroid/msginfo.c
+ Android lib
Based on code sent to the list by Antonio.
Only build tested (on win).
* contrib/hbqt/hbmk2_qt.hbs
! Removed: one already commented-out section.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
! Removed: few more raw-pointers constructs which were
hanging around unneccessarily.
* contrib/hbct/hbct.hbp
* raise c dialect to gnu90 on linux for stime()
* contrib/hbwin/wapi_winbase.c
! define WAPI_GET*PATHNAME() as noop functions on wce
* contrib/hbwin/win_shell.c
! made WIN_SHELLNOTIFYICON() a dummy on wce
* contrib/hbwin/mapi.c
! do not undef UNICODE for wce (results in missing LoadLibraryA() on link)
* contrib/hbwin/wapi_commctrl.c
! made WAPI_IMAGELIST_LOADIMAGE() a dummy on wce
* contrib/sddfb/sddfb.hbp
* contrib/hbfbird/hbfbird.hbp
* set c dialect to gnu90 for fbird headers
* contrib/hbpre.hbm
* set c dialect to gnu90 for wce/allmingw for cegcc Windows headers
* src/rtl/gtwvt/gtwvt.c
! Fixed HB_GTI_ICONFILE not working with "certain" .ico files.
* contrib/hbqt/hbqt_common.hbc
+ added libpath for beos [Tamasz Tevesz]
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgscrlb.prg
* contrib/gtwvg/wvgsysw.prg
* contrib/gtwvg/wvgtoolb.prg
! Changed: C++ comments to Ansi C compatible.
Hopefully I did it right, not tested the build.
* ChangeLog
! Missed to document one change:
* src/rtl/gtwvt/gtwvt.c
% Deleted CS_HREDRAW | CS_VREDRAW flags from Harbour window
class. Please make sure to review this, I'm not expert, but
these flags are apparently not needed for GTWVT and advised
against on many forums.
* INSTALL
+ Added TROUBLESHOOTING/9.: how to submit logs to dev list.
Please read it.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
! Fixed possible MT race condition in DISKSPACE()/HB_DISKSPACE()
where no value could be returned.
* src/rtl/gtwvt/gtwvt.c
* Changed to use WS_EX_COMPOSITED instead of WS_EX_LAYERED.
This works on XP and above (previous one also worked on W2K),
and I mean this as another round of live testing, as WS_EX_LAYERED
turned out to be causing strange flickers (maybe hardware
induced, I don't know) on some non-virtualized/non-remote
OS installations. Maybe this will work better. If not, even
this will be deleted. Then maybe software/DC double-buffering
will be the ultimate soltion.
% Dropped fiddling with SetLayeredWindowAttributes() call.
* Formatting.
* contrib/make.hbs
+ Added 'verbose' keyword. Equivalent to HB_BUILD_VERBOSE=yes.
+ Added 'rebuild' keyword. (Equivalent to 'clean all')
* contrib/3rd/sqlite3/sqlite3.hbp
! Added workaround for gcc/mingw bug in 4.5.0 and 4.5.1
revisions where it shows compile error when iso89 c dialect
is selected. Now in 4.5.x gnu89 is used instead to avoid it.
* contrib/hbplist
- Disabled gtwvg due to build breakage.
* utils/hbmk2/hbmk2.prg
+ Added -c=/-cpp= dialect support for sunpro, icc, clang, watcom.
Many thanks to Tamas for the information.
+ Added dialect support for vxworks/diag
* contrib/hbpre.hbm
- do not set any C++ std in contrib area
it's a mess.
* ChangeLog
! Addes missing change to 2011-04-21 01:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu):
* src/rtl/gtwin/gtwin.c
! Reverted optimization patch in
2011-03-30 14:20 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
It caused strange effects (<Alt> key causing INKEY()
to return <Ctrl+PgUp> on some national keysets or some
other region related attributes, it was reported by few
users from Brazil.
* include/harbour.hbx
* include/hbapi.h
* src/common/hbver.c
* src/rtl/version.c
+ hb_verHostCPU() to return CPU architecture the host OS
is running under. (long time TODO)
It may or may not give precise answer depending on
target OS. For win, it works as exptected.
+ HB_OSCPU() -> <cCPU> same for .prg level apps.
* contrib/hbmxml/3rd/minixml/mxml_str.c
! Ultimate isdigit() fix. [Tamas Tevesz]
* utils/hbmk2/hbmk2.prg
+ Added experimental -c=[iso90|iso99|iso1x|gnu90|gnu99|gnu1x] and
-cpp=[iso98|iso0x|gnu98|gnu0x] hbmk2 options to select
C/C++ dialect in a C compiler and built setting independent way.
It will currently affect GCC and compatible family of compilers.
If you happen to know about C dialect/std selection in other
compilers, pls tell and they can be mapped to this option.
F.e. in other win compilers the adaptation to C/C++ stds is very
fuzzy, where such option exists at all (f.e. BCC -A* options),
mostly it's just toggling some compiler extensions.
Comments are welcome of course.
+ Added TOFIX for vxworks with potential disagreement on C std level.
I used hardwired C99 forcage hack while porting Harbour to it.
+ Added internal logic for C- and C++-only options.
; NOTE: Behavior with Objective C sources is yet to be tested.
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbunix/hbunix.hbp
* contrib/gtalleg/gtalleg.hbm
* contrib/xhb/xhb.hbp
* contrib/hbqt/hbqt_common.hbm
* contrib/rddads/rddads.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbpre.hbm
* contrib/hbssl/hbssl.hbm
+ -cflag=-std=... => -c=gnu90 hbmk2 option.
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbmxml/3rd/minixml/mxml_str.c
! Fixed isdigit() warning which was result of missing
mxml header. [Tamas Tevesz]
+ contrib/hbcurl/hbcurlt1.ch
+ contrib/hbcurl/core_t1.c
+ Implemented new way of using HB_CURLOPT_HTTPPOST, now
all meaningful values are supported in any order and
combination. See:
http://curl.haxx.se/libcurl/c/curl_formadd.html
The patch is heavily based on patch/implementation submitted
by Benjamin Jacobs, many thanks for it. Final patch
includes some rework, simplification, compile and
other fixes, plus formatting with uncrustify. Please
make sure to test/review this version as I didn't do
any functional tests, just build ones.
Sample code:
curl_easy_setopt( curl, HB_CURLOPT_HTTPPOST, { ;
{ HB_CURLFORM_COPYNAME, "nparam1", ;
HB_CURLFORM_COPYCONTENTS, "value1" }, ;
{ HB_CURLFORM_COPYNAME, "nparam2", ;
HB_CURLFORM_COPYCONTENTS, "value" }, ;
{ HB_CURLFORM_COPYNAME, "fileparam", ;
HB_CURLFORM_FILE, filename } } )
WARNING: This implementation is INCOMPATIBLE with the
previous one.
TOFIX: Current implementation does allow to create GPFs because
it allows .prg code manually pass buffer sizes. This must
be fixed and buffer length should always be automatically
taken from Harbour item. This will require more sophisticated
code to build the low-level array (f.e. size calculation).
Benjamin, can you look at it?
NOTE: I'm uploading this unfinished code as new temp files,
because SVN doesn't support light branching, so this poor man's
solution is left to manage it.
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbmxml/3rd/minixml/config.h
* Testing without HAVE_SNPRINTF/HAVE_VSNPRINTF in ANSI C89 mode.
* utils/hbmk2/hbmk2.prg
+ Added '-cflag+=' experimental option which works like
-cflag=, but it adds the custom flag _after_ C flags
added internally by hbmk2. This allows for some better fine
tuning (f.e. see rddads.hbp). Another possbility would
have been to move all user flags after internal ones,
but this could make it easy to break builds, and it
would also make cflags behave differently than the rest,
so I decided to add this new syntax.
+ Some step to support hbmk2 options to control C/C++ dialect.
% Minor optimization in formed C compiler and linker cmdlines.
* contrib/rddads/rddads.hbp
! Fixed gcc option to disable stupid warning caused
by sloppy #pragma usage in ACE header.
Also changed to use '-cflag+=' to make it work.
At last!
* hbbz2/3rd/bz2/bz2.hbp
* hbbz2/core.c
+ Build bz2 with BZ_NO_STDIO option. This will get rid of fileno()
call, so it becomes C89 compliant.
+ Added internal error handler required when BZ_NO_STDIO is used.
% Deleted -std=gnu89 override.
; Checkme.
* contrib/hbmxml/hbmxml.hbp
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbmxml/3rd/minixml/config.h
+ Disabled HAVE_STRDUP so now it's using its own implementation
and it's ANSI C89 compliant.
* utils/hbmk2/hbmk2.prg
! Fixed compiled resources not triggering rebuild of
target executable in incremental mode unless the resources
sources were also changed.
Thanks to Mindaugas for reporting it.
* utils/hbmk2/hbmk2.prg
+ new filter values: lngcpp and lngc. Can be used to
check forced C++/C mode.
* contrib/hbmzip/3rd/minizip/ioapi.h
* contrib/hbmzip/3rd/minizip/zip.h
* contrib/hbmzip/3rd/minizip/minizip.dif
! C++ -> ANSI C comments
* contrib/hbmzip/3rd/minizip/minizip.hbp
! Override c89 mode with gnu89. For f*64() functions.
* contrib/rddads/rddads.hbp
! Override c89 mode with gnu89. ADS headers need it.
* contrib/hbpre.hbm
+ Forcing c89 mode for GCC family compilers (in non C++ forced mode)
Results were pretty good and Harbour/3rd party code complies
very well.
* contrib/hbunix/hbunix.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbnetio/hbnetio.hbp
* contrib/gtwvg/gtwvg.hbp
* contrib/hbwin/hbwin.hbp
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbmemio/hbmemio.hbp
- Deleted just added local c89 mode forcage. Now it's done global.
* contrib/hbqt/qtgui/hbqtgui.h
! Fixed HBQT_TYPE_QIcon redefinintion. Pls check, I didn't rebuild the
whole package after the mod.
* contrib/hbunix/hbunix.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbnetio/hbnetio.hbp
* contrib/hbnetio/hbnetio.hbx
* contrib/gtwvg/gtwvg.hbp
* contrib/hbwin/hbwin.hbp
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbexpat/hbexpat.hbp
+ Enabled -std=c89 option when building with any gcc compiler.
(TOFIX: now GTWVG breaks with error)
I mean this as an experiment which I'd like to extend
gradually to whole Harbour as it seems a good way to
ensure the code being truly ANSI C as we claim it. It
can certainly avoid a few unnecessary rounds with
committed code problems.
Now that there are multiple ANSI C standards we may
want to discuss which level we want to stick with
(C89/C90, C99, C1X) until then let's assume C89 even though
not all of Harbour code complies ATM. F.e.:
../../../hbprintf.c:543:4: warning: implicit declaration of function 'modfl'
../../../hbprintf.c:1146:25: warning: implicit declaration of function 'isfinite'
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/qtgui/hbqt_hbqgraphicsscene.cpp
* contrib/hbqt/qtgui/hbqt_hbqgraphicsitem.cpp
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
! Converted C++ style comments to ANSI C.
Even though it's C++ code it's good to stick with one
comment style (ANSI C) accross Harbour to avoid getting wrong customs.
Pls stick to it.
* contrib/hbxbp/xbpparthandler.prg
! Changed: ::_aOwned => ::a_Owned to not generate error when
class inheriting an XbpPart has a data member as ::aOwned.
* utils/hbmk2/hbmk2.prg
+ Added experimental feature to filter out libs from the lib lists:
-l-kernel32, libs=-kernel32
Harbour core libs cannot be disabled this way (except hbzlib and
hbpcre)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.es_PE.po
* utils/hbmk2/hbmk2.prg
* INSTALL
* Use 'please' more sparsingly. Use 'always' a bit more.
* config/lib.mk
* config/bin.mk
* config/dyn.mk
+ Added internal configuration '__HB_BUILD_NOSYSLIB=<lib1> [<lib2>]'
to delete items from default list of system libs used by
core build.
* harbour/config/linux/libs.mk
* harbour/config/android/libs.mk
* filter out libraries which does not exists in android inside
android not linux config files
* src/common/hbtrace.c
* contrib/xhb/hbsyslog.c
- Deleted Android specific logging. syslog works good.
+ config/android
+ config/android/libs.mk
+ config/android/gcc.mk
+ config/android/gccarm.mk
+ config/android/global.mk
+ config/android/mingw.mk
+ Added android specific core build files. They are
all redirected to linux.
* config/linux/libs.mk
+ Do not add rt and pthreads libs for android targets.