* utils/hbmk2/hbmk2.prg
! Tuned watcom filename escaping behavior:
It will now use *nix notation on *nix builds.
It will now use double quoting on Windows builds.
It will now use single quoting in script files on all builds.
No quoting on other platforms. [ watcom is special because
each platform native compiler can create builds for other
platforms, so we must use platform native fn quoting. ]
This should in theory (hopefully) fix the remaining
combinations for watcom, though I didn't test any
of these. [ The only exception is using watcom Windows
.exe via WINE on *nix systems. But that seems a little
bit exotic of an option ;)
Oh for testing pass some source filenames with spaces
in them.
; TOCHECK: Whether watcom script files (@<fn>) use the same
single quoting ('filename') on all platforms.
For some reason so far it was only used for
win targets, so I may have broken it, if it
was done for good reason.
* utils/hbmk2/hbmk2.prg
! Fixed to use *nix-style filename escaping when calling
Windows cross tools only available via WINE (bcc, msvc*, pocc).
! Better *nix-style char escaping in filenames.
* ChangeLog
! Typos in last commit log.
* contrib/hbqt/plug_moc.prg
* utils/hbmk2/hbmk2.prg
! Fixed to use proper filename notation also in plugins.
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
* Minor cleanups.
* utils/hbmk2/hbmk2.prg
+ Quite big commit aiming to clean path forming in different
situations. After this is change it should be more or less
true that internally hbmk2 always uses native path format,
it should accept _any_ format regardless of platform,
and it should convert filenames to proper format only when
calling external compiler tools, according to their specific
taste.
F.e. this should fix problems when doing Windows cross-build
on *nix systems, with watcom, or other compilers (except
mingw) which has native compiler. It should continue to
work with WINE based on compilers in similar situations.
There is one specific exception when passing around
filenames as part of options. In this case hbmk2 cannot do
too much magic, so try to avoid it.
Though I never actualluy tried this latter case.
Please test it, regressions are possible. I'd be happy to
see stress tests with passing various combination of pathseps
and watching -trace output whether everything is properly
converted to right format.
+ Will now convert filenames to Cygwin format for Cygwin
targets.
! Fixed to accept .hbi files without '@' prefix.
* config/postinst.prg
% Do not add '@' prefix when referring to .hbi files.
* src/vm/extend.c
! Fixed TRACE message of new hb_parnintdef() function.
* src/rtl/hbcomhb.c
* Minor correction to one function description in comment.
* src/rtl/hbsocket.c
* Minor formatting.
* include/hbcom.ch
+ Added comments.
* Formatting.
+ Added comment that code is used by .c code.
* contrib/hbtpathy/telepath.prg
* Rewritten to use native HB_COM*() API (instead of hbct
specific COM_() one).
+ tp_send() code rewritten to use core timeout functionality.
+ Implemented formerly disabled tp_ctrldtr() function.
(pls review it)
% FetchChars() internal function simplified.
* contrib/hbcomm/hbcomm.prg
* Rewritten to use native HB_COM*() API (instead of hbct
specific COM_() one).
* contrib/hbsms/hbsms.prg
* Rewritten to use native HB_COM*() API (instead of hbct
specific COM_() one).
* Receive code rewritten to rely on core timeout functionality
instead of rolling local implementation.
; I didn't make any tests with API converted COM code, so please
review and test these changes.
* contrib/hbtpathy/hbtpathy.hbc
* contrib/hbcomm/hbcomm.hbc
* contrib/hbsms/hbsms.hbc
- Deleted hbct dependency.
* INSTALL
* package/winuni/RELNOTES
* QT 4.6.2 -> 4.6.3
* harbour/src/rtl/hbsockhb.c
* changed return values of some functions: nSuccess to lSuccess
* HB_SOCKET_PF_* changed to HB_SOCKET_AF_*
- hb_parnintdef() (moved to extend.c)
! some bug fixes
! some typo in documentation
* harbour/examples/udpds/udpds.prg
* sychronized with hb_socket*() changes
* changed server thread exit condition (proposed by Przemek)
* harbour/include/hbapi.h
* harbour/src/vm/extend.c
+ hb_parnintdef()
* harbour/src/rtl/hbsocket.c
* harbour/include/hbsocket.ch
! cleaned a little bit HB_SOCKET_AF_*/HB_SOCKET_PF_* usage to not confuse
other developers and users.
* include/hbsetup.h
* Renamed HB_OS_IPHONE -> HB_OS_IOS
(naming will become ambiguous once Harbour will support
Cisco IOS, which may not happen tomorrow, well Apple iOS
is also a pending question)
* utils/hbmk2/hbmk2.prg
+ Modified regex expression to be POSIX compliant.
Thanks to Tamas Tevesz for this modification.
Now hbmk2 should be compatible with supported regex engines,
though it continues to fail (gracefully) if Harbour core is built
using 'HB_WITH_PCRE=no' option.
* include/hbextern.ch
+ Added new HB_SOCKET*() functions.
* config/postinst.prg
! Fixed to exclude whole extra shared binary creation for
all platforms except win/wce/os2.
+ examples/udpds/udpds.hbp
+ Added hbmk2 make file.
* src/rtl/hbregexc.c
+ Restored RTE which is thrown when unsupported regex string is
found in any .prg level regex API calls except HB_REGEXCOMP().
The only difference compared to previous solution is different
error code (3015) to differenciate this case from wrong
parameter _type_ error cases.
; TOFIX: IMO even current solution is not ideal, because it just
forces developers to use HB_ISREGEX() to pre-evaluate regex
strings before actually using them (causing performance hit),
or it forces them to use HB_REGEXCOMP() to pre-compile and
pre-evaluate the expressions before passing them to actual
regex functions, in the valid case they want to avoid unexpected
RTEs due to missing or unsupported regex (PCRE) subsystem.
IOW it makes plain HB_ATX( <cRegExp>, ... ) style calls
prone to fail with RTE in certain, very hard to predict
situations in officially supported Harbour builds.
Comments are appreciated.
* utils/hbmk2/hbmk2.prg
* Deleted unused code.
* Formatting.
* harbour/src/rtl/hbsocket.c
! added missing code to duplicate IP6 address passed explicitly
to hb_socketResolveAddr() - thanks to Mindaugas for reporting
the problem
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/hbwin/win_shell.c
! Fixed MinGW-w64 cross compiler detection with the recommended "official" method.
MinGW-w64 can also compile for x86, in this case are the same built-in macros.
* src/rtl/hbregexc.c
* Changed to not throw RTE, just gracefully return
error value when invalid PCRE expression is used.
It will continue to throw RTE only for user-controllable
error situations, f.e. when wrong argument type is passed.
! Fixed to not contain English text hard-coded in RTE message.
* src/rtl/hbregex.c
* HB_ATX() changed to fill parameters passed by reference with
error values (zeros) in case of error.
* HB_REGEX(), HB_REGEXSPLIT(), HB_REGEXATX(), HB_REGEXALL()
functions changed to consistently return arrays. If there
is no match, the array will be empty. This gives a more
natural (and Clipper/Harbour-like) interface (f.e. return
value can be passed to FOR EACH loop without extra checks
and extra local variable).
Slight INCOMPATIBILITY for those who did 'r == NIL' check
to verify non-match and something special in this case.
For code simply evaluating the returned matches, the NIL
check can be deleted, and for code which wants to be
backward/forward compatible _and_ to specifically check
for no match situation it's suggested to use 'EMPTY( r )'.
Please check me.
* HB_REGEXMATCH() marked as HB_LEGACY_LEVEL4. (this leaves
quite some headstart to change it)
* include/hbextern.ch
- Deleted HB_REGEXMATCH().
* utils/hbmk2/hbmk2.prg
% Simplified regex usage after above changes.
+ Will now show an internal error in case the used
regex is invalid in current Harbour context
(f.e. when no PCRE engine was forced by user, or
the one used doesn't support the expression used by
hbmk2). I don't know how special current expression
is (it doesn't seem very much so), but it can be
streamlined to something more compatible if current
is deemed not ideal.
* src/compiler/hbusage.c
* Changed to enclose e-mails between '()' instead of '<>'.
* include/hbsetup.h
! Patch by Tamas Tevesz for SunPro compiler.
* ChangeLog
- Deleted my personal exception from ChangeLog license.
+ contrib/hbide/resources/setup.ui
+ contrib/hbide/resources/setup.uic
+ New dialog to hold setup and ini information - in the making.
* contrib/hbide/hbide.prg
! "Output Console" made hidded even if at previous run it was visible.
* contrib/hbide/ideactions.prg
+ New menu option <Setup><hbIDE Setup> to invoke Setup dialog.
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
! Fixed error reported by few which appears randomely
and I could not reproduce.
* contrib/hbide/idesaveload.prg
+ Added class IdeSetup() - in the making.
* src/rtl/gtgui/gtgui.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* examples/gtwvw/gtwvw.c
+ Will now put to clipboard and request from clipboard UNICODE
text in UNICODE (default) mode. This should fix CP conversion
problems experienced in non-UNICODE mode (more in a separate
bug report).
Please review me.
* contrib/hbtpathy/Makefile
* contrib/hbtpathy/hbtpathy.hbp
* contrib/hbtpathy/hbtpathy.hbc
* contrib/hbtpathy/telepath.ch
- contrib/hbtpathy/tpcommon.c
- contrib/hbtpathy/tpwin.c
- contrib/hbtpathy/tpos2.c
- contrib/hbtpathy/tpunix.c
- contrib/hbtpathy/tpdos.c
* contrib/hbtpathy/telepath.prg
* Changed to use hbct lib COM functions.
* Changed some misc functions to .prg from .c.
- Deleted all .c files.
; NO GUARANTEES. PLEASE TEST AND REVIEW IT. All my testing
was to make sure the lib and test app builds properly.
* contrib/hbtpathy/tests/testtp.prg
* Formatting.
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
+ Installation will now create 'Harbour' registry key under
'Software', and in it write 'InstallDir' value with the
location of Harbour dir structure.
With this, additional tools (addons) can easily locate
Harbour on a system and install themselves indide the
dir structure or make necessary configuration settings
which need this information. F.e. HBIDE installer (which
can go even to '%ProgramFiles%/Harbour IDE' or '%ProgramFiles%/HBIDE'
can locate Harbour and configure its .ini to point to
proper hbmk2 location.
* contrib/hbide/idetools.prg
! Changed: macro notation for "Tools and Utilities" to confirm
to hbMK2 standards.
{source_fullname} => ${source_fullname}
{source_name} => ${source_name}
{source_path} => ${source_path}
=> ${source_ext} [Added]
{%MY_ENV_VAR%} => ${MY_ENV_VAR}
If marco keywords are not recognized, they are assumed to be
environment variables and return value of hb_GetEnv( cMacro )
is substituted.
+ contrib/hbide/resources/go-bottom.png
+ contrib/hbide/resources/go-down.png
+ contrib/hbide/resources/go-first.png
+ contrib/hbide/resources/go-jump.png
+ contrib/hbide/resources/go-last.png
+ contrib/hbide/resources/go-next.png
+ contrib/hbide/resources/go-prev.png
+ contrib/hbide/resources/go-top.png
+ contrib/hbide/resources/go-up.png
+ contrib/hbide/resources/hilight-all.png
+ contrib/hbide/resources/updown.ui
+ contrib/hbide/resources/updown.uic
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! An important fix.
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idetools.prg
+ Extended: in addition to next/previous buttons to naviagte
occurances of selected text, three more buttons are added:
"first", "last", occurance and "highlight all" occurances.
+ Implemented: macros parsing in "Parameters" list of
"Tools and Utilities" protocol. Currently following macros
are parsed:
{source_fullname} => full sourcename of current edit instance
{source_name} => mere name of current edit instance
{source_path} => only path of source in current edit instance
{%MY_ENV_VAR%} => result of hb_GetEnv( "MY_ENV_VAR" )
C:\temp\mycopy.bat {source_fullname} {source_path}\mysource.bkp
=>
C:\temp\mycopy.bat C:\harbour\contrib\hbide\hbide.prg C:\harbour\contrib\hbide\mysource.bkp
( assuming that current editor is containe hbide.prg )
* INSTALL
* external/sqlite3/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
* Changed HB_COMPILER_VER values for msvc targets. Previously it was
the Visual Studio version, now it is the C compiler version,
the same value used in _MSC_VER predefined macro:
Name old NEW
-------------------------------------- ---- ----
C Compiler version 6.0 600
C/C++ compiler version 7.0 700
Visual C++, Windows, version 1.0 100 800
Visual C++, 32-bit, version 1.0 100 800
Visual C++, Windows, version 2.0 200 900
Visual C++, 32-bit, version 2.x 200 900
Visual C++, 32-bit, version 4.0 400 1000
Visual C++, 32-bit, version 5.0 500 1100
Visual C++, 32-bit, version 6.0 600 1200
Visual Studio .NET (2002), version 7.0 700 1300
Visual Studio .NET 2003, version 7.1 710 1310
Visual Studio 2005, version 8.0 800 1400
Visual Studio 2008, version 9.0 900 1500
Visual Studio 2010, version 10.0 1000 1600
INCOMPATIBLE for users setting HB_COMPILER_VER manually, pls
change the value as indicated above. For most users it's
recommended to rely on autodetection and not to set this
variable at all.
* config/postinst.prg
! Fixed to use hb_osFileMask() instead of hard-coded '*' mask.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
+ Implemented: interface to find next/previous occurance of selected
text in the current editing instance.
The moment some text is selected in the editor, two tool-buttons will
automatically show-up on the lower-right corner of the editing window
to facilitate you execute "find" operation for selected text up or down.
Buttons will disappear where there is no more selected text.
The feature was requested by Antonio Linares.
* contrib/hbwin/win_shell.c
+ Added protection to typedef SHNAMEMAPPING, LPSHNAMEMAPPING for MINGW64.
MinGW-W64 provides these definitions and cause error when building hbwin.
* src/rtl/memvarhb.prg
* Minor in comment.
* contrib/hbtpathy/tpunix.c
+ Applied patch sent to the list by Tamas Tevesz.
Fixing some compilation problems due to missing predefined macros
on certain *nix systems.
* contrib/hbqt/hbqt_common.hbm
* Formatting.
* utils/hbmk2/hbmk2.prg
! Fixed to make sure -depcontrol= header path value is added
to the header path search list in the same location as specified
on the cmdline.
* utils/hbmk2/hbmk2.prg
+ Added basic support to recognize headers inside Frameworks
on darwin systems.
+ Added basic support to recognize Objective C (.m) input files.
% Optimized to only deal with header exclusion of known
headers if they are specified as "system directories"
(specified as #include <...>)
! Minor cleanup when adding include dirs after header detection.
* contrib/hbqt/hbqt_common.hbm
% Cleaned QT autodetection on darwin systems after adding
basic support for Frameworks to hbmk2.
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/gtqtc/gtqtc.hbp
% Deleted now unnecessary hacks for darwin.
* contrib/hbqt/Makefile
* contrib/hbqt/detect.mk
* contrib/hbqt/hbqts/Makefile
* contrib/hbqt/qtgui/Makefile
* contrib/hbqt/qtgui/qtguis/Makefile
* contrib/hbqt/qtnetwork/qtnetworks/Makefile
* contrib/hbqt/qtnetwork/Makefile
* contrib/hbqt/gtqtc/Makefile
* contrib/hbqt/gtqtc/gtqtcs/Makefile
% Deleted extra hacks for darwin regarding header path setup.
* INSTALL
- Deleted dead link.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Minor.
* contrib/hbide/resources/buildsource.png
+ Icon for "Build Source" action.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Implemeted: to compile a source, source is not saved
if in modified state. Action was already defined but inactive.
+ Implemented: to build a source, current defined environment is
used and build process stays in the folder where source resides.
Also source is not saved. hbIDE attempts to executable it also.
Action defines a new icon on the top-toolbar and also an entry
into the "Build" menu.
% Few more fixes in selections and find processes.
NOTE: new setup is also uploaded on my site.
* utils/hbmk2/hbmk2.prg
! Fixed typo in recent header detection changes causing -inc
mode to always rebuild target.
+ Added support for multiple -depkeyhead= option, which means
that multiple alternative key headers can be specified and
the first match of any of them will satisfy the dependency.
! Fixed typo causing dependencies to wrongly detected as 'local'.
* contrib/hbqt/hbqt_common.hbm
* Unfinished changes to sync darwin with rest of platforms.
* contrib/hbqt/plug_moc.prg
! Missed to look in PATH to find moc tool.
* utils/hbmk2/hbmk2.prg
! Fixed to handle -depcontrol=<path> case.
+ contrib/hbmzip/hbmzip.hbp
+ Added hbmk2 solution to replicate GNU Make dependency
checking logic.
* utils/hbmk2/hbmk2.prg
+ Finalizing dependency options:
-deppkgname=<d:n>
-depkeyhead=<d:h>
-depoptional=<d:f>
-depcontrol=<d:v>
-depincpath=<d:i>
-depincpathlocal=<d:i>
; See more in the --help and the example above.
* Finalized terminology (requirement -> dependency)
* utils/hbmk2/hbmk2.prg
+ Rewritten dependency checking logic. New solution
integrates -reqheader, -inctrypath, -reqpkg options.
(Current parametrization and terminology is not final.)
The new engine supports dependency detection by package
name (via pkg-config/*-config), even multiple ones, by
key header file using custom header search paths, both
global and local. It also supports built-in detection
control as we know it from our GNU Make build system
via HBMK_WITH_* envvar (or one with customzed name)
which can have no/yes/nolocal/local/force values. This
implementation also supports optional dependencies.
* package/winuni/RELNOTES
* Updated.
* harbour.spec
* doc/dirstruc.txt
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/hbbtree
+ examples/hbbtree
- examples/hbbtree/Makefile
* hbbtree move to example section as told in a recent
changelog entry. This contrib has long time unfixed
file-format portability problems, plus it's really
more of a good example code than lib for end-users.