2019-02-11 13:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* bin/commit.hb
    ! fixed UTC offset formatting

  * contrib/hbwin/win_os.prg
    * updated win_osNetRegOk() for modern MS-Windows versions:
      - on Win7 and upper set
        System\CurrentControlSet\Services\LanmanServer\Parameters\DisableLeasing
        to disable opportunistic locks.
      - do not force SMB1 to disable oplocks on Win7 and upper - new MS-Win10
        does not support SMB1 at all so this setting on the server with
        such system completely disables SMB network and forcing SMB1 on the
        client side blocks access to new Win10 servers.
        Warning! this setting is still activated on Vista so it cannot
                 connect work with new Win10 but I do not know any other
                 working method to disable oplocks in Windows Vista.
    * synced with Viktor's branch

  * contrib/xhb/hbserv.c
    ! added missing return

  * include/harbour.hbx
  * src/harbour.def
  * src/rtl/version.c
    + added new PRG functions:
         hb_osIsWin7(), hb_osIsWin8(), hb_osIsWin81(), hb_osIsWin10()

  * src/rtl/gttrm/gttrm.c
    + added autodetection for few other XTerm compatible terminals
    + respect color extension in TERM name of all XTerm compatible
      terminals

  * utils/hbmk2/hbmk2.prg
    + added support for -cpp=isoXX borowed from Viktor's branch

  * contrib/gtqtc/gtqtc.hbc
  * contrib/gtqtc/gtqtc.hbp
    * use -cpp=iso11 required for QT 5.7.0 or upper
    * extended QT detection and partial syncing with Viktor's branch
This commit is contained in:
Przemysław Czerpak
2019-02-11 13:43:40 +01:00
parent 362b7a32de
commit d0be194907
11 changed files with 181 additions and 74 deletions

View File

@@ -7,6 +7,46 @@
Entries may not always be in chronological/commit order.
See license at the end of file. */
2019-02-11 13:43 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* bin/commit.hb
! fixed UTC offset formatting
* contrib/hbwin/win_os.prg
* updated win_osNetRegOk() for modern MS-Windows versions:
- on Win7 and upper set
System\CurrentControlSet\Services\LanmanServer\Parameters\DisableLeasing
to disable opportunistic locks.
- do not force SMB1 to disable oplocks on Win7 and upper - new MS-Win10
does not support SMB1 at all so this setting on the server with
such system completely disables SMB network and forcing SMB1 on the
client side blocks access to new Win10 servers.
Warning! this setting is still activated on Vista so it cannot
connect work with new Win10 but I do not know any other
working method to disable oplocks in Windows Vista.
* synced with Viktor's branch
* contrib/xhb/hbserv.c
! added missing return
* include/harbour.hbx
* src/harbour.def
* src/rtl/version.c
+ added new PRG functions:
hb_osIsWin7(), hb_osIsWin8(), hb_osIsWin81(), hb_osIsWin10()
* src/rtl/gttrm/gttrm.c
+ added autodetection for few other XTerm compatible terminals
+ respect color extension in TERM name of all XTerm compatible
terminals
* utils/hbmk2/hbmk2.prg
+ added support for -cpp=isoXX borowed from Viktor's branch
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* use -cpp=iso11 required for QT 5.7.0 or upper
* extended QT detection and partial syncing with Viktor's branch
2019-02-11 13:09 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* contrib/sddsqlt3/core.c
! fix DBUSEAREA() operation with SQLITE3 SDD to return empty result

View File

@@ -205,8 +205,8 @@ STATIC FUNCTION MakeEntry( aChanges, cMyName, cLogName, lAllowChangeLog )
LOCAL cLog := hb_StrFormat( "%1$s UTC%2$s%3$02d%4$02d %5$s", ;
hb_TToC( hb_DateTime(), "YYYY-MM-DD", "HH:MM" ), ;
iif( nOffset < 0, "-", "+" ), ;
Int( nOffset / 3600 ), ;
Int( ( ( nOffset / 3600 ) - Int( nOffset / 3600 ) ) * 60 ), ;
Int( Abs( nOffset ) / 3600 ), ;
Int( Abs( nOffset ) % 3600 / 60 ), ;
cMyName ) + hb_eol()
LOCAL cLine

