From 2d330ec86562fd61bb691a2790e8aa963e7810e4 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 14 Oct 2009 18:10:33 +0000 Subject: [PATCH] 2009-10-14 20:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * src/rtl/gtwvt/gtwvt.c + Added _SET_OSCODEPAGE support for HB_GTINFO( HB_GTI_WINTITLE ) and HB_GTINFO( HB_GTI_SELECTCOPY ). --- harbour/ChangeLog | 23 ++++++++++++++--------- harbour/src/rtl/gtwvt/gtwvt.c | 26 +++++++++++++++++++------- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 11ac69bdcd..b7cc4c50e8 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,18 +17,23 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-10-14 20:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * src/rtl/gtwvt/gtwvt.c + + Added _SET_OSCODEPAGE support for HB_GTINFO( HB_GTI_WINTITLE ) + and HB_GTINFO( HB_GTI_SELECTCOPY ). + 2009-10-14 18:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) - * contrib/hbwin/win_misc.c - * contrib/hbwin/wapi_shellapi.c - + Added _SET_OSCODEPAGE support for WAPI_SHELLEXECUTE() and - WIN_RUNDETACHED(). This may make these functions incompatible - in some situations. This clears to TODOs in source. + * contrib/hbwin/win_misc.c + * contrib/hbwin/wapi_shellapi.c + + Added _SET_OSCODEPAGE support for WAPI_SHELLEXECUTE() and + WIN_RUNDETACHED(). This may make these functions incompatible + in some situations. This clears to TODOs in source. - * INSTALL - * Minor. + * INSTALL + * Minor. - * ChangeLog - + Item marked DONE. + * ChangeLog + + Item marked DONE. 2009-10-14 17:18 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-func.sh diff --git a/harbour/src/rtl/gtwvt/gtwvt.c b/harbour/src/rtl/gtwvt/gtwvt.c index 0efa90eff1..bafdc80a49 100644 --- a/harbour/src/rtl/gtwvt/gtwvt.c +++ b/harbour/src/rtl/gtwvt/gtwvt.c @@ -2308,13 +2308,21 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) case HB_GTI_WINTITLE: if( pWVT->hWnd ) { - char * szTitle = NULL; - if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) ) - pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle ); + char * pszTitle = NULL; + if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &pszTitle ) ) + pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, pszTitle ); else pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL ); + if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) - hb_gt_wvt_SetWindowTitle( pWVT->hWnd, hb_itemGetCPtr( pInfo->pNewVal ) ); + { + char * pszFreeTitle = NULL; + + hb_gt_wvt_SetWindowTitle( pWVT->hWnd, hb_osEncodeCP( hb_itemGetCPtr( pInfo->pNewVal ), &pszFreeTitle, NULL ) ); + + if( pszFreeTitle ) + hb_xfree( pszFreeTitle ); + } } break; @@ -2508,9 +2516,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) ulLen ); } else - { pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL ); - } } break; @@ -2582,11 +2588,17 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) HMENU hSysMenu = pWVT->hWnd ? GetSystemMenu( pWVT->hWnd, FALSE ) : NULL; if( hSysMenu || !pWVT->hWnd ) { + char * pszFreeTitle = NULL; + if( pWVT->pszSelectCopy ) hb_xfree( pWVT->pszSelectCopy ); - pWVT->pszSelectCopy = hb_strdup( hb_itemGetCPtr( pInfo->pNewVal ) ); + + pWVT->pszSelectCopy = hb_strdup( hb_osEncodeCP( hb_itemGetCPtr( pInfo->pNewVal ), &pszFreeTitle, NULL ) ); pWVT->bSelectCopy = TRUE; + if( pszFreeTitle ) + hb_xfree( pszFreeTitle ); + #if !defined( HB_OS_WIN_CE ) /* WinCE does not support ModifyMenu */ if( hSysMenu ) {