From 46f7e48f2965982e8076fd544e1e58372e77653b Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 26 Jul 2010 10:36:23 +0000 Subject: [PATCH] 2010-07-26 12:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbqt/tests/wvtqt.hbp * contrib/hbxbp/tests/wvtqt.hbp ! Added missing SVN header. % Cleanup. * INSTALL * contrib/hbpost.hbm * config/global.mk * Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect new meaning after recent changes. With new build system the implibs are always created in lib working dir, and this setting only controls whether to copy it to final install directory. The default is still 'no'. Setting it to yes is only recommended if the installation will be used in local environment (3rd party .dlls) only. IOW never set this to yes when creating a build for other users (f.e. for distribution). INCOMPATIBLE if you used this setting, pls change it now. * INSTALL + Documented HB_STATIC_* options. * contrib/make.hbs * Updated TODO list. * src/debug/debugger.prg * src/rtl/dirscan.prg * tests/wcecon.prg * contrib/xhb/traceprg.prg * contrib/hbqt/tests/wvtqt.hbp * contrib/hbqt/generator2/hbqtgen2.prg * contrib/hbxbp/tests/demoxbp.prg * contrib/hbxbp/tests/dialogqt.prg * contrib/hbxbp/tests/wvtqt.hbp * contrib/hbhpdf/tests/harupdf.prg * contrib/gtwvg/tests/wvgtbrowser.prg * contrib/gtwvg/tests/wvgwvtclasses.prg * contrib/hbtip/tests/dbtohtml.prg * contrib/hbtip/mail.prg * contrib/hbide/idemisc.prg * contrib/hbide/ideactions.prg * contrib/hbide/idetools.prg * contrib/hbide/idesources.prg * contrib/hbide/hbide.prg * examples/uhttpd2/umain.prg * examples/hbvpdf/tests/pdf_demo.prg * examples/httpsrv/uhttpd.prg * examples/httpsrv/cgifunc.prg * examples/httpsrv/modules/tableservletdb.prg * examples/httpsrv/session.prg * HB_OSPATHSEPARATOR() -> HB_PS() % Delete temp vars along the way. * utils/hbmk2/hbmk2.prg + Generalized internals for support for older Harbour and xhb versions. + Added -hb20 option. (thanks for asking for it so nicely ;) --- harbour/ChangeLog | 89 +++++++++++++++---- harbour/INSTALL | 20 +++-- harbour/config/global.mk | 14 +-- harbour/contrib/gtwvg/tests/wvgtbrowser.prg | 26 +++--- harbour/contrib/gtwvg/tests/wvgwvtclasses.prg | 16 ++-- harbour/contrib/hbhpdf/tests/harupdf.prg | 4 +- harbour/contrib/hbide/hbide.prg | 11 ++- harbour/contrib/hbide/ideactions.prg | 8 +- harbour/contrib/hbide/idemisc.prg | 36 ++++---- harbour/contrib/hbide/idesources.prg | 2 +- harbour/contrib/hbide/idetools.prg | 3 +- harbour/contrib/hbpost.hbm | 2 +- harbour/contrib/hbqt/generator2/hbqtgen2.prg | 9 +- harbour/contrib/hbqt/tests/wvtqt.hbp | 8 +- harbour/contrib/hbtip/mail.prg | 4 +- harbour/contrib/hbtip/tests/dbtohtml.prg | 2 +- harbour/contrib/hbxbp/tests/demoxbp.prg | 4 +- harbour/contrib/hbxbp/tests/dialogqt.prg | 4 +- harbour/contrib/hbxbp/tests/wvtqt.hbp | 8 +- harbour/contrib/make.hbs | 5 +- harbour/contrib/xhb/traceprg.prg | 18 ++-- harbour/examples/hbvpdf/tests/pdf_demo.prg | 36 ++++---- harbour/examples/httpsrv/cgifunc.prg | 6 +- .../httpsrv/modules/tableservletdb.prg | 2 +- harbour/examples/httpsrv/session.prg | 10 +-- harbour/examples/httpsrv/uhttpd.prg | 26 +++--- harbour/examples/uhttpd2/umain.prg | 4 +- harbour/src/debug/debugger.prg | 3 +- harbour/src/rtl/dirscan.prg | 5 +- harbour/tests/wcecon.prg | 2 +- harbour/utils/hbmk2/hbmk2.prg | 77 ++++++++++------ 31 files changed, 273 insertions(+), 191 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 2be6ba08ae..e4ef72d55d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,65 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-26 12:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * contrib/hbqt/tests/wvtqt.hbp + * contrib/hbxbp/tests/wvtqt.hbp + ! Added missing SVN header. + % Cleanup. + + * INSTALL + * contrib/hbpost.hbm + * config/global.mk + * Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect + new meaning after recent changes. With new build system + the implibs are always created in lib working dir, and + this setting only controls whether to copy it to final + install directory. The default is still 'no'. Setting it + to yes is only recommended if the installation will be + used in local environment (3rd party .dlls) only. IOW + never set this to yes when creating a build for other + users (f.e. for distribution). + INCOMPATIBLE if you used this setting, pls change it now. + + * INSTALL + + Documented HB_STATIC_* options. + + * contrib/make.hbs + * Updated TODO list. + + * src/debug/debugger.prg + * src/rtl/dirscan.prg + * tests/wcecon.prg + * contrib/xhb/traceprg.prg + * contrib/hbqt/tests/wvtqt.hbp + * contrib/hbqt/generator2/hbqtgen2.prg + * contrib/hbxbp/tests/demoxbp.prg + * contrib/hbxbp/tests/dialogqt.prg + * contrib/hbxbp/tests/wvtqt.hbp + * contrib/hbhpdf/tests/harupdf.prg + * contrib/gtwvg/tests/wvgtbrowser.prg + * contrib/gtwvg/tests/wvgwvtclasses.prg + * contrib/hbtip/tests/dbtohtml.prg + * contrib/hbtip/mail.prg + * contrib/hbide/idemisc.prg + * contrib/hbide/ideactions.prg + * contrib/hbide/idetools.prg + * contrib/hbide/idesources.prg + * contrib/hbide/hbide.prg + * examples/uhttpd2/umain.prg + * examples/hbvpdf/tests/pdf_demo.prg + * examples/httpsrv/uhttpd.prg + * examples/httpsrv/cgifunc.prg + * examples/httpsrv/modules/tableservletdb.prg + * examples/httpsrv/session.prg + * HB_OSPATHSEPARATOR() -> HB_PS() + % Delete temp vars along the way. + + * utils/hbmk2/hbmk2.prg + + Generalized internals for support for older Harbour and + xhb versions. + + Added -hb20 option. (thanks for asking for it so nicely ;) + 2010-07-25 17:47 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/tests/dialogqt.prg % Some refinement. @@ -23,23 +82,23 @@ + contrib/hbxbp/tests/dialogqt.prg + contrib/hbxbp/tests/wvtqt.hbp + contrib/hbxbp/tests/wvtqt.prg - + Presented: how a Windows console application can make use of + + Presented: how a Windows console application can make use of powerful Qt capabilities. The key lies in the MT mode. - - NOTE: follow previous log entry for details. + + NOTE: follow previous log entry for details. 2010-07-25 16:13 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + contrib/hbqt/tests/dialogqt.prg + contrib/hbqt/tests/wvtqt.hbp + contrib/hbqt/tests/wvtqt.prg - + Presented: how a Windows console application can make use of + + Presented: how a Windows console application can make use of powerful Qt capabilities. The key lies in the MT mode. - 1. Issue hbmk2 wvtqt.hbp -run + 1. Issue hbmk2 wvtqt.hbp -run 2. Press F12 to open Qt dialog. It is the same as in demoqt.prg. 3. Navigate in the Qt and console window at will. 4. Remaining in console, press F12 again, another dialog will open. - 5. To go further, in any Qt dialog, point to menu option + 5. To go further, in any Qt dialog, point to menu option and click on "Another dialog". 6. Navigate among windows. 7. Close any Qt window. I mean play with the opened windows. @@ -53,7 +112,7 @@ + Added: more class methods. * contrib/hbide/ideedit.prg - % Refined: alias->fieldsList protocol. + % Refined: alias->fieldsList protocol. + Implemented: abbreviated code completion usage. Here is how it works: @@ -64,9 +123,9 @@ zCmdD- DEFINE WINDOW oWnd BLAH-BLAH-BLAH 3. Execute hbIDE. Remember that any file prefixed as "hbide_protos_" will be populated in the code completion lists. - 4. In some editing instance, type "z" and you will see + 4. In some editing instance, type "z" and you will see above entries inside completion popup. - 5. As usual, select one, say zSAT, and you will see + 5. As usual, select one, say zSAT, and you will see 'SET ALTERNATE TO "myfile"' inserted removing keyword characters. NOTE: shorthand keyword is case insensitive. So you can use @@ -74,9 +133,9 @@ Keywords demonstrated as above are prefixed with "z", just because all shorthand(S) will be clubbed together, - but you may use any characters you like. + but you may use any characters you like. - Keyword must ever be followed by "-" (hyphen) character without + Keyword must ever be followed by "-" (hyphen) character without any spaces in between. This tells hbIDE that it is a shorthand word. Anyhow you can format the value as you like best. @@ -587,7 +646,7 @@ ; TODO: Rename this setting to HB_INSTALL_IMPLIB (or some better name). Now implib are always made, this setting only controls whether to install them (f.e. we don't want to install them - when creating package for distribution). + when creating package for distribution). [DONE] - Deleted stuff belonging to stdalone -hbimplib targets. This method is deprecated inside contrib area. @@ -868,7 +927,7 @@ ; TODO: HBIDE should hold its 'plugins' dir in user and all users home dirs, and use the name 'hbide_plugins' in the executable's home directory to avoid collision with - other tool which might also have a "plugin" folder. + other tool which might also have a "plugin" folder. [DONE] - contrib/rddbmcdx/hbbmcdx.hbp + contrib/rddbmcdx/rddbmcdx.hbp @@ -3427,7 +3486,7 @@ * Merged static .hbc files into "normal" .hbc files. Now static mode can be selected by setting HB_STATIC_* to 'yes' or '1'. ; TODO: Rename HB_QT_STATIC to HB_STATIC_QT. [DONE] - ; TODO: Document new setting in install. + ; TODO: Document new setting in install. [DONE] * contrib/hbssl/tests/test.prg ! Fixed warning. @@ -4135,7 +4194,7 @@ * Renamed to be shorter. + Little steps for standlone running mode. + Using HB_EOL() and HB_PS(). - ; TODO: Change it all over Harbour SVN. + ; TODO: Change it all over Harbour SVN. [DONE] 2010-07-06 12:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg diff --git a/harbour/INSTALL b/harbour/INSTALL index e7549878eb..7dd28d7b99 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -352,6 +352,13 @@ HARBOUR HB_QTPATH=/opt/qt46/bin/ HB_QTPOSTFIX=-qt4 + Certain contribs can be instructed (when using .hbc files) to link + against static build of their 3rd party lib dependencies: + HB_STATIC_ALLEGRO=yes + HB_STATIC_CURL=yes + HB_STATIC_OPENSSL=yes + HB_STATIC_QT=yes + NOTES: - You need to use native path format to your shell/OS. - Spaces in directory names aren't currently supported. (You can use 8.3 name alias on Windows platform, though) @@ -639,12 +646,6 @@ HARBOUR - HB_BUILD_SHARED=yes Create Harbour executables in shared mode. Default: yes when HB_INSTALL_PREFIX points to a *nix system location, otherwise no. - - HB_BUILD_IMPLIB=yes Create import libraries for external .dll - dependencies in 'install' phase. Default: no - (for Windows targets only. Please note that - this feature doesn't work with all possible - binary distributions of 3rd party packages. - We test only the official/mainstream ones.) - HB_BUILD_DEBUG=yes Create a debug build. Default: no - HB_BUILD_STRIP= [all|bin|lib|no] Strip symbols and debug information from binaries. @@ -682,6 +683,13 @@ HARBOUR external libraries. - HB_EXTERNALLIBS=[] Build space separated list of external libraries. Build all if left empty (default). + - HB_INSTALL_IMPLIB=yes Copy import libraries created for external .dll + dependencies to the library install directory in + 'install' build phase. Default: no + (for Windows/OS/2 targets only. Please note + that this feature doesn't work with all possible + binary distributions of 3rd party packages. + We test only the official/mainstream ones.) - HB_SRC_ROOTPATH= When using GNU Make older than 3.81, you shall set the root directory of Harbour source tree as an absolute path. If not set, some build functionality diff --git a/harbour/config/global.mk b/harbour/config/global.mk index 457f5a7f06..99f96b47d0 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -177,10 +177,10 @@ ifeq ($(HB_INIT_DONE),) # Enforce some basic settings for release packages export HB_BUILD_DLL := yes - export HB_BUILD_IMPLIB := no export HB_BUILD_OPTIM := yes export HB_BUILD_DEBUG := no export HB_BUILD_SHARED := no + export HB_INSTALL_IMPLIB := no endif # Can't build shared tools if we don't create dlls @@ -188,11 +188,11 @@ ifeq ($(HB_INIT_DONE),) export HB_BUILD_SHARED := no endif - ifeq ($(HB_BUILD_IMPLIB),yes) + ifeq ($(HB_INSTALL_IMPLIB),yes) # 'install' is required to create import libraries ifeq ($(filter install,$(HB_MAKECMDGOALS)),) - export HB_BUILD_IMPLIB := no - $(warning ! Warning: HB_BUILD_IMPLIB option works only when 'install' is requested.) + export HB_INSTALL_IMPLIB := no + $(warning ! Warning: HB_INSTALL_IMPLIB option works only when 'install' is requested.) endif endif endif @@ -275,9 +275,6 @@ ifeq ($(HB_INIT_DONE),) ifneq ($(HB_BUILD_DLL),) $(info ! HB_BUILD_DLL: $(HB_BUILD_DLL)) endif - ifneq ($(HB_BUILD_IMPLIB),) - $(info ! HB_BUILD_IMPLIB: $(HB_BUILD_IMPLIB)) - endif ifneq ($(HB_BUILD_SHARED),) $(info ! HB_BUILD_SHARED: $(HB_BUILD_SHARED)) endif @@ -311,6 +308,9 @@ ifeq ($(HB_INIT_DONE),) ifneq ($(HB_REBUILD_PARSER),) $(info ! HB_REBUILD_PARSER: $(HB_REBUILD_PARSER)) endif + ifneq ($(HB_INSTALL_IMPLIB),) + $(info ! HB_INSTALL_IMPLIB: $(HB_INSTALL_IMPLIB)) + endif endif # Shell detection diff --git a/harbour/contrib/gtwvg/tests/wvgtbrowser.prg b/harbour/contrib/gtwvg/tests/wvgtbrowser.prg index b3a3599006..d2ed9f54d9 100644 --- a/harbour/contrib/gtwvg/tests/wvgtbrowser.prg +++ b/harbour/contrib/gtwvg/tests/wvgtbrowser.prg @@ -1,12 +1,12 @@ /* * $Id$ */ - -/* + +/* * TBrowse Demonstration with GUI Elements * * This protocol can be clubbed with pure console implementation - * AND can be called IN a separate thread as well as modal TO + * AND can be called IN a separate thread as well as modal TO * current window. * * Pritpal Bedi @@ -18,7 +18,7 @@ #include "wvtwin.ch" #include "hbgtinfo.ch" #include "hbgtwvg.ch" -#include "wvgparts.ch" +#include "wvgparts.ch" /*----------------------------------------------------------------------*/ @@ -86,7 +86,7 @@ FUNCTION ExecBrowser( oCrt ) pGT := SetGT( 2, hb_gtSelect() ) cRDD := "DBFCDX" - cFileDbf := hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() + "test.dbf" + cFileDbf := hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() + "test.dbf" cFileIndex := "test.z01" USE ( cFileDbf ) NEW SHARED VIA ( cRDD ) @@ -213,7 +213,7 @@ FUNCTION ExecBrowser( oCrt ) SetGT( 2, pGT ) RETURN NIL - + //-------------------------------------------------------------------// STATIC FUNCTION DbSkipBlock( n ) @@ -234,7 +234,7 @@ STATIC FUNCTION DbSkipBlock( n ) endif RETURN nSkipped - + //-------------------------------------------------------------------// STATIC FUNCTION TBNext() @@ -253,7 +253,7 @@ STATIC FUNCTION TBNext() endif RETURN lMoved - + //-------------------------------------------------------------------// STATIC FUNCTION TBPrev() @@ -268,13 +268,13 @@ STATIC FUNCTION TBPrev() endif RETURN lMoved - + //-------------------------------------------------------------------// STATIC FUNCTION VouBlockField( i ) RETURN {|| fieldget( i ) } - + //-------------------------------------------------------------------// STATIC FUNCTION BrwHandleKey( oBrowse, nKey, lEnd ) @@ -341,7 +341,7 @@ STATIC FUNCTION BrwHandleKey( oBrowse, nKey, lEnd ) endcase RETURN lRet - + //-------------------------------------------------------------------// STATIC FUNCTION BrwOnEvent( oWvtBrw, cPaintID, oBrowse, nKey ) @@ -500,7 +500,7 @@ FUNCTION ConfigBrowser( aFields, cUseAlias, aTLBR, cDesc, oParent, cColorSpec, n oWvtBrw:bHandleEvent := {|oWvtBrw,cPaintID,oBrowse,nKey| BrwOnEvent( oWvtBrw,cPaintID,oBrowse,nKey ) } RETURN oWvtBrw - + //-------------------------------------------------------------------// STATIC FUNCTION BrwBuildMenu( oCrt ) @@ -532,5 +532,5 @@ STATIC FUNCTION BrwBuildMenu( oCrt ) oMenu:addItem( { oSMenu, NIL } ) Return oMenu - + //----------------------------------------------------------------------// diff --git a/harbour/contrib/gtwvg/tests/wvgwvtclasses.prg b/harbour/contrib/gtwvg/tests/wvgwvtclasses.prg index d7c0860de9..6476216470 100644 --- a/harbour/contrib/gtwvg/tests/wvgwvtclasses.prg +++ b/harbour/contrib/gtwvg/tests/wvgwvtclasses.prg @@ -1,12 +1,12 @@ /* * $Id$ */ - -/* - * Wvt*Classes Demonstration + +/* + * Wvt*Classes Demonstration * * This protocol can be clubbed with pure console implementation - * AND can be called IN a separate thread as well as modal TO + * AND can be called IN a separate thread as well as modal TO * current window. * * Pritpal Bedi @@ -18,7 +18,7 @@ #include "wvtwin.ch" #include "hbgtinfo.ch" #include "hbgtwvg.ch" -#include "wvgparts.ch" +#include "wvgparts.ch" /*----------------------------------------------------------------------*/ @@ -48,7 +48,7 @@ FUNCTION DialogWvgClassesOne( nMode ) MyDialogOne() endif RETURN NIL - + //----------------------------------------------------------------------// STATIC FUNCTION MyDialogOne( oCrt ) @@ -294,7 +294,7 @@ STATIC FUNCTION MyDialogOne( oCrt ) lOpen := .f. cUseAlias := "TEST" - USE ( hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() + "test.dbf" ) NEW ALIAS ( cUseAlias ) SHARED + USE ( hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() + "test.dbf" ) NEW ALIAS ( cUseAlias ) SHARED if !NetErr() lOpen := .t. oWvtBrw := ConfigBrowser( { 1,7,9,10,8 }, cUseAlias, { 6,67,36,120 }, "test.dbf - 1,7,9,10,8", oDlg, "N/W*,N/GR*",1001 ) @@ -303,7 +303,7 @@ STATIC FUNCTION MyDialogOne( oCrt ) lOpen1 := .f. cUseAlias1 := "TEST1" - USE ( hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() + "test.dbf" ) NEW ALIAS ( cUseAlias1 ) SHARED + USE ( hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() + "test.dbf" ) NEW ALIAS ( cUseAlias1 ) SHARED if !NetErr() lOpen1 := .t. oWvtBrw1 := ConfigBrowser( { 1,2,3,4,5,6 }, cUseAlias1, { 43,4,51,120 }, "test.dbf - 1,2,3,4,5,6",oDlg, "N/BG*,N/W*",1002 ) diff --git a/harbour/contrib/hbhpdf/tests/harupdf.prg b/harbour/contrib/hbhpdf/tests/harupdf.prg index 681fd9fb0e..40f3d5e9d3 100644 --- a/harbour/contrib/hbhpdf/tests/harupdf.prg +++ b/harbour/contrib/hbhpdf/tests/harupdf.prg @@ -967,7 +967,7 @@ STATIC FUNCTION show_description( page, x, y, text ) STATIC FUNCTION Page_CodePages( pdf ) LOCAL page, outline, font2, font_name, root, i, font, dst - LOCAL cResPath := "files" + hb_OSPathSeparator() + LOCAL cResPath := "files" + hb_ps() LOCAL cAfm := cResPath+"a010013l.afm" LOCAL cPfb := cResPath+"a010013l.pfb" LOCAL encodings := { ; @@ -1278,7 +1278,7 @@ STATIC FUNCTION Page_Annotation( pdf ) STATIC FUNCTION Page_Images( pdf ) LOCAL font, page, dst, image, image1, image2, image3 LOCAL x, y, angle, angle1, angle2, rad, rad1, rad2, iw, ih - LOCAL cImagePath := "files" + hb_OSPathSeparator() + LOCAL cImagePath := "files" + hb_ps() /* create default-font */ font := HPDF_GetFont(pdf, "Helvetica", NULL) diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 6d67e43efc..11f694d572 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.prg @@ -98,11 +98,10 @@ PROCEDURE Main( ... ) hbide_request() #ifdef HB_IDE_DISTRO - LOCAL cSep := hb_osPathSeparator() LOCAL cBse := hb_dirBase() + ".." /* Set the path env variable to Qt's run-time which is used to compile Harbour binaries */ - hb_setEnv( "PATH", cBse + cSep + "qt" + cSep + "lib" + ; + hb_setEnv( "PATH", cBse + hb_ps() + "qt" + hb_ps() + "lib" + ; hb_osPathListSeparator() + hb_getEnv( "PATH" ) ) /* Variable is used in hbide.env */ @@ -271,8 +270,8 @@ CLASS HbIde DATA cPathSkltns INIT "" DATA cSaveTo INIT "" DATA oOpenedSources - DATA resPath INIT ":/resources" + hb_OsPathSeparator() - DATA pathSep INIT hb_OsPathSeparator() + DATA resPath INIT ":/resources" + hb_ps() + DATA pathSep INIT hb_ps() DATA cLastFileOpenPath INIT hb_DirBase() + "projects" DATA cProcessInfo DATA cIniThemes @@ -365,7 +364,7 @@ METHOD HbIde:create( aParams ) ::nModeUI := UI_MODE_UI #endif - qPixmap := QPixmap():new( ":/resources" + hb_osPathSeparator() + "hbidesplash.png" ) + qPixmap := QPixmap():new( ":/resources" + hb_ps() + "hbidesplash.png" ) qSplash := QSplashScreen():new() * qSplash:setWindowFlags( hb_bitOr( Qt_WindowStaysOnTopHint, qSplash:windowFlags() ) ) qSplash:setPixmap( qPixmap ) @@ -503,7 +502,7 @@ METHOD HbIde:create( aParams ) #endif IF empty( ::cWrkFolderLast ) - ::cWrkFolderLast := hb_dirBase() + "projects" + hb_osPathSeparator() + ::cWrkFolderLast := hb_dirBase() + "projects" + hb_ps() ENDIF ::oDockB2:hide() /* This widget never contains anything so must be forced to hide */ diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index dc2e0ce52c..467722cd30 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -731,11 +731,11 @@ STATIC FUNCTION mnuNormalizeItem( cCaption ) cCaption := Alltrim( cCaption ) IF !Empty( cIco ) - cIco := StrTran( cIco, '/', hb_OsPathSeparator() ) - cIco := StrTran( cIco, '\', hb_OsPathSeparator() ) + cIco := StrTran( cIco, '/', hb_ps() ) + cIco := StrTran( cIco, '\', hb_ps() ) - IF !( hb_OsPathSeparator() $ cIco ) - cIco := ":/resources" + hb_OsPathSeparator() + cIco + "|" + IF !( hb_ps() $ cIco ) + cIco := ":/resources" + hb_ps() + cIco + "|" ELSE cIco := cIco + "|" Endif diff --git a/harbour/contrib/hbide/idemisc.prg b/harbour/contrib/hbide/idemisc.prg index d1d81a2efe..3e7ae634a3 100644 --- a/harbour/contrib/hbide/idemisc.prg +++ b/harbour/contrib/hbide/idemisc.prg @@ -321,7 +321,7 @@ FUNCTION hbide_fetchADir( oWnd, cTitle, cDftDir ) cFile := oDlg:open( cDftDir, , .f. ) IF hb_isChar( cFile ) - //cFile := strtran( cFile, "/", HB_OSPATHSEPARATOR() ) + //cFile := strtran( cFile, "/", hb_ps() ) RETURN cFile ENDIF @@ -612,17 +612,17 @@ FUNCTION hbide_pathStripLastSlash( cPath ) /*----------------------------------------------------------------------*/ FUNCTION hbide_pathAppendLastSlash( cPath ) - RETURN iif( right( cPath, 1 ) $ "\/", cPath, cPath + hb_osPathSeparator() ) + RETURN iif( right( cPath, 1 ) $ "\/", cPath, cPath + hb_ps() ) /*----------------------------------------------------------------------*/ FUNCTION hbide_pathToOSPath( cPath ) LOCAL n - cPath := strtran( cPath, "//" , hb_osPathSeparator() ) - cPath := strtran( cPath, "/" , hb_osPathSeparator() ) - cPath := strtran( cPath, "\\" , hb_osPathSeparator() ) - cPath := strtran( cPath, "\" , hb_osPathSeparator() ) + cPath := strtran( cPath, "//" , hb_ps() ) + cPath := strtran( cPath, "/" , hb_ps() ) + cPath := strtran( cPath, "\\" , hb_ps() ) + cPath := strtran( cPath, "\" , hb_ps() ) IF ( n := at( ":", cPath ) ) > 0 cPath := upper( substr( cPath, 1, n - 1 ) ) + substr( cPath, n ) @@ -916,7 +916,7 @@ FUNCTION hbide_checkDefaultExtension( cFileName, cDefaultExt ) IF Empty( cExt ) cExt := cDefaultExt ENDIF - RETURN cPath + HB_OSPATHSEPARATOR() + cFile + HB_OSPATHSEPARATOR() + cExt + RETURN cPath + hb_ps() + cFile + hb_ps() + cExt /*----------------------------------------------------------------------*/ @@ -944,7 +944,7 @@ FUNCTION hbide_pathProc( cPathR, cPathA ) /*----------------------------------------------------------------------*/ FUNCTION hbide_pwd() - RETURN hbide_DirAddPathSep( hb_CurDrive() + hb_osDriveSeparator() + hb_osPathSeparator() + CurDir() ) + RETURN hbide_DirAddPathSep( hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() ) /*----------------------------------------------------------------------*/ @@ -1497,7 +1497,7 @@ FUNCTION hbmk2_PathMakeRelative( cPathBase, cPathTarget, lForceRelative ) /* Force to return relative paths even when base is different. */ IF lForceRelative - RETURN FN_FromArray( aPathTarget, tmp, NIL, cTargetFileName, Replicate( ".." + hb_osPathSeparator(), Len( aPathBase ) - tmp ) ) + RETURN FN_FromArray( aPathTarget, tmp, NIL, cTargetFileName, Replicate( ".." + hb_ps(), Len( aPathBase ) - tmp ) ) ENDIF RETURN cPathTarget @@ -1512,7 +1512,7 @@ STATIC FUNCTION FN_ToArray( cPath, /* @ */ cFileName ) cFileName := cName + cExt ENDIF - RETURN hb_ATokens( cDir, hb_osPathSeparator() ) + RETURN hb_ATokens( cDir, hb_ps() ) STATIC FUNCTION FN_FromArray( aPath, nFrom, nTo, cFileName, cDirPrefix ) @@ -1538,7 +1538,7 @@ STATIC FUNCTION FN_FromArray( aPath, nFrom, nTo, cFileName, cDirPrefix ) cDir := "" FOR tmp := nFrom TO nTo - cDir += aPath[ tmp ] + hb_osPathSeparator() + cDir += aPath[ tmp ] + hb_ps() NEXT RETURN hb_FNameMerge( DirDelPathSep( hbide_DirAddPathSep( cDirPrefix ) + cDir ), cFileName ) @@ -1569,8 +1569,8 @@ STATIC FUNCTION PathProc( cPathR, cPathA ) FUNCTION hbide_DirAddPathSep( cDir ) - IF ! Empty( cDir ) .AND. !( Right( cDir, 1 ) == hb_osPathSeparator() ) - cDir += hb_osPathSeparator() + IF ! Empty( cDir ) .AND. !( Right( cDir, 1 ) == hb_ps() ) + cDir += hb_ps() ENDIF RETURN cDir @@ -1579,12 +1579,12 @@ FUNCTION hbide_DirAddPathSep( cDir ) STATIC FUNCTION DirDelPathSep( cDir ) IF Empty( hb_osDriveSeparator() ) - DO WHILE Len( cDir ) > 1 .AND. Right( cDir, 1 ) == hb_osPathSeparator() + DO WHILE Len( cDir ) > 1 .AND. Right( cDir, 1 ) == hb_ps() cDir := hb_StrShrink( cDir, 1 ) ENDDO ELSE - DO WHILE Len( cDir ) > 1 .AND. Right( cDir, 1 ) == hb_osPathSeparator() .AND. ; - !( Right( cDir, 2 ) == hb_osDriveSeparator() + hb_osPathSeparator() ) + DO WHILE Len( cDir ) > 1 .AND. Right( cDir, 1 ) == hb_ps() .AND. ; + !( Right( cDir, 2 ) == hb_osDriveSeparator() + hb_ps() ) cDir := hb_StrShrink( cDir, 1 ) ENDDO ENDIF @@ -1598,8 +1598,8 @@ FUNCTION hbide_fetchSubPaths( aPaths, cRootPath, lSubs ) DEFAULT lSubs TO .t. - IF right( cRootPath, 1 ) != hb_osPathSeparator() - cRootPath += hb_osPathSeparator() + IF right( cRootPath, 1 ) != hb_ps() + cRootPath += hb_ps() ENDIF cRootPath := hbide_pathToOSPath( cRootPath ) diff --git a/harbour/contrib/hbide/idesources.prg b/harbour/contrib/hbide/idesources.prg index 86498d86bd..fe886dc502 100644 --- a/harbour/contrib/hbide/idesources.prg +++ b/harbour/contrib/hbide/idesources.prg @@ -222,7 +222,7 @@ METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs ) lNew := Empty( cSource ) .OR. lAs IF lNew cNewFile := ::selectSource( 'save', ; - iif( !Empty( cSource ), cSource, hb_dirBase() + "projects" + hb_osPathSeparator() ),; + iif( !Empty( cSource ), cSource, hb_dirBase() + "projects" + hb_ps() ),; "Save " + oEdit:oTab:caption + " as..." ) IF empty( cNewFile ) // will check later what decision to take diff --git a/harbour/contrib/hbide/idetools.prg b/harbour/contrib/hbide/idetools.prg index f99c6e37d6..3415dc6fee 100644 --- a/harbour/contrib/hbide/idetools.prg +++ b/harbour/contrib/hbide/idetools.prg @@ -632,7 +632,7 @@ METHOD IdeToolsManager:populatePlugins( lClear ) ENDIF ::aPlugins := {} - cDir := hb_dirBase() + "plugins" + hb_osPathSeparator() + cDir := hb_dirBase() + "plugins" + hb_ps() aDir := directory( cDir + "*" ) IF !empty( aDir ) FOR EACH aFile IN aDir @@ -874,4 +874,3 @@ METHOD IdeToolsManager:macro2value( cMacro ) RETURN cVal /*----------------------------------------------------------------------*/ - diff --git a/harbour/contrib/hbpost.hbm b/harbour/contrib/hbpost.hbm index 0d19c282e9..1f50735377 100644 --- a/harbour/contrib/hbpost.hbm +++ b/harbour/contrib/hbpost.hbm @@ -46,4 +46,4 @@ {_HB_BUILD_INSTALL&hbexe}-instpath=${_HB_BIN_INSTALL}/ {_HB_BUILD_INSTALL&hbdyn}-instpath=${_HB_DYN_INSTALL}/ {_HB_BUILD_INSTALL&hblib}-instpath=inc:${_HB_INC_INSTALL}/ -{_HB_BUILD_INSTALL&HB_BUILD_IMPLIB='yes'}-instpath=implib:${_HB_LIB_INSTALL}/ +{_HB_BUILD_INSTALL&HB_INSTALL_IMPLIB='yes'}-instpath=implib:${_HB_LIB_INSTALL}/ diff --git a/harbour/contrib/hbqt/generator2/hbqtgen2.prg b/harbour/contrib/hbqt/generator2/hbqtgen2.prg index f702bf5134..896ad8cd5b 100644 --- a/harbour/contrib/hbqt/generator2/hbqtgen2.prg +++ b/harbour/contrib/hbqt/generator2/hbqtgen2.prg @@ -1,6 +1,7 @@ /* * $Id$ */ + #include "simpleio.ch" /* @@ -29,11 +30,11 @@ PROCEDURE Main() FOR EACH tmp IN Directory( "*.txt" ) hb_FNameSplit( tmp[ F_NAME ],, @cName ) - cHeaderDir := GetEnv( "HB_WITH_QT" ) + hb_osPathSeparator() + cName + cHeaderDir := GetEnv( "HB_WITH_QT" ) + hb_ps() + cName FOR EACH tmp1 IN hb_ATokens( StrTran( hb_MemoRead( tmp[ F_NAME ] ), Chr( 13 ) ), Chr( 10 ) ) IF ! Empty( tmp1 ) .AND. ! ( Left( tmp1, 1 ) == "#" ) aStuff := { { .F., "" }, {} } - ProcessHeader( aStuff, cHeaderDir + hb_osPathSeparator() + tmp1, cName, tmp1 ) + ProcessHeader( aStuff, cHeaderDir + hb_ps() + tmp1, cName, tmp1 ) // ASort( aStuff[ 2 ],,, {| x, y | x[ 1 ] < y[ 1 ] } ) // FOR EACH tmp2 IN aStuff[ 2 ] // OutStd( aType[ tmp2[ 1 ] ], tmp2[ 2 ], hb_eol() ) @@ -108,8 +109,8 @@ STATIC PROCEDURE ProcessHeader( aStuff, cFileName, cLib, cOriFileName ) STATIC FUNCTION DirAddPathSep( cDir ) - IF ! Empty( cDir ) .AND. !( Right( cDir, 1 ) == hb_osPathSeparator() ) - cDir += hb_osPathSeparator() + IF ! Empty( cDir ) .AND. !( Right( cDir, 1 ) == hb_ps() ) + cDir += hb_ps() ENDIF RETURN cDir diff --git a/harbour/contrib/hbqt/tests/wvtqt.hbp b/harbour/contrib/hbqt/tests/wvtqt.hbp index c452601aa4..5132a2dd62 100644 --- a/harbour/contrib/hbqt/tests/wvtqt.hbp +++ b/harbour/contrib/hbqt/tests/wvtqt.hbp @@ -1,11 +1,11 @@ +# +# $Id$ +# - --inc -es2 -w3 -gtwvt --gui -mt -d__WITH_WVT__ @@ -14,5 +14,3 @@ wvtqt.prg dialogqt.prg - - diff --git a/harbour/contrib/hbtip/mail.prg b/harbour/contrib/hbtip/mail.prg index 887ebd306b..47f04036f2 100644 --- a/harbour/contrib/hbtip/mail.prg +++ b/harbour/contrib/hbtip/mail.prg @@ -609,7 +609,7 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail METHOD attachFile( cFileName ) CLASS TipMail LOCAL cContent := hb_MemoRead( cFileName ) LOCAL cMimeType := TIP_FileMimetype( cFileName ) - LOCAL cDelim := hb_osPathSeparator() + LOCAL cDelim := hb_ps() LOCAL oAttach @@ -631,7 +631,7 @@ METHOD attachFile( cFileName ) CLASS TipMail METHOD detachFile( cPath ) CLASS TipMail LOCAL cContent := ::getBody() LOCAL cFileName := ::getFileName() - LOCAL cDelim := hb_osPathSeparator() + LOCAL cDelim := hb_ps() LOCAL nFileHandle IF Empty( cFileName ) diff --git a/harbour/contrib/hbtip/tests/dbtohtml.prg b/harbour/contrib/hbtip/tests/dbtohtml.prg index f40cceceaf..ea73c18646 100644 --- a/harbour/contrib/hbtip/tests/dbtohtml.prg +++ b/harbour/contrib/hbtip/tests/dbtohtml.prg @@ -12,7 +12,7 @@ PROCEDURE Main CLS BEGIN SEQUENCE - USE ( hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() +; + USE ( hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() +; "test.dbf" ) RECOVER ? "Error: Database not found test.dbf" diff --git a/harbour/contrib/hbxbp/tests/demoxbp.prg b/harbour/contrib/hbxbp/tests/demoxbp.prg index c6d90b379d..6dd9229741 100644 --- a/harbour/contrib/hbxbp/tests/demoxbp.prg +++ b/harbour/contrib/hbxbp/tests/demoxbp.prg @@ -1644,7 +1644,7 @@ STATIC FUNCTION RtfApplyFont( oRTF ) FUNCTION Build_Browse( oWnd ) LOCAL aPresParam, oXbpBrowse, oXbpColumn, s - LOCAL cPath := hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() + LOCAL cPath := hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() Set( _SET_DATEFORMAT, "yyyy.mm.dd" ) /* ANSI */ @@ -1705,7 +1705,7 @@ FUNCTION Build_Browse( oWnd ) // oXbpColumn := XbpColumn():new() oXbpColumn:type := XBPCOL_TYPE_FILEICON - cPath := hb_DirBase() + hb_osPathSeparator() + cPath := hb_DirBase() + hb_ps() oXbpColumn:dataLink := {|n| n := recno(), IF( n%3 == 0, cPath + "abs3.png", IF( n%5 == 0, cPath + "copy.png", cPath + "vr.png" ) ) } oXbpColumn:create( , , , , aPresParam ) // diff --git a/harbour/contrib/hbxbp/tests/dialogqt.prg b/harbour/contrib/hbxbp/tests/dialogqt.prg index db7a75dea1..b5d0b21c5f 100644 --- a/harbour/contrib/hbxbp/tests/dialogqt.prg +++ b/harbour/contrib/hbxbp/tests/dialogqt.prg @@ -1587,7 +1587,7 @@ STATIC FUNCTION RtfApplyFont( oRTF ) STATIC FUNCTION Build_Browse( oWnd ) LOCAL aPresParam, oXbpBrowse, oXbpColumn, s - LOCAL cPath := hb_DirBase() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "tests" + hb_osPathSeparator() + LOCAL cPath := hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() Set( _SET_DATEFORMAT, "yyyy.mm.dd" ) /* ANSI */ @@ -1648,7 +1648,7 @@ STATIC FUNCTION Build_Browse( oWnd ) // oXbpColumn := XbpColumn():new() oXbpColumn:type := XBPCOL_TYPE_FILEICON - cPath := hb_DirBase() + hb_osPathSeparator() + cPath := hb_DirBase() + hb_ps() oXbpColumn:dataLink := {|n| n := recno(), IF( n%3 == 0, cPath + "abs3.png", IF( n%5 == 0, cPath + "copy.png", cPath + "vr.png" ) ) } oXbpColumn:create( , , , , aPresParam ) // diff --git a/harbour/contrib/hbxbp/tests/wvtqt.hbp b/harbour/contrib/hbxbp/tests/wvtqt.hbp index c452601aa4..5132a2dd62 100644 --- a/harbour/contrib/hbxbp/tests/wvtqt.hbp +++ b/harbour/contrib/hbxbp/tests/wvtqt.hbp @@ -1,11 +1,11 @@ +# +# $Id$ +# - --inc -es2 -w3 -gtwvt --gui -mt -d__WITH_WVT__ @@ -14,5 +14,3 @@ wvtqt.prg dialogqt.prg - - diff --git a/harbour/contrib/make.hbs b/harbour/contrib/make.hbs index 3930b1e16b..90ea4dd01e 100755 --- a/harbour/contrib/make.hbs +++ b/harbour/contrib/make.hbs @@ -34,14 +34,15 @@ 3. hbmk2 location detection in standalone mode (or move hbmk2 to core lib?) 4. Move in external libs to contrib area? (bz2, minizip, sqlite3) + (the only downside is that irrelevant hits will be spilling + 'grep -R' results) 5. 'install' is ignored in stdalone mode. It would be needed to replicate the install dir defaulting logic found in global.mk to implement it. 6. Delete header install related logic from GNU Make system, also delete doc/*.txt install related logic (easily replacable with postinst.hbs logic) - 7. Move some logic to hbmk2. - 8. Honor paths found in --hbinfo hbctree{{}} section. + 7. Honor paths found in --hbinfo hbctree{{}} section. */ #pragma warninglevel=3 diff --git a/harbour/contrib/xhb/traceprg.prg b/harbour/contrib/xhb/traceprg.prg index 496b1cc684..93c7e8aa75 100644 --- a/harbour/contrib/xhb/traceprg.prg +++ b/harbour/contrib/xhb/traceprg.prg @@ -75,7 +75,7 @@ FUNCTION xhb_setTrace( xTrace ) ENDIF ENDIF -RETURN lTrace + RETURN lTrace FUNCTION xhb_setTraceFile( xFile, lAppend ) LOCAL cTraceFile := s_cSET_TRACEFILE @@ -87,7 +87,7 @@ FUNCTION xhb_setTraceFile( xFile, lAppend ) ENDIF ENDIF -RETURN cTraceFile + RETURN cTraceFile FUNCTION xhb_setTraceStack( xLevel ) LOCAL nTraceLevel := s_nSET_TRACESTACK @@ -106,7 +106,7 @@ FUNCTION xhb_setTraceStack( xLevel ) ENDIF ENDIF -RETURN nTraceLevel + RETURN nTraceLevel //--------------------------------------------------------------// @@ -165,12 +165,12 @@ FUNCTION TraceLog( ... ) FClose( FileHandle ) -RETURN .T. + RETURN .T. + //--------------------------------------------------------------// - -static function cWithPath(cFilename) +STATIC FUNCTION cWithPath( cFilename ) /* Ensure cFilename contains path. If it doesn't, add current directory to the front of it */ - local cPath - hb_fnamesplit(cFilename, @cPath) -return iif(empty(cPath), "." + hb_ospathseparator(), "") + cFilename + LOCAL cPath + hb_fnamesplit( cFilename, @cPath ) + RETURN iif( Empty( cPath ), "." + hb_ps(), "" ) + cFilename diff --git a/harbour/examples/hbvpdf/tests/pdf_demo.prg b/harbour/examples/hbvpdf/tests/pdf_demo.prg index 179cdcef79..821f503eb9 100644 --- a/harbour/examples/hbvpdf/tests/pdf_demo.prg +++ b/harbour/examples/hbvpdf/tests/pdf_demo.prg @@ -28,12 +28,12 @@ procedure main() { "Helvetica", .t., .t., .t., .t. },; { "Courier", .t., .t., .t., .t. } } - pdfOpen('test.pdf', 200, .t.) + pdfOpen("test.pdf", 200, .t.) pdfEditOnHeader() - pdfImage( 'files' + HB_OSPATHSEPARATOR() + 'color.tif', 0, 0, "M" ) // file, row, col, units, height, width + pdfImage( "files" + hb_ps() + "color.tif", 0, 0, "M" ) // file, row, col, units, height, width pdfEditOffHeader() - pdfSaveHeader('test.hea') + pdfSaveHeader("test.hea") pdfCloseHeader() pdfBookOpen() @@ -96,17 +96,17 @@ procedure main() nWidth := 90 nTab := 0 - cTestFile := memoread('files' + HB_OSPATHSEPARATOR() + 'test.txt') + cTestFile := memoread("files" + hb_ps() + "test.txt") - pdfText( cTestFile, 28, 107.95, nWidth, nTab, 3, 'M', chr(253) + chr(0) + chr(0) + chr(255) )//, pdfTextCount( memoread('test.txt'), 28, 107.95, nWidth, nTab, 3, 'M' ) - pdfText( cTestFile, 58, 107.95, nWidth, nTab, 2, 'M', chr(253) + chr(0) + chr(255) + chr(0) )//, pdfTextCount( memoread('test.txt'), 58, 107.95, nWidth, nTab, 2, 'M' ) - pdfText( cTestFile, 88, 107.95, nWidth, nTab, 1, 'M', chr(253) + chr(255) + chr(0) + chr(0) )//, pdfTextCount( memoread('test.txt'), 88, 107.95, nWidth, nTab, 1, 'M' ) - pdfText( cTestFile, 118, 107.95 - nWidth / 2, nWidth, nTab, 4, 'M', chr(253) + chr(255) + chr(255) + chr(0) )//, pdfTextCount( memoread('test.txt'), 118, 107.95 - nWidth / 2, nWidth, nTab, 4, 'M' ) + pdfText( cTestFile, 28, 107.95, nWidth, nTab, 3, "M", chr(253) + chr(0) + chr(0) + chr(255) )//, pdfTextCount( memoread("test.txt"), 28, 107.95, nWidth, nTab, 3, "M" ) + pdfText( cTestFile, 58, 107.95, nWidth, nTab, 2, "M", chr(253) + chr(0) + chr(255) + chr(0) )//, pdfTextCount( memoread("test.txt"), 58, 107.95, nWidth, nTab, 2, "M" ) + pdfText( cTestFile, 88, 107.95, nWidth, nTab, 1, "M", chr(253) + chr(255) + chr(0) + chr(0) )//, pdfTextCount( memoread("test.txt"), 88, 107.95, nWidth, nTab, 1, "M" ) + pdfText( cTestFile, 118, 107.95 - nWidth / 2, nWidth, nTab, 4, "M", chr(253) + chr(255) + chr(255) + chr(0) )//, pdfTextCount( memoread("test.txt"), 118, 107.95 - nWidth / 2, nWidth, nTab, 4, "M" ) - pdfText( cTestFile, 34, 100, nWidth, nTab, 3, 'R', chr(253) + chr(0) + chr(128) + chr(128) )//, pdfTextCount( memoread('test.txt'), 33, 100, nWidth, nTab, 3, 'R' ) - pdfText( cTestFile, 41, 100, nWidth, nTab, 2, 'R', chr(253) + chr(0) + chr(191) + chr(255) )//, pdfTextCount( memoread('test.txt'), 40, 100, nWidth, nTab, 2, 'R' ) - pdfText( cTestFile, 48, 100, nWidth, nTab, 1, 'R', chr(253) + chr(244) + chr(164) + chr(96) )//, pdfTextCount( memoread('test.txt'), 47, 100, nWidth, nTab, 1, 'R' ) - pdfText( cTestFile, 55, 35, nWidth, nTab, 4, 'R', chr(253) + chr(0) + chr(0) + chr(0) )//, pdfTextCount( memoread('test.txt'), 54, 35, nWidth, nTab, 4, 'R' ) + pdfText( cTestFile, 34, 100, nWidth, nTab, 3, "R", chr(253) + chr(0) + chr(128) + chr(128) )//, pdfTextCount( memoread("test.txt"), 33, 100, nWidth, nTab, 3, "R" ) + pdfText( cTestFile, 41, 100, nWidth, nTab, 2, "R", chr(253) + chr(0) + chr(191) + chr(255) )//, pdfTextCount( memoread("test.txt"), 40, 100, nWidth, nTab, 2, "R" ) + pdfText( cTestFile, 48, 100, nWidth, nTab, 1, "R", chr(253) + chr(244) + chr(164) + chr(96) )//, pdfTextCount( memoread("test.txt"), 47, 100, nWidth, nTab, 1, "R" ) + pdfText( cTestFile, 55, 35, nWidth, nTab, 4, "R", chr(253) + chr(0) + chr(0) + chr(0) )//, pdfTextCount( memoread("test.txt"), 54, 35, nWidth, nTab, 4, "R" ) pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "Fonts", 1, aReport[ REPORTPAGE ], 0 ) @@ -128,34 +128,34 @@ procedure main() pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "Pictures", 1, aReport[ REPORTPAGE ], 0 ) pdfBookAdd( "TIFF", 2, aReport[ REPORTPAGE ], 0 ) - pdfImage( 'files' + HB_OSPATHSEPARATOR() + 'color.tif', 0, 0, "M" ) // file, row, col, units, height, width + pdfImage( "files" + hb_ps() + "color.tif", 0, 0, "M" ) // file, row, col, units, height, width pdfRJust(pdfUnderline("TIFF"), nK++, aReport[ REPORTWIDTH ], "R") pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "JPEG", 2, aReport[ REPORTPAGE ], 0 ) - pdfImage( 'files' + HB_OSPATHSEPARATOR() + 'color.jpg', 0, 0, "M" ) // file, row, col, units, height, width + pdfImage( "files" + hb_ps() + "color.jpg", 0, 0, "M" ) // file, row, col, units, height, width pdfRJust(pdfUnderline("JPEG"), nK, aReport[ REPORTWIDTH ], "R") - pdfOpenHeader('test.hea') + pdfOpenHeader("test.hea") pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "Headers", 1, aReport[ REPORTPAGE ], 0 ) pdfBookAdd( "Picture Header Page 8", 2, aReport[ REPORTPAGE ], 0 ) // version 0.01 - pdfAtSay( chr(253) + chr(255) + chr(0) + chr(0) + 'Red Sample of header repeating on pages 8-10', 1, 20, "R" ) + pdfAtSay( chr(253) + chr(255) + chr(0) + chr(0) + "Red Sample of header repeating on pages 8-10", 1, 20, "R" ) pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "Picture Header Page 9", 2, aReport[ REPORTPAGE ], 0 ) // version 0.01 - pdfAtSay( chr(253) + chr(0) + chr(255) + chr(0) + 'Green Sample of header repeating on pages 8-10', 1, 20, "R" ) + pdfAtSay( chr(253) + chr(0) + chr(255) + chr(0) + "Green Sample of header repeating on pages 8-10", 1, 20, "R" ) pdfNewPage( "LETTER", "P", 6 ) pdfBookAdd( "Picture Header Page 10", 2, aReport[ REPORTPAGE ], 0 ) // version 0.01 - pdfAtSay( chr(253) + chr(0) + chr(0) + chr(255) + 'Blue Sample of header repeating on pages 8-10', 1, 20, "R" ) + pdfAtSay( chr(253) + chr(0) + chr(0) + chr(255) + "Blue Sample of header repeating on pages 8-10", 1, 20, "R" ) pdfClose() diff --git a/harbour/examples/httpsrv/cgifunc.prg b/harbour/examples/httpsrv/cgifunc.prg index e8360e9642..4c66ccf804 100644 --- a/harbour/examples/httpsrv/cgifunc.prg +++ b/harbour/examples/httpsrv/cgifunc.prg @@ -707,7 +707,7 @@ RETURN aRetVal PROCEDURE uhttpd_WriteToLogFile( cString, cLog, lCreate ) LOCAL nHandle, cSep - cSep := HB_OsPathSeparator() + cSep := hb_ps() //DEFAULT cLog TO AppFullPath() + cSep + "logfile.log" DEFAULT cLog TO cSep + "tmp" + cSep + "logfile.log" @@ -751,7 +751,7 @@ FUNCTION uhttpd_SplitFileName( cFile ) "UNC" => NIL ; } - cSep := HB_OsPathSeparator() + cSep := hb_ps() WITH OBJECT hFile :FULLPATH := IIF( !Empty( :PATH ), IIF( !( Right( :PATH, Len( cSep ) ) == cSep ), :PATH + cSep, :PATH ), "" ) @@ -765,7 +765,7 @@ FUNCTION uhttpd_AppFullPath() LOCAL cPrgFullPath := hExeFile:FULLPATH LOCAL cPath, cSep - cSep := HB_OsPathSeparator() + cSep := hb_ps() IF Right( cPrgFullPath, Len( cSep ) ) == cSep cPath := SubStr( cPrgFullPath, 1, Len( cPrgFullPath ) - Len( cSep ) ) diff --git a/harbour/examples/httpsrv/modules/tableservletdb.prg b/harbour/examples/httpsrv/modules/tableservletdb.prg index 4cb5ec065b..7507c3af85 100644 --- a/harbour/examples/httpsrv/modules/tableservletdb.prg +++ b/harbour/examples/httpsrv/modules/tableservletdb.prg @@ -157,7 +157,7 @@ RETURN Self METHOD Open() CLASS TableManager LOCAL cDBF := ::cTable - //hb_ToOutDebug( "CurPath = %s", hb_CurDrive() + hb_osDriveSeparator() + HB_OSPathSeparator() + CurDir() ) + //hb_ToOutDebug( "CurPath = %s", hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() ) //hb_ToOutDebug( "before: cDBF = %s, Used() = %s\n", cDBF, Used() ) diff --git a/harbour/examples/httpsrv/session.prg b/harbour/examples/httpsrv/session.prg index 06cbcfb06b..a38a61cb67 100644 --- a/harbour/examples/httpsrv/session.prg +++ b/harbour/examples/httpsrv/session.prg @@ -594,7 +594,7 @@ METHOD SessionRead( cID ) CLASS uhttpd_Session LOCAL nRetry := 0 DEFAULT cID TO ::cSID - cFile := ::cSavePath + HB_OSPathSeparator() + ::cName + "_" + cID + cFile := ::cSavePath + hb_ps() + ::cName + "_" + cID //TraceLog( "SessionRead: cFile", cFile ) IF File( cFile ) DO WHILE nRetry++ <= ::nFileRetry @@ -638,7 +638,7 @@ METHOD SessionWrite( cID, cData ) CLASS uhttpd_Session nFileSize := Len( cData ) - cFile := ::cSavePath + HB_OSPathSeparator() + ::cName + "_" + cID + cFile := ::cSavePath + hb_ps() + ::cName + "_" + cID //TraceLog( "SessionWrite() - cFile", cFile ) IF nFileSize > 0 DO WHILE nRetry++ <= ::nFileRetry @@ -678,7 +678,7 @@ METHOD SessionDestroy( cID ) CLASS uhttpd_Session ::oCookie:DeleteCookie( ::cName ) //TraceLog( "SessionDestroy() - cID, oCGI:h_Session", cID, DumpValue( oCGI:h_Session ) ) - cFile := ::cSavePath + HB_OSPathSeparator() + ::cName + "_" + cID + cFile := ::cSavePath + hb_ps() + ::cName + "_" + cID lOk := FALSE DO WHILE nRetry++ <= ::nFileRetry @@ -708,7 +708,7 @@ METHOD SessionGC( nMaxLifeTime ) CLASS uhttpd_Session LOCAL aDir, aFile DEFAULT nMaxLifeTime TO ::nGc_MaxLifeTime - aDir := Directory( ::cSavePath + HB_OSPathSeparator() + ::cName + "_*.*" ) + aDir := Directory( ::cSavePath + hb_ps() + ::cName + "_*.*" ) FOR EACH aFile IN aDir nSecs := TimeDiffAsSeconds( aFile[ F_DATE ], Date(), aFile[ F_TIME ], Time() ) @@ -716,7 +716,7 @@ METHOD SessionGC( nMaxLifeTime ) CLASS uhttpd_Session // aFile[ F_NAME ], aFile[ F_DATE ], Date(), aFile[ F_TIME ], Time(), nSecs, nMaxLifeTime ) IF nSecs > nMaxLifeTime // No error checking here, because if I cannot delete file now I will find it again on next loop - FErase( ::cSavePath + HB_OSPathSeparator() + aFile[ F_NAME ] ) + FErase( ::cSavePath + hb_ps() + aFile[ F_NAME ] ) ENDIF NEXT diff --git a/harbour/examples/httpsrv/uhttpd.prg b/harbour/examples/httpsrv/uhttpd.prg index cf171dd56c..cef07ef464 100644 --- a/harbour/examples/httpsrv/uhttpd.prg +++ b/harbour/examples/httpsrv/uhttpd.prg @@ -128,8 +128,8 @@ #define LISTEN_PORT 8082 // differs from standard 80 port for tests in case // anyone has a apache/IIS installed #define FILE_STOP ".uhttpd.stop" -#define FILE_ACCESS_LOG "logs" + HB_OSPathSeparator() + "access.log" -#define FILE_ERROR_LOG "logs" + HB_OSPathSeparator() + "error.log" +#define FILE_ACCESS_LOG "logs" + hb_ps() + "access.log" +#define FILE_ERROR_LOG "logs" + hb_ps() + "error.log" #define DIRECTORYINDEX_ARRAY { "index.html", "index.htm" } #define PAGE_STATUS_REFRESH 5 @@ -235,7 +235,7 @@ FUNCTION MAIN( ... ) // defaults not changeble via ini file lStop := FALSE - cConfig := EXE_Path() + hb_OSPathSeparator() + APP_NAME + ".ini" + cConfig := EXE_Path() + hb_ps() + APP_NAME + ".ini" lConsole := TRUE nStartServiceThreads := START_SERVICE_THREADS @@ -1474,21 +1474,21 @@ STATIC FUNCTION CGIExec( cProc, /*@*/ cOutPut ) // No hIn, hErr == hOut // save current directory - cCurPath := hb_CurDrive() + hb_osDriveSeparator() + HB_OSPathSeparator() + CurDir() + cCurPath := hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() //hb_toOutDebug( "cCurPath: %s\n\r", cCurPath ) // Change dir to document root DirChange( s_cDocumentRoot ) - //hb_toOutDebug( "New Path: %s\n\r", hb_CurDrive() + hb_osDriveSeparator() + HB_OSPathSeparator() + CurDir() ) + //hb_toOutDebug( "New Path: %s\n\r", hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() ) hProc := hb_processOpen( cProc, @hIn, @hOut, @hOut, .T. ) // .T. = Detached Process (Hide Window) // return to original folder DirChange( cCurPath ) - //hb_toOutDebug( "New 2 Path: %s\n\r", hb_CurDrive() + hb_osDriveSeparator() + HB_OSPathSeparator() + CurDir() ) + //hb_toOutDebug( "New 2 Path: %s\n\r", hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() ) IF hProc > -1 //hb_toOutDebug( "Process handler: %s\n\r", hProc ) @@ -1619,8 +1619,8 @@ STATIC FUNCTION CGIKill( hProc, hmtxCGIKill ) ********************************************************************/ FUNCTION uhttpd_OSFileName( cFileName ) - IF HB_OSPathSeparator() != "/" - RETURN STRTRAN( cFileName, "/", HB_OSPathSeparator() ) + IF hb_ps() != "/" + RETURN STRTRAN( cFileName, "/", hb_ps() ) ENDIF RETURN cFileName @@ -2164,7 +2164,7 @@ STATIC PROCEDURE SysSettings() STATIC FUNCTION Exe_Path() LOCAL cPath := hb_argv( 0 ) - LOCAL nPos := RAt( HB_OSPathSeparator(), cPath ) + LOCAL nPos := RAt( hb_ps(), cPath ) IF nPos == 0 cPath := "" ELSE @@ -2174,7 +2174,7 @@ STATIC FUNCTION Exe_Path() STATIC FUNCTION Exe_Name() LOCAL cPrg := hb_argv( 0 ) - LOCAL nPos := RAt( HB_OSPathSeparator(), cPrg ) + LOCAL nPos := RAt( hb_ps(), cPrg ) IF nPos > 0 cPrg := SubStr( cPrg, nPos+1 ) ENDIF @@ -2248,10 +2248,10 @@ STATIC FUNCTION ParseIni( cConfig ) "MAIN" => { ; "PORT" => LISTEN_PORT ,; "APPLICATION_ROOT" => EXE_Path() ,; - "DOCUMENT_ROOT" => EXE_Path() + HB_OSPathSeparator() + "home" ,; + "DOCUMENT_ROOT" => EXE_Path() + hb_ps() + "home" ,; "SHOW_INDEXES" => FALSE ,; "SCRIPTALIASMIXEDCASE" => TRUE ,; - "SESSIONPATH" => EXE_Path() + HB_OSPathSeparator() + "sessions" ,; + "SESSIONPATH" => EXE_Path() + hb_ps() + "sessions" ,; "DIRECTORYINDEX" => DIRECTORYINDEX_ARRAY ,; "CONSOLE-ROWS" => MaxRow() + 1 ,; "CONSOLE-COLS" => MaxCol() + 1 ; @@ -2673,7 +2673,7 @@ STATIC FUNCTION Handler_HrbScript( cFileName ) IF !EMPTY( pHRB := HB_HRBLOAD( cHRBBody ) ) // save current directory - cCurPath := hb_CurDrive() + hb_osDriveSeparator() + HB_OSPathSeparator() + CurDir() + cCurPath := hb_CurDrive() + hb_osDriveSeparator() + hb_ps() + CurDir() // Change dir to document root DirChange( s_cDocumentRoot ) diff --git a/harbour/examples/uhttpd2/umain.prg b/harbour/examples/uhttpd2/umain.prg index 3e5e97375f..95ed5c7195 100644 --- a/harbour/examples/uhttpd2/umain.prg +++ b/harbour/examples/uhttpd2/umain.prg @@ -810,8 +810,8 @@ RETURN FUNC UOsFileName(cFileName) - IF HB_OSPathSeparator() != "/" - RETURN STRTRAN(cFileName, "/", HB_OSPathSeparator()) + IF hb_ps() != "/" + RETURN STRTRAN(cFileName, "/", hb_ps()) ENDIF RETURN cFileName diff --git a/harbour/src/debug/debugger.prg b/harbour/src/debug/debugger.prg index e34d75c30f..8c39d0b365 100644 --- a/harbour/src/debug/debugger.prg +++ b/harbour/src/debug/debugger.prg @@ -1823,12 +1823,11 @@ METHOD LocatePrgPath( cPrgName ) CLASS HBDebugger LOCAL aPaths := ::aPathDirs LOCAL iMax := Len( aPaths ) - LOCAL cSep := hb_OSPathSeparator() LOCAL cRetPrgName LOCAL i FOR i := 1 TO iMax - cRetPrgName := aPaths[ i ] + cSep + cPrgName + cRetPrgName := aPaths[ i ] + hb_ps() + cPrgName IF File( cRetPrgName ) RETURN cRetPrgName ENDIF diff --git a/harbour/src/rtl/dirscan.prg b/harbour/src/rtl/dirscan.prg index cdd71450af..1b66f9c967 100644 --- a/harbour/src/rtl/dirscan.prg +++ b/harbour/src/rtl/dirscan.prg @@ -77,18 +77,17 @@ STATIC FUNCTION hb_doScan( cPath, cMask, cAttr, cPathSep ) FUNCTION hb_DirScan( cPath, cFileMask, cAttr ) LOCAL cFilePath - LOCAL cPathSep := hb_osPathSeparator() IF Empty( cPath ) cFilePath := "" ELSE cFilePath := cPath IF !Right( cPath, 1 ) $ hb_osPathDelimiters() - cFilePath += cPathSep + cFilePath += hb_ps() ENDIF ENDIF RETURN HB_DoScan( cFilePath, ; iif( Empty( cFileMask ), hb_osFileMask(), cFileMask ), ; iif( ValType( cAttr ) $ "CM", cAttr, "" ), ; - cPathSep ) + hb_ps() ) diff --git a/harbour/tests/wcecon.prg b/harbour/tests/wcecon.prg index 9e40cbec70..05a430b0ca 100644 --- a/harbour/tests/wcecon.prg +++ b/harbour/tests/wcecon.prg @@ -53,7 +53,7 @@ proc main() /* database test */ hb_FNameSplit( hb_argv( 0 ), @cPath, @cName, @cExt, @cDrive ) - cPath += "data" + hb_osPathSeparator() + cPath += "data" + hb_ps() Alert( "Database path:;;" + cPath ) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 65e7624877..929024677b 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -180,9 +180,14 @@ REQUEST hbmk_KEYW #define _COMPDETE_bSetup 6 #define _HBMODE_NATIVE 0 -#define _HBMODE_HB10 1 -#define _HBMODE_XHB 2 -#define _HBMODE_RAW_C 3 +#define _HBMODE_HB10 0x010000 +#define _HBMODE_HB20 0x020000 +#define _HBMODE_XHB -0x010200 +#define _HBMODE_RAW_C -1 + +#define _HBMODE_IS_HB( n ) ( n == 0 .OR. n >= _HBMODE_HB10 ) +#define _HBMODE_IS_OLDHB( n ) ( n >= _HBMODE_HB10 ) +#define _HBMODE_IS_XHB( n ) ( n <= _HBMODE_XHB ) /* Not implemented yet */ #define _CONF_RELEASE 0 /* No debug */ @@ -493,6 +498,8 @@ PROCEDURE Main( ... ) hb_AIns( aArgsProc, 1, "-xhb", .T. ) ELSEIF Right( tmp, 2 ) == "10" hb_AIns( aArgsProc, 1, "-hb10", .T. ) + ELSEIF Right( tmp, 2 ) == "20" + hb_AIns( aArgsProc, 1, "-hb20", .T. ) ENDIF DO CASE @@ -985,6 +992,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) CASE cParamL == "-info" ; hbmk[ _HBMK_lInfo ] := .T. CASE cParamL == "-xhb" ; hbmk[ _HBMK_nHBMODE ] := _HBMODE_XHB CASE cParamL == "-hb10" ; hbmk[ _HBMK_nHBMODE ] := _HBMODE_HB10 + CASE cParamL == "-hb20" ; hbmk[ _HBMK_nHBMODE ] := _HBMODE_HB20 CASE cParamL == "-hbc" ; hbmk[ _HBMK_nHBMODE ] := _HBMODE_RAW_C ; lAcceptCFlag := .T. CASE Left( cParamL, 5 ) == "-env:" @@ -1063,15 +1071,25 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) /* Initialize Harbour libs */ - IF ! ( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB ) + IF ! _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) - cDL_Version_Alter := "-" +; - hb_ntos( hb_Version( HB_VERSION_MAJOR ) ) +; - hb_ntos( hb_Version( HB_VERSION_MINOR ) ) - cDL_Version := "." +; - hb_ntos( hb_Version( HB_VERSION_MAJOR ) ) + "." +; - hb_ntos( hb_Version( HB_VERSION_MINOR ) ) + "." +; - hb_ntos( hb_Version( HB_VERSION_RELEASE ) ) + IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_NATIVE + cDL_Version_Alter := "-" +; + hb_ntos( hb_Version( HB_VERSION_MAJOR ) ) +; + hb_ntos( hb_Version( HB_VERSION_MINOR ) ) + cDL_Version := "." +; + hb_ntos( hb_Version( HB_VERSION_MAJOR ) ) + "." +; + hb_ntos( hb_Version( HB_VERSION_MINOR ) ) + "." +; + hb_ntos( hb_Version( HB_VERSION_RELEASE ) ) + ELSE + cDL_Version_Alter := "-" +; + hb_ntos( hb_bitAnd( hb_bitShift( hbmk[ _HBMK_nHBMODE ], -16 ), 0xFF ) ) +; + hb_ntos( hb_bitAnd( hb_bitShift( hbmk[ _HBMK_nHBMODE ], -8 ), 0xFF ) ) + cDL_Version := "." +; + hb_ntos( hb_bitAnd( hb_bitShift( hbmk[ _HBMK_nHBMODE ], -16 ), 0xFF ) ) + "." +; + hb_ntos( hb_bitAnd( hb_bitShift( hbmk[ _HBMK_nHBMODE ], -8 ), 0xFF ) ) + "." +; + hb_ntos( hb_bitAnd( hb_bitShift( hbmk[ _HBMK_nHBMODE ], 0 ), 0xFF ) ) + ENDIF aLIB_BASE_EXTERN := { "hbextern" } aLIB_BASE_DEBUG := { "hbdebug" } @@ -1334,20 +1352,20 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) /* Detect special *nix dir layout (/bin, /lib/harbour, /lib64/harbour, /include/harbour) */ IF hb_FileExists( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "include" +; - hb_ps() + iif( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB, "xharbour", "harbour" ) +; + hb_ps() + iif( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ), "xharbour", "harbour" ) +; hb_ps() + "hbvm.h" ) IF Empty( l_cHB_BIN_INSTALL ) l_cHB_BIN_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "bin" ) ENDIF IF Empty( l_cHB_LIB_INSTALL ) - IF hb_DirExists( tmp := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib64" + hb_ps() + iif( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB, "xharbour", "harbour" ) ) ) + IF hb_DirExists( tmp := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib64" + hb_ps() + iif( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ), "xharbour", "harbour" ) ) ) l_cHB_LIB_INSTALL := tmp ELSE - l_cHB_LIB_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib" + hb_ps() + iif( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB, "xharbour", "harbour" ) ) + l_cHB_LIB_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "lib" + hb_ps() + iif( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ), "xharbour", "harbour" ) ) ENDIF ENDIF IF Empty( l_cHB_INC_INSTALL ) - l_cHB_INC_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "include" + hb_ps() + iif( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB, "xharbour", "harbour" ) ) + l_cHB_INC_INSTALL := PathNormalize( DirAddPathSep( l_cHB_INSTALL_PREFIX ) + "include" + hb_ps() + iif( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ), "xharbour", "harbour" ) ) ENDIF ENDIF @@ -1839,6 +1857,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) cParamL == "-nohbc" .OR. ; /* Ignore it for compatibility */ cParamL == "-xhb" .OR. ; cParamL == "-hb10" .OR. ; + cParamL == "-hb20" .OR. ; cParamL == "-hbc" .OR. ; cParamL == "-clipper" .OR. ; cParamL == "-rtlink" .OR. ; @@ -2617,7 +2636,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) /* Force MT mode off in 1.0.x and xhb/dos compatibility modes. */ IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ; - ( hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB .AND. hbmk[ _HBMK_cPLAT ] == "dos" ) + ( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) .AND. hbmk[ _HBMK_cPLAT ] == "dos" ) hbmk[ _HBMK_lMT ] := .F. ENDIF @@ -3218,7 +3237,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) AAdd( hbmk[ _HBMK_aOPTRES ], "-DUNDER_CE" ) ENDIF DO CASE - CASE hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + CASE _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) /* NOTE: Newer xhb version use "-x.y.z" version numbers. */ l_aLIBSHARED := { iif( hbmk[ _HBMK_lMT ], "xharbourmt",; "xharbour" ) } @@ -3236,7 +3255,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) "harbour" + cDL_Version_Alter ) } ENDCASE - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) IF ! hbmk[ _HBMK_lGUI ] l_aLIBSHAREDPOST := { "mainstd" } ENDIF @@ -3664,7 +3683,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) cOpt_CompC += " -d -6 -O2 -OS -Ov -Oi -Oc" ENDIF cLibBCC_CRTL := "cw32mt.lib" - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) /* Adding weird hack for xhb to make it possible to force ST C mode. */ IF AScan( hbmk[ _HBMK_aOPTC ], {| tmp | tmp == "-tW" } ) == 0 AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" ) @@ -4271,7 +4290,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) "( win || wce ) & !( allmingw | cygwin )". This may change in the future. IMPORTANT: Keep this condition in sync with workdir default settings */ IF hbmk[ _HBMK_lCreateDyn ] .AND. !( hbmk[ _HBMK_cCOMP ] $ "mingw|mingw64|mingwarm|cygwin" ) - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB .OR. ; + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) .OR. ; hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 AAdd( hbmk[ _HBMK_aOPTC ], "-D__EXPORT__" ) ELSE @@ -4755,7 +4774,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF hbmk[ _HBMK_cGT ] != NIL .OR. ; l_cMAIN != NIL IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ; - hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) cFile += '#include "hbinit.h"' + Chr( 10 ) +; '' + Chr( 10 ) +; 'HB_EXTERN_BEGIN' + Chr( 10 ) +; @@ -4771,7 +4790,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) ENDIF IF hbmk[ _HBMK_cGT ] != NIL IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ; - hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) cFile += ' s_defaultGT = "' + Upper( SubStr( hbmk[ _HBMK_cGT ], 3 ) ) + '";' + Chr( 10 ) ELSE cFile += ' hb_vmSetDefaultGT( "' + Upper( SubStr( hbmk[ _HBMK_cGT ], 3 ) ) + '" );' + Chr( 10 ) @@ -4779,7 +4798,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) ENDIF IF l_cMAIN != NIL IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ; - hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) cFile += ' s_pszLinkedMain = "' + Upper( l_cMAIN ) + '";' + Chr( 10 ) ELSE cFile += ' hb_vmSetLinkedMain( "' + Upper( l_cMAIN ) + '" );' + Chr( 10 ) @@ -9146,7 +9165,7 @@ STATIC PROCEDURE PlatformPRGFlags( hbmk, aOPTPRG ) AAdd( aUn, ".ARCH." ) - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) #if defined( __PLATFORM__WINDOWS ) AAdd( aUn, "__PLATFORM__Windows" ) #if defined( __PLATFORM__WINCE ) @@ -9198,12 +9217,12 @@ STATIC PROCEDURE PlatformPRGFlags( hbmk, aOPTPRG ) CASE hbmk[ _HBMK_cPLAT ] == "wce" AAdd( aDf, "__PLATFORM__WINDOWS" ) AAdd( aDf, "__PLATFORM__WINCE" ) - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) AAdd( aDf, "__PLATFORM__Windows" ) ENDIF CASE hbmk[ _HBMK_cPLAT ] == "win" AAdd( aDf, "__PLATFORM__WINDOWS" ) - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) AAdd( aDf, "__PLATFORM__Windows" ) ENDIF CASE hbmk[ _HBMK_cPLAT ] == "dos" @@ -9213,7 +9232,7 @@ STATIC PROCEDURE PlatformPRGFlags( hbmk, aOPTPRG ) CASE hbmk[ _HBMK_cPLAT ] == "linux" AAdd( aDf, "__PLATFORM__LINUX" ) AAdd( aDf, "__PLATFORM__UNIX" ) - IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) AAdd( aDf, "__PLATFORM__Linux" ) ENDIF CASE hbmk[ _HBMK_cPLAT ] == "darwin" @@ -10250,8 +10269,9 @@ FUNCTION hbmk_KEYW( hbmk, cKeyword, cValue, cOperator ) CASE "allmsvc" ; RETURN "|" + hbmk[ _HBMK_cCOMP ] + "|" $ "|msvc|msvc64|msvcia64|msvcarm|" CASE "allpocc" ; RETURN "|" + hbmk[ _HBMK_cCOMP ] + "|" $ "|pocc|pocc64|poccarm|" CASE "allicc" ; RETURN "|" + hbmk[ _HBMK_cCOMP ] + "|" $ "|icc|iccia64|" - CASE "xhb" ; RETURN hbmk[ _HBMK_nHBMODE ] == _HBMODE_XHB + CASE "xhb" ; RETURN _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) CASE "hb10" ; RETURN hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 + CASE "hb20" ; RETURN hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB20 ENDSWITCH IF cKeyword == hbmk_CPU( hbmk ) @@ -10942,6 +10962,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) { "-hbcc" , I_( "stop after creating the object files and accept raw C flags\ncreate link/copy hbmk2 to hbcc for the same effect" ) },; { "-hblnk" , I_( "accept raw linker flags" ) },; { "-hb10" , I_( "enable Harbour 1.0.x compatibility mode" ) },; + { "-hb20" , I_( "enable Harbour 2.0.x compatibility mode" ) },; { "-xhb" , I_( "enable xhb mode" ) },; { "-hbc" , I_( "enable pure C mode" ) },; { "-rtlink" , "" },;