View File

@@ -1,23 +1,32 @@
description=Multi-Platform QT based GUI console (QTC)
description=Multi-platform QT based GUI console (QTC)
gt=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF}
deppkgname=qt5:qt5
depcontrol=qt5:${HB_WITH_QT}
depkeyhead=qt5:QtCore/QJsonObject
depoptional=qt5:yes
depincpath=qt5:/usr/local/opt/qt5/include{darwin}
depincpath=qt5:/usr/local/include/qt5{bsd}
depfinish=qt5
{!HBMK_HAS_QT5&darwin}depcontrol=qt:${HB_WITH_QT}
{!HBMK_HAS_QT5&darwin}depkeyhead=qt:QtCore/qglobal.h
{!HBMK_HAS_QT5&!darwin&!android}deppkgname=qt:QtCore
{!HBMK_HAS_QT5}deppkgname=qt:qt4
{!HBMK_HAS_QT5}depcontrol=qt:${HB_WITH_QT}
{!HBMK_HAS_QT5}depkeyhead=qt:QtCore/qglobal.h
{!HBMK_HAS_QT5&bsd}depincpath=qt:/usr/local/include/qt4
{!HBMK_HAS_QT5&beos}depincpath=qt:/boot/common/include
{!HBMK_HAS_QT5&darwin}depincpath=qt:/Developer/qt/include
{!HBMK_HAS_QT5&darwin}depincpath=qt:/Library/Frameworks
{!HBMK_HAS_QT5&darwin}depincpath=qt:/usr/local/include
{!HBMK_HAS_QT5&darwin}depfinish=qt
{!HBMK_HAS_QT5}depfinish=qt
{(allwin|os2)|HB_WITH_QT}libpaths=${HB_WITH_QT}/../lib
{(allwin|os2)|HBMK_HAS_QT}libpaths=${HBMK_DIR_QT}/../lib
{(allwin|os2)|HBMK_HAS_QT5}libpaths=${HBMK_DIR_QT5}/../lib
{bsd&HBMK_HAS_QT}libpaths=/usr/local/lib/qt4
{bsd&HBMK_HAS_QT5}libpaths=/usr/local/lib/qt5
{(allwin|os2)&!HBMK_HAS_QT5}libs=QtCore4 QtGui4
{(allwin|os2|linux|beos|symbian)&HBMK_HAS_QT5}libs=Qt5Core Qt5Gui Qt5Widgets
{(allwin|os2|linux|bsd|beos|symbian)&HBMK_HAS_QT5}libs=Qt5Core Qt5Gui Qt5Widgets
{(linux|beos|symbian)&!HBMK_HAS_QT5}libs=QtCore QtGui
{!HBMK_HAS_QT5&darwin}ldflags=-F${HBMK_DIR_QT}/../lib
{!HBMK_HAS_QT5&darwin}dflags=-F${HBMK_DIR_QT}/../lib
@@ -25,7 +34,7 @@ depfinish=qt5
{HBMK_HAS_QT5&darwin}dflags=-F${HBMK_DIR_QT5}/../lib
{darwin}frameworks=QtCore QtGui
{darwin&HBMK_HAS_QT5}frameworks=QtWidgets
{(bsd|darwin)}libs=stdc++
{bsd|darwin}libs=stdc++
cpp=yes
gui=yes

View File

