From b2b189377acbd44309da9f2edcf345b0d396b77a Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 30 Jul 2010 07:56:36 +0000 Subject: [PATCH] 2010-07-30 09:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * include/hbsocket.h * src/rtl/hbsocket.c ! Fixed type in C level function name. * src/rtl/hbdoc.prg ! Fixed to always use CRLF as EOL in internal doc data. * contrib/hbtip/utils.c ! HB_BASE64() marked as HB_LEGACY_LEVEL3. + Added TIP_CRLF() * contrib/hbtip/smtpcli.prg * contrib/hbtip/client.prg * contrib/hbtip/ftpcli.prg * contrib/hbtip/mail.prg * Using TIP_CRLF() instead of HB_INETCRLF(). * config/postinst.hbs + More meaningful message when doing 'make install' without HB_INSTALL_PREFIX being set. * contrib/hbpost.hbm + Added extra protection to not try to install anything when using 'install' without target dir being specified. * INSTALL * Updated to reflect the optional nature of make 'install' option. * Updated to reflect change in HB_INSTALL_PREFIX. * {hb_top} HB_INSTALL_PREFIX macro not documented anymore. --- harbour/ChangeLog | 38 +++++++++++++++++++++++++--- harbour/INSTALL | 33 ++++++++++++------------ harbour/config/postinst.hbs | 42 +++++++++++++++++-------------- harbour/contrib/hbpost.hbm | 14 +++++------ harbour/contrib/hbtip/client.prg | 2 +- harbour/contrib/hbtip/ftpcli.prg | 4 +-- harbour/contrib/hbtip/mail.prg | 6 ++--- harbour/contrib/hbtip/smtpcli.prg | 2 +- harbour/contrib/hbtip/utils.c | 9 +++++++ harbour/include/hbsocket.h | 2 +- harbour/src/rtl/hbdoc.prg | 2 +- harbour/src/rtl/hbsocket.c | 14 +++++------ 12 files changed, 106 insertions(+), 62 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 4fc0248591..2ba1d0f029 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,38 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-30 09:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * include/hbsocket.h + * src/rtl/hbsocket.c + ! Fixed type in C level function name. + + * src/rtl/hbdoc.prg + ! Fixed to always use CRLF as EOL in internal doc data. + + * contrib/hbtip/utils.c + ! HB_BASE64() marked as HB_LEGACY_LEVEL3. + + Added TIP_CRLF() + + * contrib/hbtip/smtpcli.prg + * contrib/hbtip/client.prg + * contrib/hbtip/ftpcli.prg + * contrib/hbtip/mail.prg + * Using TIP_CRLF() instead of HB_INETCRLF(). + + * config/postinst.hbs + + More meaningful message when doing 'make install' without + HB_INSTALL_PREFIX being set. + + * contrib/hbpost.hbm + + Added extra protection to not try to install anything when + using 'install' without target dir being specified. + + * INSTALL + * Updated to reflect the optional nature of make 'install' + option. + * Updated to reflect change in HB_INSTALL_PREFIX. + * {hb_top} HB_INSTALL_PREFIX macro not documented anymore. + 2010-07-29 18:47 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/doc/en/class_hbqplaintextedit.txt * contrib/hbqt/hbqt_hbqplaintextedit.cpp @@ -35,7 +67,7 @@ * contrib/hbide/ideedit.prg * contrib/hbide/ideeditor.prg + Added: controls to toggle code completions and completion tips. - The settings are not saved for the next run and are applicable + The settings are not saved for the next run and are applicable per editing instance. 2010-07-29 15:49 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) @@ -49,8 +81,8 @@ * contrib/hbide/ideskeletons.prg + Implemented: Code Snippets->execution->Ctrl+K : inserts the snippet if word under cursor is one of the name of a code snippet definition. - So, if you have a snippet named "doit" then immediately after - typeing "doit" you press Ctrl_K, then, instead of presenting you + So, if you have a snippet named "doit" then immediately after + typeing "doit" you press Ctrl_K, then, instead of presenting you with menu to select a snippet, it is executed automatically. 2010-07-30 00:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) diff --git a/harbour/INSTALL b/harbour/INSTALL index dbb9c7e274..c9c4d4ea64 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -49,7 +49,7 @@ HARBOUR If you use MinGW compiler, you already have GNU Make. You can also use included copy named win-make.exe instead. - > mingw32-make install + > mingw32-make [install] To test it, type: > cd tests @@ -62,7 +62,7 @@ HARBOUR You can also use these shells to build Harbour on Windows. Generally it's recommended to use native shell though. - > sh -c make install + > sh -c make [install] To test it, type: > cd tests @@ -84,7 +84,7 @@ HARBOUR Unpack it to your PATH or Harbour source root directory. You can also use included copy named dos-make.exe instead. - > make install + > make [install] To test it, type: > cd tests @@ -103,7 +103,7 @@ HARBOUR in this section. You can also use included copy named os2-make.exe instead. - > make install + > make [install] To test it, type: > cd tests @@ -115,7 +115,7 @@ HARBOUR -------------- (possible cross-build targets: Windows, Windows CE, MS-DOS, OS/2) - $ make install [HB_PLATFORM=<...>] + $ make [install] [HB_PLATFORM=<...>] To test it, type: $ cd tests @@ -129,7 +129,7 @@ HARBOUR Platform specific prerequisite: XCode installed - $ make install [HB_PLATFORM=<...>] + $ make [install] [HB_PLATFORM=<...>] To test it, type: $ cd tests @@ -150,9 +150,9 @@ HARBOUR ---------------------------------------------- (possible cross-build targets: Windows, Windows CE, MS-DOS) - $ gmake install [HB_PLATFORM=<...>] + $ gmake [install] [HB_PLATFORM=<...>] OR - $ make install [HB_PLATFORM=<...>] + $ make [install] [HB_PLATFORM=<...>] To test it, type: $ cd tests @@ -617,19 +617,18 @@ HARBOUR - HB_USER_DFLAGS User linker options for dynamic libraries - HB_INSTALL_PREFIX Target root directory to install Harbour files. - This will default to Harbour source tree on - non-*nix systems. On *nix systems the default - is set to /usr/local/ or $(PREFIX) if specified, - and /usr/local/harbour-- for - cross-builds. It's always set to ./pkg// - when HB_BUILD_PKG is set to 'yes'. - Use absolute paths only. For a peace of mind, - avoid using spaces and quotes in the name. + On *nix systems the default is set to /usr/local/ + or $(PREFIX) if specified, and + /usr/local/harbour-- for cross-builds. + It's always set to ./pkg// when + HB_BUILD_PKG is set to 'yes'. On non-*nix systems, + you must set it to a valid directory when using + 'install'. Use absolute paths only. For a peace of + mind, avoid using spaces and quotes in the name. You have to use path format native to your shell. F.e. to specify C:\dir on Windows, with Cygwin you should use /cygdrive/c/dir, with MSYS /c/dir. It's also possible to use following macros: - {hb_top} - Source tree root dir {hb_plat} - Target platform {hb_comp} - Target compiler {hb_cpu} - Target CPU diff --git a/harbour/config/postinst.hbs b/harbour/config/postinst.hbs index 3cd0125ddf..0439a52ea4 100644 --- a/harbour/config/postinst.hbs +++ b/harbour/config/postinst.hbs @@ -50,9 +50,7 @@ PROCEDURE Main() IF Empty( GetEnv( "HB_PLATFORM" ) ) .OR. ; Empty( GetEnv( "HB_COMPILER" ) ) .OR. ; - Empty( GetEnv( "HB_INSTALL_BIN" ) ) .OR. ; - Empty( GetEnv( "HB_INSTALL_LIB" ) ) .OR. ; - Empty( GetEnv( "HB_INSTALL_INC" ) ) + Empty( GetEnv( "HB_HOST_BIN_DIR" ) ) OutStd( "! Error: This program has to be called from the GNU Make process." + hb_eol() ) ErrorLevel( 1 ) @@ -101,14 +99,17 @@ PROCEDURE Main() OutStd( hb_StrFormat( "! Error: Cannot create directory '%1$s'", GetEnv( "HB_INSTALL_ETC" ) ) + hb_eol() ) ENDIF - OutStd( "! Creating *nix ld config file..." + hb_eol() ) + IF ! Empty( GetEnv( "HB_INSTALL_LIB" ) ) - tmp := GetEnv( "HB_INSTALL_ETC" ) + hb_ps() + ".." + hb_ps() + "ld.so.conf.d" - IF DirBuild( tmp ) - /* TOFIX: Put HB_INSTALL_LIB without build sandbox prefix */ - hb_MemoWrit( tmp + hb_ps() + "harbour.conf", GetEnv( "HB_INSTALL_LIB" ) + hb_eol() ) - ELSE - OutStd( hb_StrFormat( "! Error: Cannot create directory '%1$s'", tmp ) + hb_eol() ) + OutStd( "! Creating *nix ld config file..." + hb_eol() ) + + tmp := GetEnv( "HB_INSTALL_ETC" ) + hb_ps() + ".." + hb_ps() + "ld.so.conf.d" + IF DirBuild( tmp ) + /* TOFIX: Put HB_INSTALL_LIB without build sandbox prefix */ + hb_MemoWrit( tmp + hb_ps() + "harbour.conf", GetEnv( "HB_INSTALL_LIB" ) + hb_eol() ) + ELSE + OutStd( hb_StrFormat( "! Error: Cannot create directory '%1$s'", tmp ) + hb_eol() ) + ENDIF ENDIF ENDIF @@ -163,16 +164,19 @@ PROCEDURE Main() /* Creating language files */ - OutStd( "! Making core translation (.hbl) files..." + hb_eol() ) + IF ! Empty( GetEnv( "HB_INSTALL_BIN" ) ) - FOR EACH tmp IN Directory( "utils" + hb_ps() + hb_osFileMask(), "D" ) - IF "D" $ tmp[ F_ATTR ] .AND. !( tmp[ F_NAME ] == "." ) .AND. !( tmp[ F_NAME ] == ".." ) - FOR EACH aFile IN Directory( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + "*.po" ) - mk_hbl( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + aFile[ F_NAME ],; - PathSepToSelf( GetEnv( "HB_INSTALL_BIN" ) ) + hb_ps() + FNameExtSet( aFile[ F_NAME ], ".hbl" ) ) - NEXT - ENDIF - NEXT + OutStd( "! Making core translation (.hbl) files..." + hb_eol() ) + + FOR EACH tmp IN Directory( "utils" + hb_ps() + hb_osFileMask(), "D" ) + IF "D" $ tmp[ F_ATTR ] .AND. !( tmp[ F_NAME ] == "." ) .AND. !( tmp[ F_NAME ] == ".." ) + FOR EACH aFile IN Directory( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + "*.po" ) + mk_hbl( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + aFile[ F_NAME ],; + PathSepToSelf( GetEnv( "HB_INSTALL_BIN" ) ) + hb_ps() + FNameExtSet( aFile[ F_NAME ], ".hbl" ) ) + NEXT + ENDIF + NEXT + ENDIF /* Creating docs for core */ diff --git a/harbour/contrib/hbpost.hbm b/harbour/contrib/hbpost.hbm index b2f3adfd7f..7023a43cc1 100644 --- a/harbour/contrib/hbpost.hbm +++ b/harbour/contrib/hbpost.hbm @@ -42,11 +42,11 @@ {hblib}-workdir=../lib/${hb_plat}/${hb_comp}${hb_build}/${hb_work}/${hb_outputname}${hb_workdynsub} {hbexe|hbdyn}-workdir=../bin/${hb_plat}/${hb_comp}${hb_build}/${hb_work}/${hb_outputname}${hb_workdynsub} -{_HB_BUILD_INSTALL&hblib}-instpath=${_HB_INSTALL_LIB}/ -{_HB_BUILD_INSTALL&hbexe}-instpath=${_HB_INSTALL_BIN}/ -{_HB_BUILD_INSTALL&hbdyn}-instpath=${_HB_INSTALL_DYN}/ -{_HB_BUILD_INSTALL&hblib}-instpath=inc:${_HB_INSTALL_INC}/ -{_HB_BUILD_INSTALL}-instpath=etc:${_HB_INSTALL_ETC}/ -{_HB_BUILD_INSTALL}-instpath=man:${_HB_INSTALL_MAN}/ -{_HB_BUILD_INSTALL&HB_INSTALL_IMPLIB='yes'}-instpath=implib:${_HB_INSTALL_LIB}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_LIB&hblib}-instpath=${_HB_INSTALL_LIB}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_BIN&hbexe}-instpath=${_HB_INSTALL_BIN}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_DYN&hbdyn}-instpath=${_HB_INSTALL_DYN}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_INC&hblib}-instpath=inc:${_HB_INSTALL_INC}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_ETC}-instpath=etc:${_HB_INSTALL_ETC}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_MAN}-instpath=man:${_HB_INSTALL_MAN}/ +{_HB_BUILD_INSTALL&_HB_INSTALL_LIB&HB_INSTALL_IMPLIB='yes'}-instpath=implib:${_HB_INSTALL_LIB}/ {_HB_BUILD_INSTALL}-instforce diff --git a/harbour/contrib/hbtip/client.prg b/harbour/contrib/hbtip/client.prg index 9b7ccef87b..add0a876c3 100644 --- a/harbour/contrib/hbtip/client.prg +++ b/harbour/contrib/hbtip/client.prg @@ -91,7 +91,7 @@ CREATE CLASS tIPClient CLASSDATA bInitSocks INIT .F. - CLASSDATA cCRLF INIT hb_inetCRLF() + CLASSDATA cCRLF INIT tip_CRLF() VAR oUrl /* url to wich to connect */ VAR oCredentials /* credential needed to access the service */ diff --git a/harbour/contrib/hbtip/ftpcli.prg b/harbour/contrib/hbtip/ftpcli.prg index 7db7231d65..522983b04a 100644 --- a/harbour/contrib/hbtip/ftpcli.prg +++ b/harbour/contrib/hbtip/ftpcli.prg @@ -618,11 +618,11 @@ METHOD MPUT( cFileSpec, cAttr ) CLASS tIPClientFTP FOR EACH aFile IN Directory( cPath + cFile + cExt, cAttr ) IF ::uploadFile( cPath + aFile[ F_NAME ], aFile[ F_NAME ] ) - cStr += hb_inetCrlf() + aFile[ F_NAME ] + cStr += tip_CRLF() + aFile[ F_NAME ] ENDIF NEXT - RETURN SubStr( cStr, Len( hb_inetCrlf() ) + 1 ) + RETURN SubStr( cStr, Len( tip_CRLF() ) + 1 ) METHOD UpLoadFile( cLocalFile, cRemoteFile ) CLASS tIPClientFTP diff --git a/harbour/contrib/hbtip/mail.prg b/harbour/contrib/hbtip/mail.prg index 47f04036f2..5d90b90873 100644 --- a/harbour/contrib/hbtip/mail.prg +++ b/harbour/contrib/hbtip/mail.prg @@ -561,7 +561,7 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail imax := Len( aTO ) FOR i := 1 TO imax IF i > 1 - cTo += "," + hb_inetCrlf() + " " + cTo += "," + tip_CRLF() + " " ENDIF cTo += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aTo[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aTo[ i ] ) ) + ">" ) NEXT @@ -579,7 +579,7 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail imax := Len( aCC ) FOR i := 2 TO imax IF i > 1 - cCC += "," + hb_inetCrlf() + " " + cCC += "," + tip_CRLF() + " " ENDIF cCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aCC[ i ] ) ) + ">" ) NEXT @@ -594,7 +594,7 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail imax := Len( aBCC ) FOR i := 2 TO imax IF i > 1 - cBCC += "," + hb_inetCrlf() + " " + cBCC += "," + tip_CRLF() + " " ENDIF cBCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aBCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aBCC[ i ] ) ) + ">" ) NEXT diff --git a/harbour/contrib/hbtip/smtpcli.prg b/harbour/contrib/hbtip/smtpcli.prg index 1fac36ed4b..a9b656ca8a 100644 --- a/harbour/contrib/hbtip/smtpcli.prg +++ b/harbour/contrib/hbtip/smtpcli.prg @@ -282,7 +282,7 @@ METHOD SendMail( oTIpMail ) CLASS TIpClientSmtp ::mail( oTIpMail:getFieldPart( "From" ) ) cTo := oTIpMail:getFieldPart( "To" ) - cTo := StrTran( cTo, hb_inetCRLF() ) + cTo := StrTran( cTo, tip_CRLF() ) cTo := StrTran( cTo, Chr( 9 ) ) cTo := StrTran( cTo, Chr( 32 ) ) diff --git a/harbour/contrib/hbtip/utils.c b/harbour/contrib/hbtip/utils.c index 6214b0b042..72af2eafea 100644 --- a/harbour/contrib/hbtip/utils.c +++ b/harbour/contrib/hbtip/utils.c @@ -667,9 +667,18 @@ HB_FUNC( TIP_HTMLSPECIALCHARS ) hb_errRT_BASE( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, 1, hb_paramError( 1 ) ); } +#if defined( HB_LEGACY_LEVEL3 ) + HB_FUNC_EXTERN( HB_BASE64ENCODE ); HB_FUNC( HB_BASE64 ) { HB_FUNC_EXEC( HB_BASE64ENCODE ); } + +#endif + +HB_FUNC( TIP_CRLF ) +{ + hb_retc_const( "\r\n" ); +} diff --git a/harbour/include/hbsocket.h b/harbour/include/hbsocket.h index ea61d70230..ac16c859a5 100644 --- a/harbour/include/hbsocket.h +++ b/harbour/include/hbsocket.h @@ -73,7 +73,7 @@ extern HB_EXPORT void hb_socketCleanup( void ); extern HB_EXPORT int hb_socketGetError( void ); extern HB_EXPORT int hb_socketGetOsError( void ); extern HB_EXPORT const char * hb_socketErrorStr( int iError ); -extern HB_EXPORT int hb_socketGetAddrFamilly( const void * pSockAddr, unsigned len ); +extern HB_EXPORT int hb_socketGetAddrFamily( const void * pSockAddr, unsigned len ); extern HB_EXPORT HB_BOOL hb_socketLocalAddr( void ** pSockAddr, unsigned * puiLen, const char * szAddr ); extern HB_EXPORT HB_BOOL hb_socketInetAddr( void ** pSockAddr, unsigned * puiLen, const char * szAddr, int iPort ); extern HB_EXPORT HB_BOOL hb_socketInet6Addr( void ** pSockAddr, unsigned * puiLen, const char * szAddr, int iPort ); diff --git a/harbour/src/rtl/hbdoc.prg b/harbour/src/rtl/hbdoc.prg index b2e2de5ee9..90e7a21fe3 100644 --- a/harbour/src/rtl/hbdoc.prg +++ b/harbour/src/rtl/hbdoc.prg @@ -202,7 +202,7 @@ STATIC PROCEDURE __hbdoc__read_stream( aEntry, cFile, cFileName, hMeta, aErrMsg ENDIF ELSEIF ! Empty( cSection ) IF ! Empty( hEntry[ cSection ] ) - hEntry[ cSection ] += hb_eol() + hEntry[ cSection ] += Chr( 13 ) + Chr( 10 ) ENDIF hEntry[ cSection ] += cLine ELSEIF ! Empty( cLine ) diff --git a/harbour/src/rtl/hbsocket.c b/harbour/src/rtl/hbsocket.c index a0363ebdd6..e4ca0ec9f2 100644 --- a/harbour/src/rtl/hbsocket.c +++ b/harbour/src/rtl/hbsocket.c @@ -389,7 +389,7 @@ int hb_socketInit( void ) { return -1; } void hb_socketCleanup( void ) { ; } -int hb_socketGetAddrFamilly( const void * pSockAddr, unsigned len ) +int hb_socketGetAddrFamily( const void * pSockAddr, unsigned len ) { HB_SYMBOL_UNUSED( pSockAddr ); HB_SYMBOL_UNUSED( len ); @@ -1599,7 +1599,7 @@ static int hb_socketSelectWRE( HB_SOCKET sd, HB_MAXINT timeout ) ( iResult > 0 && FD_ISSET( sd, &wfds ) ? 1 : 0 ); } -int hb_socketGetAddrFamilly( const void * pSockAddr, unsigned len ) +int hb_socketGetAddrFamily( const void * pSockAddr, unsigned len ) { return pSockAddr && len ? ( ( struct sockaddr * ) pSockAddr )->sa_family : -1; } @@ -1728,7 +1728,7 @@ char * hb_socketAddrGetName( const void * pSockAddr, unsigned len ) { char * szName = NULL; - switch( hb_socketGetAddrFamilly( pSockAddr, len ) ) + switch( hb_socketGetAddrFamily( pSockAddr, len ) ) { #if defined( AF_INET ) case AF_INET: @@ -1800,7 +1800,7 @@ int hb_socketAddrGetPort( const void * pSockAddr, unsigned len ) { int iPort = -1; - switch( hb_socketGetAddrFamilly( pSockAddr, len ) ) + switch( hb_socketGetAddrFamily( pSockAddr, len ) ) { #if defined( AF_INET ) case AF_INET: @@ -1877,7 +1877,7 @@ PHB_ITEM hb_socketAddrToItem( const void * pSockAddr, unsigned len ) { PHB_ITEM pAddrItm = NULL; - switch( hb_socketGetAddrFamilly( pSockAddr, len ) ) + switch( hb_socketGetAddrFamily( pSockAddr, len ) ) { #if defined( AF_INET ) case AF_INET: @@ -2718,7 +2718,7 @@ HB_BOOL hb_socketResolveInetAddr( void ** pSockAddr, unsigned * puiLen, const ch if( getaddrinfo( szAddr, NULL, &hints, &res ) == 0 ) { if( ( int ) res->ai_addrlen >= ( int ) sizeof( struct sockaddr_in ) && - hb_socketGetAddrFamilly( res->ai_addr, res->ai_addrlen ) == AF_INET ) + hb_socketGetAddrFamily( res->ai_addr, res->ai_addrlen ) == AF_INET ) { sa.sin_addr.s_addr = ( ( struct sockaddr_in * ) res->ai_addr )->sin_addr.s_addr; fTrans = HB_TRUE; @@ -3212,7 +3212,7 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases ) #elif defined( HB_OS_WIN ) HB_SOCKET sd; - /* TODO: add suport for IP6 */ + /* TODO: add support for IP6 */ /* TODO: implement it */ HB_SYMBOL_UNUSED( fNoAliases );