diff --git a/ChangeLog.txt b/ChangeLog.txt index 5bde5f2172..fa5696a205 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,56 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-03-20 16:22 UTC+0100 Viktor Szakats (harbour syenar.net) + * utils/hbmk2/hbmk2.prg + ! fixed missed sysloc detection causing RTE in hbrun mode + when running scripts using #request to .hbc files with + libpath references in some cases + +2013-03-20 12:34 UTC+0100 Viktor Szakats (harbour syenar.net) + * README.txt + + added new ways of following commits, including e-mail. + Section moved to unstable source section. + +2013-03-20 12:12 UTC+0100 Viktor Szakats (harbour syenar.net) + * doc/en/input.txt + + use hb_keyChar(), some other corrections + +2013-03-20 00:48 UTC+0100 Viktor Szakats (harbour syenar.net) + * config/postinst.hb + * utils/hbmk2/hbmk2.prg + % string forming optimizations + + * doc/en/tlabel.txt + * doc/en/treport.txt + * made filename usage clear + + * README.txt + + added new OpenSSL documentation wiki + +2013-03-19 14:18 UTC+0100 Viktor Szakats (harbour syenar.net) + * README.txt + + added links where commits can be followed + +2013-03-19 02:42 UTC+0100 Viktor Szakats (harbour syenar.net) + * doc/howtorep.txt + * minor casing + + * src/vm/dlmalloc.c + * src/vm/hvm.c + ! fixed mingw -Wstrict-prototypes warnings + +2013-03-18 17:25 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbtip/httpcli.prg + + Added: method delete() to post DELETE verb required for + RESTful implementation. + +2013-03-19 00:13 UTC+0100 Viktor Szakats (harbour syenar.net) + * utils/hbmk2/hbmk2.prg + ! silly regression in 2013-02-17 12:43 UTC+0100 causing + -icon= option to stop working. + Thanks to Pritpal for reporting. + 2013-03-18 23:46 UTC+0100 vszakats (harbour syenar.net) * README.txt + documented Git 1.7 requirement diff --git a/README.txt b/README.txt index 84f42952af..5fdb27a193 100644 --- a/README.txt +++ b/README.txt @@ -1302,6 +1302,14 @@ TABLE OF CONTENT http://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/harbour-nightly-win.exe/download http://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/harbour-nightly-win.7z/download + 4.) Follow commits using any of these facilities + + Web: https://github.com/harbour/core/commits/master + RSS: https://github.com/harbour/core/commits/master.atom + Twitter: https://twitter.com/harbourdev + E-mail: https://groups.google.com/forum/?fromgroups=#!forum/harbour-commits-git + Mac app: https://itunes.apple.com/us/app/committed/id560767719 + Mac tool: https://github.com/marcocampana/git-notifier 10. TROUBLESHOOTING =================== @@ -1639,6 +1647,7 @@ TABLE OF CONTENT HB_WITH_OPENSSL - OpenSSL [multiplatform, free, open-source] http://www.openssl.org/ http://www.openssl.org/related/binaries.html + http://wiki.opensslfoundation.com/ HB_WITH_PCRE - Perl Compatible Regular Expressions [multiplatform, free, open-source] http://www.pcre.org/ HB_WITH_PGSQL - PostgreSQL [multiplatform, free, open-source] diff --git a/config/postinst.hb b/config/postinst.hb index c03435cb41..000d2d6091 100644 --- a/config/postinst.hb +++ b/config/postinst.hb @@ -288,23 +288,24 @@ PROCEDURE Main( ... ) /* In the generated script always use tar because we can't be sure if cBin_Tar exists in the installation environment */ - cSH_Script := '#!/bin/sh' + Chr( 10 ) - cSH_Script += 'if [ "\$1" = "--extract" ]; then' + Chr( 10 ) - cSH_Script += ' tail -c ' + hb_ntos( hb_FSize( cTar_Path ) ) + ' "\$0" > "' + cTar_NameExt + '"' + Chr( 10 ) - cSH_Script += ' exit' + Chr( 10 ) - cSH_Script += 'fi' + Chr( 10 ) - cSH_Script += 'if [ \`id -u\` != 0 ]; then' + Chr( 10 ) - cSH_Script += ' echo "This package has to be installed from root account."' + Chr( 10 ) - cSH_Script += ' exit 1' + Chr( 10 ) - cSH_Script += 'fi' + Chr( 10 ) - cSH_Script += 'echo "Do you want to install Harbour (y/n)"' + Chr( 10 ) - cSH_Script += 'read ASK' + Chr( 10 ) - cSH_Script += 'if [ "\${ASK}" != "y" ] && [ "\${ASK}" != "Y" ]; then' + Chr( 10 ) - cSH_Script += ' exit 1' + Chr( 10 ) - cSH_Script += 'fi' + Chr( 10 ) - cSH_Script += '(tail -c ' + hb_ntos( hb_FSize( cTar_Path ) ) + ' "\$0" | gzip -cd | (cd /;tar xvpf -)) ' + iif( GetEnvC( "HB_PLATFORM" ) == "linux", "&& ldconfig", "" ) + Chr( 10 ) - cSH_Script += 'exit \$?' + Chr( 10 ) - cSH_Script += 'HB_INST_EOF' + Chr( 10 ) + cSH_Script := ; + '#!/bin/sh' + Chr( 10 ) + ; + 'if [ "\$1" = "--extract" ]; then' + Chr( 10 ) + ; + ' tail -c ' + hb_ntos( hb_FSize( cTar_Path ) ) + ' "\$0" > "' + cTar_NameExt + '"' + Chr( 10 ) + ; + ' exit' + Chr( 10 ) + ; + 'fi' + Chr( 10 ) + ; + 'if [ \`id -u\` != 0 ]; then' + Chr( 10 ) + ; + ' echo "This package has to be installed from root account."' + Chr( 10 ) + ; + ' exit 1' + Chr( 10 ) + ; + 'fi' + Chr( 10 ) + ; + 'echo "Do you want to install Harbour (y/n)"' + Chr( 10 ) + ; + 'read ASK' + Chr( 10 ) + ; + 'if [ "\${ASK}" != "y" ] && [ "\${ASK}" != "Y" ]; then' + Chr( 10 ) + ; + ' exit 1' + Chr( 10 ) + ; + 'fi' + Chr( 10 ) + ; + '(tail -c ' + hb_ntos( hb_FSize( cTar_Path ) ) + ' "\$0" | gzip -cd | (cd /;tar xvpf -)) ' + iif( GetEnvC( "HB_PLATFORM" ) == "linux", "&& ldconfig", "" ) + Chr( 10 ) + ; + 'exit \$?' + Chr( 10 ) + ; + 'HB_INST_EOF' + Chr( 10 ) hb_MemoWrit( tmp, cSH_Script + hb_MemoRead( cTar_Path ) ) @@ -684,17 +685,23 @@ STATIC FUNCTION __hb_extern_gen( aFuncList, cOutputName ) __hb_extern_get_exception_list( cOutputName, @aInclude, @aExclude, @hDynamic ) cExtern := "" + IF Empty( aInclude ) .AND. ; Empty( aExclude ) - cExtern += cLine - cExtern += " * NOTE: You can add manual override which functions to include or" + hb_eol() - cExtern += " * exclude from automatically generated EXTERNAL/DYNAMIC list." + hb_eol() - cExtern += cHelp + + cExtern += ; + cLine + ; + " * NOTE: You can add manual override which functions to include or" + hb_eol() + ; + " * exclude from automatically generated EXTERNAL/DYNAMIC list." + hb_eol() + ; + cHelp ELSE - cExtern += cLine - cExtern += " * NOTE: Following comments are control commands for the generator." + hb_eol() - cExtern += " * Do not edit them unless you know what you are doing." + hb_eol() - cExtern += cHelp + + cExtern += ; + cLine + ; + " * NOTE: Following comments are control commands for the generator." + hb_eol() + ; + " * Do not edit them unless you know what you are doing." + hb_eol() + ; + cHelp + IF ! Empty( aInclude ) cExtern += hb_eol() FOR EACH tmp IN aInclude @@ -708,23 +715,26 @@ STATIC FUNCTION __hb_extern_gen( aFuncList, cOutputName ) NEXT ENDIF ENDIF - cExtern += hb_eol() - cExtern += cLine - cExtern += " * WARNING: Automatically generated code below. DO NOT EDIT! (except casing)" + hb_eol() - cExtern += " * Regenerate with HB_REBUILD_EXTERN=yes build option." + hb_eol() - cExtern += " */" + hb_eol() - cExtern += hb_eol() - cExtern += "#ifndef " + "__HBEXTERN_CH__" + Upper( hb_FNameName( cOutputName ) ) + "__" + hb_eol() - cExtern += "#define " + "__HBEXTERN_CH__" + Upper( hb_FNameName( cOutputName ) ) + "__" + hb_eol() - cExtern += hb_eol() - cExtern += "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "ANNOUNCE" + " )" + hb_eol() - cExtern += " ANNOUNCE " + cSelfName + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() - cExtern += "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() - cExtern += " #command DYNAMIC => EXTERNAL " + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() + + cExtern += ; + hb_eol() + ; + cLine + ; + " * WARNING: Automatically generated code below. DO NOT EDIT! (except casing)" + hb_eol() + ; + " * Regenerate with HB_REBUILD_EXTERN=yes build option." + hb_eol() + ; + " */" + hb_eol() + ; + hb_eol() + ; + "#ifndef " + "__HBEXTERN_CH__" + Upper( hb_FNameName( cOutputName ) ) + "__" + hb_eol() + ; + "#define " + "__HBEXTERN_CH__" + Upper( hb_FNameName( cOutputName ) ) + "__" + hb_eol() + ; + hb_eol() + ; + "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "ANNOUNCE" + " )" + hb_eol() + ; + " ANNOUNCE " + cSelfName + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + ; + "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() + ; + " #command DYNAMIC => EXTERNAL " + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + IF Empty( aInclude ) aExtern := aFuncList ELSE @@ -742,11 +752,13 @@ STATIC FUNCTION __hb_extern_gen( aFuncList, cOutputName ) cExtern += "DYNAMIC " + hb_HGetDef( hDynamic, tmp, tmp ) + hb_eol() ENDIF NEXT - cExtern += hb_eol() - cExtern += "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() - cExtern += " #uncommand DYNAMIC => EXTERNAL " + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() - cExtern += "#endif" + hb_eol() + + cExtern += ; + hb_eol() + ; + "#if defined( __HBEXTREQ__ ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() + ; + " #uncommand DYNAMIC => EXTERNAL " + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + ; + "#endif" + hb_eol() RETURN hb_MemoWrit( cOutputName, cExtern ) diff --git a/contrib/hbtip/httpcli.prg b/contrib/hbtip/httpcli.prg index a72f3c4bd7..9d18fc242a 100644 --- a/contrib/hbtip/httpcli.prg +++ b/contrib/hbtip/httpcli.prg @@ -70,6 +70,7 @@ CREATE CLASS TIPClientHTTP FROM TIPClient METHOD Get( cQuery ) METHOD Post( xPostData, cQuery ) METHOD Put( xPostData, cQuery ) + METHOD Delete( xPostData, cQuery ) METHOD ReadHeaders( lClear ) METHOD Read( nLen ) METHOD UseBasicAuth() INLINE ::cAuthMode := "Basic" @@ -123,6 +124,10 @@ METHOD Put( xPostData, cQuery ) CLASS TIPClientHTTP RETURN ::postByVerb( xPostData, cQuery, "PUT" ) +METHOD Delete( xPostData, cQuery ) CLASS TIPClientHTTP + + RETURN ::postByVerb( xPostData, cQuery, "DELETE" ) + METHOD PostByVerb( xPostData, cQuery, cVerb ) CLASS TIPClientHTTP LOCAL cData, nI, cTmp, y diff --git a/doc/en/input.txt b/doc/en/input.txt index d74115e068..748c18ba99 100644 --- a/doc/en/input.txt +++ b/doc/en/input.txt @@ -21,7 +21,7 @@ $ONELINER$ Extracts the next key code from the Harbour keyboard buffer. $SYNTAX$ - Inkey( [] [,] ) --> nKey + Inkey( [] [, ] ) --> nKey $ARGUMENTS$ is an optional timeout value in seconds, with a granularity of 1/10th of a second. If omitted, Inkey() returns immediately. If set @@ -120,7 +120,7 @@ $SUBCATEGORY$ User interface $ONELINER$ - DO NOT CALL THIS FUNCTION DIRECTLY! + Use hb_keyPut() instead $SYNTAX$ KEYBOARD CLEAR TYPEAHEAD @@ -226,7 +226,7 @@ EXIT ELSE IF nKey != 0 - cChar := Chr( nKey ) + cChar := hb_keyChar( nKey ) ENDIF ENDIF ENDDO diff --git a/doc/en/tlabel.txt b/doc/en/tlabel.txt index 09470ea2e5..15219cb35b 100644 --- a/doc/en/tlabel.txt +++ b/doc/en/tlabel.txt @@ -62,7 +62,7 @@ $EXAMPLES$ PROCEDURE Main() USE test NEW - LABEL FORM EE + LABEL FORM test.lbl USE RETURN $STATUS$ diff --git a/doc/en/treport.txt b/doc/en/treport.txt index f1db525f5b..cc03646893 100644 --- a/doc/en/treport.txt +++ b/doc/en/treport.txt @@ -90,7 +90,7 @@ $EXAMPLES$ PROCEDURE Main() USE test NEW - REPORT FORM EE + REPORT FORM test.frm USE RETURN $STATUS$ diff --git a/doc/howtorep.txt b/doc/howtorep.txt index 805f6023f1..62dc039a87 100644 --- a/doc/howtorep.txt +++ b/doc/howtorep.txt @@ -33,7 +33,7 @@ by Viktor Szakats 3) Resolve any conflicts 4) Run 'hbrun bin/commit' to create new ChangeLog.txt entry with timestamp and list of modified files - 5) Edit ChangeLog.txt with a text editor (do not use Notepad.exe) + 5) Edit ChangeLog.txt with a text editor (do not use notepad.exe) 6) Copy the last ChangeLog.txt entry to the clipboard If it's a single atomic change, it's better to copy only the description itself without the entry header and list diff --git a/src/vm/dlmalloc.c b/src/vm/dlmalloc.c index e485e29a78..d29caf46c8 100644 --- a/src/vm/dlmalloc.c +++ b/src/vm/dlmalloc.c @@ -1024,7 +1024,7 @@ DLMALLOC_EXPORT size_t dlmalloc_max_footprint(void); guarantee that this number of bytes can actually be obtained from the system. */ -DLMALLOC_EXPORT size_t dlmalloc_footprint_limit(); +DLMALLOC_EXPORT size_t dlmalloc_footprint_limit(void); /* malloc_set_footprint_limit(); diff --git a/src/vm/hvm.c b/src/vm/hvm.c index 234f87bdb6..6649304ae7 100644 --- a/src/vm/hvm.c +++ b/src/vm/hvm.c @@ -12232,6 +12232,7 @@ HB_LANG_REQUEST( HB_LANG_DEFAULT ) HB_EXTERN_BEGIN extern void HB_FORCE_LINK_MAIN( void ); HB_EXTERN_END +extern void _hb_forceLinkMain( void ); void _hb_forceLinkMain() { HB_FORCE_LINK_MAIN(); diff --git a/utils/hbmk2/hbmk2.prg b/utils/hbmk2/hbmk2.prg index cf5b55ba32..f2cf143591 100644 --- a/utils/hbmk2/hbmk2.prg +++ b/utils/hbmk2/hbmk2.prg @@ -1014,6 +1014,7 @@ STATIC FUNCTION hbmk_new( lShellMode ) hbmk[ _HBMK_aINCPATH ] := {} hbmk[ _HBMK_aLIBPATH ] := {} + hbmk[ _HBMK_lSysLoc ] := .F. hbmk[ _HBMK_lDumpInfo ] := .F. hbmk[ _HBMK_lMarkdown ] := .F. hbmk[ _HBMK_bOut ] := {| cText | OutStd( cText ) } @@ -1254,6 +1255,22 @@ STATIC PROCEDURE hbmk_harbour_dirlayout_init( hbmk ) hbmk[ _HBMK_cHB_INSTALL_ADD ] := hb_PathNormalize( hb_DirSepAdd( hbmk[ _HBMK_cHB_INSTALL_PFX ] ) ) + _HBMK_SPECDIR_ADDONS ENDIF + #if defined( __PLATFORM__UNIX ) + /* Detect system locations to enable shared library option by default */ + IF hbmk[ _HBMK_cPLAT ] == "beos" + hbmk[ _HBMK_lSysLoc ] := ; + LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/common" ) .OR. ; + LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/system" ) .OR. ; + LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/home/config" ) .OR. ; + AScan( ListToArray( GetEnv( "LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0 + ELSE + hbmk[ _HBMK_lSysLoc ] := ; + LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/local/bin" ) .OR. ; + LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/bin" ) .OR. ; + AScan( ListToArray( GetEnv( "LD_LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0 + ENDIF + #endif + RETURN STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExitStr ) @@ -1979,27 +1996,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit hbmk_OutErr( hbmk, hb_StrFormat( I_( e"Error: %1$s not set, failed to autodetect.\nRun this tool from its original location inside the Harbour installation or set %1$s environment variable to Harbour's root directory." ), _HBMK_ENV_INSTALL_PFX ) ) RETURN _EXIT_FAILHBDETECT ENDIF - - #if defined( __PLATFORM__UNIX ) - /* Detect system locations to enable shared library option by default */ - IF hbmk[ _HBMK_cPLAT ] == "beos" - hbmk[ _HBMK_lSysLoc ] := ; - LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/common" ) .OR. ; - LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/system" ) .OR. ; - LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/boot/home/config" ) .OR. ; - AScan( ListToArray( GetEnv( "LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0 - ELSE - hbmk[ _HBMK_lSysLoc ] := ; - LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/local/bin" ) .OR. ; - LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_BIN ], "/usr/bin" ) .OR. ; - AScan( ListToArray( GetEnv( "LD_LIBRARY_PATH" ), ":" ), {| tmp | LEFTEQUAL( hbmk[ _HBMK_cHB_INSTALL_LIB ], tmp ) } ) > 0 - ENDIF - #else - hbmk[ _HBMK_lSysLoc ] := .F. - #endif ELSE - hbmk[ _HBMK_lSysLoc ] := .F. - hbmk[ _HBMK_cHB_INSTALL_LI3 ] := "" hbmk[ _HBMK_cHB_INSTALL_BIN ] := "" hbmk[ _HBMK_cHB_INSTALL_LIB ] := "" @@ -3100,6 +3097,15 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF ENDIF + /* NOTE: Keep this before the "-i" check. */ + CASE Left( cParamL, Len( "-icon=" ) ) == "-icon=" + + cParam := MacroProc( hbmk, SubStr( cParam, Len( "-icon=" ) + 1 ), aParam[ _PAR_cFileName ] ) + IF ! Empty( cParam ) + AAdd( hbmk[ _HBMK_aICON ], hb_PathNormalize( PathMakeAbsolute( hb_DirSepToOS( cParam ), aParam[ _PAR_cFileName ] ) ) ) + ENDIF + + /* NOTE: Keep this after the "-icon=" check. */ CASE Left( cParamL, 2 ) == "-i" .AND. ; Len( cParamL ) > 2 .AND. !( cParamL == "-i-" ) @@ -3117,13 +3123,6 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit NEXT ENDIF - CASE Left( cParamL, Len( "-icon=" ) ) == "-icon=" - - cParam := MacroProc( hbmk, SubStr( cParam, Len( "-icon=" ) + 1 ), aParam[ _PAR_cFileName ] ) - IF ! Empty( cParam ) - AAdd( hbmk[ _HBMK_aICON ], hb_PathNormalize( PathMakeAbsolute( hb_DirSepToOS( cParam ), aParam[ _PAR_cFileName ] ) ) ) - ENDIF - CASE Left( cParamL, Len( "-manifest=" ) ) == "-manifest=" cParam := MacroProc( hbmk, SubStr( cParam, Len( "-manifest=" ) + 1 ), aParam[ _PAR_cFileName ] ) @@ -13477,17 +13476,23 @@ STATIC FUNCTION __hb_extern_gen( hbmk, aFuncList, cOutputName ) __hb_extern_get_exception_list( cOutputName, @aInclude, @aExclude, @hDynamic ) cExtern := "" + IF Empty( aInclude ) .AND. ; Empty( aExclude ) - cExtern += cLine - cExtern += " * NOTE: You can add manual override which functions to include or" + hb_eol() - cExtern += " * exclude from automatically generated EXTERNAL/DYNAMIC list." + hb_eol() - cExtern += cHelp + + cExtern += ; + cLine + ; + " * NOTE: You can add manual override which functions to include or" + hb_eol() + ; + " * exclude from automatically generated EXTERNAL/DYNAMIC list." + hb_eol() + ; + cHelp ELSE - cExtern += cLine - cExtern += " * NOTE: Following comments are control commands for the generator." + hb_eol() - cExtern += " * Do not edit them unless you know what you are doing." + hb_eol() - cExtern += cHelp + + cExtern += ; + cLine + ; + " * NOTE: Following comments are control commands for the generator." + hb_eol() + ; + " * Do not edit them unless you know what you are doing." + hb_eol() + ; + cHelp + IF ! Empty( aInclude ) cExtern += hb_eol() FOR EACH tmp IN aInclude @@ -13501,23 +13506,26 @@ STATIC FUNCTION __hb_extern_gen( hbmk, aFuncList, cOutputName ) NEXT ENDIF ENDIF - cExtern += hb_eol() - cExtern += cLine - cExtern += " * WARNING: Automatically generated code below. DO NOT EDIT! (except casing)" + hb_eol() - cExtern += " * Regenerate using " + _SELF_NAME_ + " '-hbx=' option." + hb_eol() - cExtern += " */" + hb_eol() - cExtern += hb_eol() - cExtern += "#ifndef " + "__HBEXTERN_CH__" + StrToDefine( hb_FNameName( cOutputName ) ) + "__" + hb_eol() - cExtern += "#define " + "__HBEXTERN_CH__" + StrToDefine( hb_FNameName( cOutputName ) ) + "__" + hb_eol() - cExtern += hb_eol() - cExtern += "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "ANNOUNCE" + " )" + hb_eol() - cExtern += " ANNOUNCE " + cSelfName + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() - cExtern += "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() - cExtern += " #command DYNAMIC => EXTERNAL " + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() + + cExtern += ; + hb_eol() + ; + cLine + ; + " * WARNING: Automatically generated code below. DO NOT EDIT! (except casing)" + hb_eol() + ; + " * Regenerate using " + _SELF_NAME_ + " '-hbx=' option." + hb_eol() + ; + " */" + hb_eol() + ; + hb_eol() + ; + "#ifndef " + "__HBEXTERN_CH__" + StrToDefine( hb_FNameName( cOutputName ) ) + "__" + hb_eol() + ; + "#define " + "__HBEXTERN_CH__" + StrToDefine( hb_FNameName( cOutputName ) ) + "__" + hb_eol() + ; + hb_eol() + ; + "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "ANNOUNCE" + " )" + hb_eol() + ; + " ANNOUNCE " + cSelfName + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + ; + "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() + ; + " #command DYNAMIC => EXTERNAL " + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + IF Empty( aInclude ) aExtern := aFuncList ELSE @@ -13535,12 +13543,14 @@ STATIC FUNCTION __hb_extern_gen( hbmk, aFuncList, cOutputName ) cExtern += "DYNAMIC " + hb_HGetDef( hDynamic, tmp, tmp ) + hb_eol() ENDIF NEXT - cExtern += hb_eol() - cExtern += "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() - cExtern += " #uncommand DYNAMIC => EXTERNAL " + hb_eol() - cExtern += "#endif" + hb_eol() - cExtern += hb_eol() - cExtern += "#endif" + hb_eol() + + cExtern += ; + hb_eol() + ; + "#if defined( " + _HBMK_HBEXTREQ + " ) .OR. defined( " + cSelfName + "REQUEST" + " )" + hb_eol() + ; + " #uncommand DYNAMIC => EXTERNAL " + hb_eol() + ; + "#endif" + hb_eol() + ; + hb_eol() + ; + "#endif" + hb_eol() /* Do not touch the file if the content is unchanged */ IF hb_MemoRead( cOutputName ) == cExtern