@@ -5,20 +5,32 @@
-w3 -es2
# Tone down warnings for both QT4 and QT5
-warn=low{allclang}
-stop{dos|watcom|bcc|pocc|pocc64|poccarm|msvcia64|pcc|(hbdyn&android)}
-pic
# NOTE: You can override auto-detection of QT 'moc' tool by using HB_QTPATH and
# optionally HB_QTSUFFIX envvars. This may only be necessary on some *nix
# systems. E.g.:
#
# HB_QTPATH=/opt/qt5/bin/
# HB_QTSUFFIX=
-plugin=hbmk2_qtgt.hb
-depcontrol=qt5:${HB_WITH_QT}
-deppkgname=qt5:qt5
-depkeyhead=qt5:QtCore/QJsonObject
-depcontrol=qt5:${HB_WITH_QT}
-depoptional=qt5:yes
-depincpath=qt5:/usr/local/opt/qt5/include{darwin}
-depincpath=qt5:/usr/local/include/qt5{bsd}
-depfinish=qt5
{!HBMK_HAS_QT5&!darwin&!android}-deppkgname=qt:QtCore
{!HBMK_HAS_QT5}-deppkgname=qt:qt4
{!HBMK_HAS_QT5}-depkeyhead=qt:QtCore/qglobal.h
{!HBMK_HAS_QT5}-depcontrol=qt:${HB_WITH_QT}
{!HBMK_HAS_QT5&HB_BUILD_3RDEXT='no'}-depcontrol=qt:no
@@ -31,7 +43,10 @@
{!HBMK_HAS_QT5&darwin}-depincpath=qt:/Library/Frameworks
{!HBMK_HAS_QT5&darwin}-depincpath=qt:/usr/local/include
${hb_name}.hbx
# Required for 5.7.0 or upper
-cpp=iso11{HBMK_HAS_QT5}
gtqtc1.cpp
gtqtc.h
${hb_name}.hbx

View File

@@ -64,9 +64,8 @@ FUNCTION win_osNetRegOk( lSetIt, lDoVista )
LOCAL cKeyWks
hb_default( @lSetIt, .F. )
hb_default( @lDoVista, .T. )
IF ! lDoVista .AND. hb_osIsWinVista()
IF ! hb_defaultValue( lDoVista, .T. ) .AND. hb_osIsWinVista()
/* do nothing */
ELSEIF hb_osIsWin9x()
bRetVal := win_regQuery( WIN_HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\VxD\VREDIR", "DiscardCacheOnOpen", 1, lSetIt )
@@ -85,11 +84,6 @@ FUNCTION win_osNetRegOk( lSetIt, lDoVista )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationDelay", 0, lSetIt )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SharingViolationRetries", 0, lSetIt )
IF hb_osIsWinVista()
/* If SMB2 is enabled turning off oplocks does not work, so SMB2 is required to be turned off on Server. */
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SMB2", 0, lSetIt )
ENDIF
/* Workstation settings */
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseOpportunisticLocking", 0, lSetIt )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "EnableOpLocks", 0, lSetIt )
@@ -97,6 +91,14 @@ FUNCTION win_osNetRegOk( lSetIt, lDoVista )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UtilizeNtCaching", 0, lSetIt )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "UseLockReadUnlock", 0, lSetIt )
IF hb_osIsWin7()
/* https://groups.google.com/forum/#!msg/harbour-users/RyjXKmlQqWw/QOYwIPS5BQAJ */
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "DisableLeasing", 1, lSetIt )
ELSEIF hb_osIsWinVista()
/* If SMB2 is enabled turning off oplocks does not work, so SMB2 is required to be turned off on Server. */
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeySrv, "SMB2", 0, lSetIt )
ENDIF
IF hb_osIsWinVista()
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileInfoCacheLifetime", 0, lSetIt )
bRetVal := bRetVal .AND. win_regQuery( WIN_HKEY_LOCAL_MACHINE, cKeyWks, "FileNotFoundCacheLifetime", 0, lSetIt )
@@ -116,15 +118,21 @@ FUNCTION win_osNetVRedirOk( /* @ */ nResult )
nResult := 0
IF hb_osIsWin9x()
aFiles := Directory( hb_GetEnv( "WINDIR", "C:\WINDOWS" ) + "\SYSTEM\VREDIR.VXD" ) /* Check for faulty files. */
IF ! Empty( aFiles )
IF aFiles[ 1 ][ F_SIZE ] == 156749 .AND. aFiles[ 1 ][ F_TIME ] == "11:11:10"
nResult := 1111
ELSEIF aFiles[ 1 ][ F_SIZE ] == 140343 .AND. aFiles[ 1 ][ F_TIME ] == "09:50:00"
nResult := 950
ENDIF
ENDIF
/* Check for faulty files */
IF hb_osIsWin9x() .AND. ;
! Empty( aFiles := Directory( hb_GetEnv( "WINDIR", "C:\WINDOWS" ) + "\SYSTEM\VREDIR.VXD" ) )
SWITCH aFiles[ 1 ][ F_SIZE ]
CASE 156749
IF aFiles[ 1 ][ F_TIME ] == "11:11:10"
nResult := 1111
ENDIF
EXIT
CASE 140343
IF aFiles[ 1 ][ F_TIME ] == "09:50:00"
nResult := 950
ENDIF
EXIT
ENDSWITCH
ENDIF
RETURN Empty( nResult )
RETURN nResult == 0

