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 ;)
This commit is contained in:
Viktor Szakats
2010-07-26 10:36:23 +00:00
parent c0cc1d5268
commit 46f7e48f29
31 changed files with 273 additions and 191 deletions

View File

@@ -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 <Dialog> menu option
5. To go further, in any Qt dialog, point to <Dialog> 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

View File

@@ -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=[<l>] Build space separated <l> 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=<dir> 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

View File

@@ -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

View File

@@ -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 <bedipritpal@hotmail.com>
@@ -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
//----------------------------------------------------------------------//

View File

@@ -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 <bedipritpal@hotmail.com>
@@ -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 )

View File

@@ -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)

View File

@@ -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 */

View File

@@ -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

View File

@@ -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 )

View File

@@ -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

View File

@@ -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
/*----------------------------------------------------------------------*/

View File

@@ -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}/

View File

@@ -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

View File

@@ -1,11 +1,11 @@
#
# $Id$
#
-inc
-es2
-w3
-gtwvt
-gui
-mt
-d__WITH_WVT__
@@ -14,5 +14,3 @@
wvtqt.prg
dialogqt.prg

View File

@@ -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 )

View File

@@ -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"

View File

@@ -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 )
//

View File

@@ -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 )
//

View File

@@ -1,11 +1,11 @@
#
# $Id$
#
-inc
-es2
-w3
-gtwvt
-gui
-mt
-d__WITH_WVT__
@@ -14,5 +14,3 @@
wvtqt.prg
dialogqt.prg

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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 ) )

View File

@@ -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() )

View File

@@ -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

View File

@@ -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 )

View File

@@ -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

View File

@@ -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

View File

@@ -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() )

View File

@@ -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 )

View File

@@ -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" , "" },;