View File

@@ -981,6 +981,7 @@ HB_FUNC( HB_SIGNALDESC )
case SIGABRT:
hb_retc_const( "Abort" );
return;
case SIGUSR1:
hb_retc_const( "User defined" );

View File

@@ -727,7 +727,11 @@ DYNAMIC hb_osDriveSeparator
DYNAMIC hb_osError
DYNAMIC hb_osFileMask
DYNAMIC hb_osIs64bit
DYNAMIC hb_osIsWin10
DYNAMIC hb_osIsWin2K
DYNAMIC hb_osIsWin7
DYNAMIC hb_osIsWin8
DYNAMIC hb_osIsWin81
DYNAMIC hb_osIsWin9x
DYNAMIC hb_osIsWinCE
DYNAMIC hb_osIsWinNT

View File

@@ -912,7 +912,11 @@ HB_FUN_HB_OSDRIVESEPARATOR
HB_FUN_HB_OSERROR
HB_FUN_HB_OSFILEMASK
HB_FUN_HB_OSIS64BIT
HB_FUN_HB_OSISWIN10
HB_FUN_HB_OSISWIN2K
HB_FUN_HB_OSISWIN7
HB_FUN_HB_OSISWIN8
HB_FUN_HB_OSISWIN81
HB_FUN_HB_OSISWIN9X
HB_FUN_HB_OSISWINCE
HB_FUN_HB_OSISWINNT

View File

@@ -3225,10 +3225,17 @@ static void hb_gt_trm_SetTerm( PHB_GTTRM pTerm )
pTerm->terminal_ext |= TERM_PUTTY;
}
if( ( pTerm->terminal_ext & TERM_PUTTY ) ||
strncmp( szTerm, "xterm", 5 ) == 0 ||
strncmp( szTerm, "rxvt", 4 ) == 0 ||
strncmp( szTerm, "screen", 6 ) == 0 )
if( ( pTerm->terminal_ext & TERM_PUTTY ) || /* PuTTY terminal emulator */
strncmp( szTerm, "xterm", 5 ) == 0 || /* X11 terminal emulator */
strncmp( szTerm, "rxvt", 4 ) == 0 || /* rxvt terminal emulator */
strncmp( szTerm, "gnome", 5 ) == 0 || /* GNOME Terminal */
strncmp( szTerm, "vte", 3 ) == 0 || /* VTE aka GNOME Terminal */
strncmp( szTerm, "konsole", 7 ) == 0 || /* KDE console window */
strncmp( szTerm, "nsterm", 6 ) == 0 || /* Apple Terminal */
strncmp( szTerm, "Apple_Terminal", 14 ) == 0 || /* Apple Terminal */
strncmp( szTerm, "aixterm", 7 ) == 0 || /* IBM Aixterm Terminal Emulator */
strncmp( szTerm, "tmux", 4 ) == 0 || /* tmux terminal multiplexer */
strncmp( szTerm, "screen", 6 ) == 0 ) /* VT 100/ANSI X3.64 virtual terminal */
{
pTerm->Init = hb_gt_trm_AnsiInit;
pTerm->Exit = hb_gt_trm_AnsiExit;
@@ -3245,19 +3252,14 @@ static void hb_gt_trm_SetTerm( PHB_GTTRM pTerm )
pTerm->terminal_type = TERM_XTERM;
if( pTerm->iExtColor == HB_GTTRM_CLRNDF )
{
if( pTerm->terminal_ext & TERM_PUTTY )
if( pTerm->terminal_ext & TERM_PUTTY ||
strstr( szTerm, "+256color" ) != NULL ||
strstr( szTerm, "-256color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLR256;
else if( strncmp( szTerm, "xterm", 5 ) == 0 ||
strncmp( szTerm, "rxvt", 4 ) == 0 )
{
if( strstr( szTerm, "+256color" ) != NULL ||
strstr( szTerm, "-256color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLR256;
else if( strstr( szTerm, "-88color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLRRGB;
else if( strstr( szTerm, "-16color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLRAIX;
}
else if( strstr( szTerm, "-88color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLRRGB;
else if( strstr( szTerm, "-16color" ) != NULL )
pTerm->iExtColor = HB_GTTRM_CLRAIX;
}
}
else if( strncmp( szTerm, "linux", 5 ) == 0 ||

View File

@@ -214,6 +214,26 @@ HB_FUNC( HB_OSISWINVISTA )
hb_retl( hb_iswinvista() );
}
HB_FUNC( HB_OSISWIN7 )
{
hb_retl( hb_iswin7() );
}
HB_FUNC( HB_OSISWIN8 )
{
hb_retl( hb_iswin8() );
}
HB_FUNC( HB_OSISWIN81 )
{
hb_retl( hb_iswin81() );
}
HB_FUNC( HB_OSISWIN10 )
{
hb_retl( hb_iswin10() );
}
HB_FUNC( HB_OSISWINCE )
{
hb_retl( hb_iswince() );

View File

@@ -2756,7 +2756,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
#ifdef HB_LEGACY_LEVEL4
CASE cParamL == "-nocompr" ; hbmk[ _HBMK_nCOMPR ] := _COMPR_OFF ; LegacyWarning( hbmk, aParam, "-compr=no" )
#endif
CASE Left( cParamL, 6 ) == "-head="
CASE hb_LeftEq( cParamL, "-head=" )
DO CASE
CASE SubStr( cParamL, 6 + 1 ) == "off" ; hbmk[ _HBMK_nHEAD ] := _HEAD_OFF
@@ -2764,9 +2764,9 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE SubStr( cParamL, 6 + 1 ) == "native" ; hbmk[ _HBMK_nHEAD ] := _HEAD_NATIVE
CASE SubStr( cParamL, 6 + 1 ) == "dep" ; hbmk[ _HBMK_nHEAD ] := _HEAD_DEP
#ifdef HB_LEGACY_LEVEL4
OTHERWISE ; hbmk[ _HBMK_nHEAD ] := _HEAD_FULL ; LegacyWarning( hbmk, aParam, "-head=full" )
OTHERWISE ; hbmk[ _HBMK_nHEAD ] := _HEAD_FULL ; LegacyWarning( hbmk, aParam, "-head=full" )
#else
OTHERWISE ; InvalidOptionValue( hbmk, aParam )
OTHERWISE ; InvalidOptionValue( hbmk, aParam )
#endif
ENDCASE
@@ -2776,7 +2776,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE cParamL == "-nohead" ; hbmk[ _HBMK_nHEAD ] := _HEAD_OFF ; LegacyWarning( hbmk, aParam, "-head=off" )
#endif
CASE Left( cParamL, 5 ) == "-cpp="
CASE hb_LeftEq( cParamL, "-cpp=" )
DO CASE
CASE SubStr( cParamL, 5 + 1 ) == "def" ; hbmk[ _HBMK_lCPP ] := NIL
@@ -2785,14 +2785,20 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE SubStr( cParamL, 5 + 1 ) == "iso98" ; hbmk[ _HBMK_cCPP ] := "iso98"
CASE SubStr( cParamL, 5 + 1 ) == "iso03" ; hbmk[ _HBMK_cCPP ] := "iso03"
CASE SubStr( cParamL, 5 + 1 ) == "iso0x" ; hbmk[ _HBMK_cCPP ] := "iso0x"
CASE SubStr( cParamL, 5 + 1 ) == "iso11" ; hbmk[ _HBMK_cCPP ] := "iso11"
CASE SubStr( cParamL, 5 + 1 ) == "iso14" ; hbmk[ _HBMK_cCPP ] := "iso14"
CASE SubStr( cParamL, 5 + 1 ) == "iso17" ; hbmk[ _HBMK_cCPP ] := "iso17"
CASE SubStr( cParamL, 5 + 1 ) == "iso20" ; hbmk[ _HBMK_cCPP ] := "iso20"
CASE SubStr( cParamL, 5 + 1 ) == "gnu98" ; hbmk[ _HBMK_cCPP ] := "gnu98"
CASE SubStr( cParamL, 5 + 1 ) == "gnu0x" ; hbmk[ _HBMK_cCPP ] := "gnu0x"
CASE SubStr( cParamL, 5 + 1 ) == "gnu11" ; hbmk[ _HBMK_cCPP ] := "gnu11"
CASE SubStr( cParamL, 5 + 1 ) == "gnu14" ; hbmk[ _HBMK_cCPP ] := "gnu14"
CASE SubStr( cParamL, 5 + 1 ) == "gnu17" ; hbmk[ _HBMK_cCPP ] := "gnu17"
CASE SubStr( cParamL, 5 + 1 ) == "gnu20" ; hbmk[ _HBMK_cCPP ] := "gnu20"
CASE SubStr( cParamL, 5 + 1 ) == "" ; hbmk[ _HBMK_cCPP ] := ""
OTHERWISE ; InvalidOptionValue( hbmk, aParam )
ENDCASE
/* dangerous? disable it */
hbmk[ _HBMK_cCPP ] := ""
CASE Left( cParamL, 3 ) == "-c="
DO CASE
@@ -2803,11 +2809,9 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE SubStr( cParamL, 3 + 1 ) == "gnu99" ; hbmk[ _HBMK_cC ] := "gnu99"
CASE SubStr( cParamL, 3 + 1 ) == "gnu1x" ; hbmk[ _HBMK_cC ] := "gnu1x"
CASE SubStr( cParamL, 3 + 1 ) == "" ; hbmk[ _HBMK_cC ] := ""
OTHERWISE ; InvalidOptionValue( hbmk, aParam )
ENDCASE
/* dangerous? disable it */
hbmk[ _HBMK_cC ] := ""
CASE cParamL == "-cpp" ; hbmk[ _HBMK_lCPP ] := .T. /* synonym to -cpp=yes */
CASE cParamL == "-cpp-" ; hbmk[ _HBMK_lCPP ] := .F. /* synonym to -cpp=no */
#ifdef HB_LEGACY_LEVEL4
@@ -7886,24 +7890,15 @@ STATIC PROCEDURE Set_lCreateDyn( hbmk, lValue )
STATIC FUNCTION gcc_opt_lngc_fill( hbmk )
DO CASE
CASE HBMK_ISCOMP( "gcc|gccarm|gccomf|mingw|mingw64|mingwarm|djgpp" )
CASE HBMK_ISCOMP( "gcc|gccarm|gccomf|mingw|mingw64|mingwarm|djgpp|icc|icc64|clang|clang64" )
SWITCH hbmk[ _HBMK_cC ]
CASE "iso90" ; RETURN "-std=c89"
CASE "iso99" ; RETURN "-std=c9x"
CASE "iso1x" ; RETURN "-std=c1x"
CASE "gnu90" ; RETURN "-std=gnu89"
CASE "gnu99" ; RETURN "-std=gnu9x"
CASE "gnu1x" ; RETURN "-std=gnu1x"
ENDSWITCH
CASE HBMK_ISCOMP( "icc|clang" )
SWITCH hbmk[ _HBMK_cC ]
CASE "iso90" ; RETURN "-std=c89"
CASE "iso99" ; RETURN "-std=c99"
CASE "iso90" ; RETURN "-std=c89" /* aka c89, aka ansi */
CASE "iso99" ; RETURN "-std=c99" /* aka c9x */
CASE "iso11" ; RETURN "-std=c11" /* aka c1x */
CASE "gnu90" ; RETURN "-std=gnu89"
CASE "gnu99" ; RETURN "-std=gnu99"
CASE "gnu11" ; RETURN "-std=gnu11"
ENDSWITCH
ENDCASE
@@ -7913,21 +7908,30 @@ STATIC FUNCTION gcc_opt_lngc_fill( hbmk )
STATIC FUNCTION gcc_opt_lngcpp_fill( hbmk )
DO CASE
CASE HBMK_ISCOMP( "gcc|gccarm|gccomf|mingw|mingw64|mingwarm|djgpp" )
CASE HBMK_ISCOMP( "gcc|gccarm|gccomf|mingw|mingw64|mingwarm|djgpp|clang|clang64" )
SWITCH hbmk[ _HBMK_cCPP ]
CASE "iso98" ; RETURN "-std=c++98"
CASE "iso98" ; RETURN "-std=c++98" /* ~aka c++03, ~aka ansi */
CASE "iso0x" ; RETURN "-std=c++0x"
CASE "iso11" ; RETURN "-std=c++11" /* aka c++0x */
CASE "iso14" ; RETURN "-std=c++14" /* aka c++1y */
CASE "iso17" ; RETURN "-std=c++17" /* aka c++1z */
CASE "iso20" ; RETURN "-std=c++20" /* aka c++2a */
CASE "gnu98" ; RETURN "-std=gnu++98"
CASE "gnu0x" ; RETURN "-std=gnu++0x"
CASE "gnu11" ; RETURN "-std=gnu++11"
CASE "gnu14" ; RETURN "-std=gnu++14"
CASE "gnu17" ; RETURN "-std=gnu++17"
CASE "gnu20" ; RETURN "-std=gnu++20"
ENDSWITCH
CASE HBMK_ISCOMP( "icc" )
CASE HBMK_ISCOMP( "icc|icc64" )
SWITCH hbmk[ _HBMK_cCPP ]
CASE "iso98"
CASE "gnu98" ; RETURN "-std=gnu++98"
CASE "iso0x" ; RETURN "-std=c++0x"
CASE "iso11" ; RETURN "-std=c++11" /* aka c++0x */
ENDSWITCH
ENDCASE
@@ -15835,8 +15839,8 @@ STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong )
{ "-optim[-]" , I_( "toggle C compiler optimizations (default: on)" ) }, ;
{ "-cpp[-]" , I_( "force C++/C mode" ) }, ;
{ "-cpp=<value>" , I_( "select C++ mode. Allowed values are: def, yes, no" ) }, ;
/* { "-c=<value>" , I_( "select C standard. Allowed values are: iso90, iso99, iso1x, gnu90, gnu99, gnu1x" ) }, */;
/* { "-cpp=<value>" , I_( "select C++ mode or standard. Allowed values are: def, yes, no, iso98, iso03, iso0x, gnu98, gnu0x" ) }, */;
{ "-c=<value>" , I_( "select C standard. Allowed values are: iso90, iso99, iso11, gnu90, gnu99, gnu11" ) }, ;
{ "-cpp=<value>" , I_( "select C++ mode or standard. Allowed values are: def, yes, no, iso98, iso11, iso14, gnu98, gnu11, gnu14" ) }, ;
{ "-map[-]" , I_( "create (or not) a map file" ) }, ;
{ "-implib[-]" , I_( "create (or not) an import library (in -hbdyn/-hbexe mode). The name will have a suffix added." ) }, ;
{ "-implib=<output>" , I_( "create import library (in -hbdyn/-hbexe mode) name to <output> (default: same as output)" ) }, ;