2008-08-08 00:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/bin/hb-func.sh
    + recognize -mwindows -mconsole MinGW-GCC switches and update
      library list for them

  * harbour/source/rtl/gtwvt/gtwvt.h
  * harbour/source/rtl/gtwvt/gtwvt.c
    + added support HB_SET{TERM|DISP|KEY}CP() in non Unicode builds
This commit is contained in:
Przemyslaw Czerpak
2008-08-07 22:30:53 +00:00
parent c497600668
commit 98e79a7e2f
4 changed files with 123 additions and 9 deletions

View File

@@ -8,6 +8,15 @@
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2008-08-08 00:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
+ recognize -mwindows -mconsole MinGW-GCC switches and update
library list for them
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
+ added support HB_SET{TERM|DISP|KEY}CP() in non Unicode builds
2008-08-07 23:04 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
- doc/es/simplex.txt
* doc/es/Makefile

View File

@@ -290,6 +290,11 @@ HB_HWGUI=""
HB_USRLIBS=""
HB_USRLPATH=""
HB_GEN=""
HB_MODE=""
LN_OPT="${CC_L_USR}"
CC_OPT="${CC_C_USR}"
HB_OPT="${CC_PRG_USR}"
[ -n "\$TMPDIR" ] || TMPDIR="\$TMP"
[ -n "\$TMPDIR" ] || TMPDIR="\$TEMP"
[ -n "\$TMPDIR" ] || TMPDIR="/tmp"
@@ -325,6 +330,8 @@ while [ \$n -lt \${#P[@]} ]; do
-nostrip) HB_STRIP="no" ;;
-l[^-]*) HB_USRLIBS="\${HB_USRLIBS} \${v}" ;;
-L[^-]*) HB_USRLPATH="\${HB_USRLPATH} \${v}" ;;
-mwindows) LN_OPT="\${LN_OPT} \${v}"; HB_MODE="gui" ;;
-mconsole) LN_OPT="\${LN_OPT} \${v}"; HB_MODE="std" ;;
-main=*) HB_MAIN_FUNC="\${v#*=}" ;;
-g[cohwij]) HB_GEN="\${v#-g}"; p="\${v}" ;;
-gc[0-9]) HB_GEN="c"; p="\${v}" ;;
@@ -362,9 +369,6 @@ HB_MAIN_FUNC=\`echo \${HB_MAIN_FUNC}|tr '[a-z]' '[A-Z]'\`
HB_PATHS="-I\${HB_INC_INSTALL}"
GCC_PATHS="\${HB_PATHS} -L\${HB_LIB_INSTALL}"
LN_OPT="${CC_L_USR}"
CC_OPT="${CC_C_USR}"
HB_OPT="${CC_PRG_USR}"
[ "\${HB_GEN}" != "" ] || HB_OPT="\${HB_OPT} -gc0"
HB_GPM_LIB=""
@@ -484,9 +488,21 @@ else
HARBOUR_LIBS="-Wl,--start-group \${HARBOUR_LIBS} -Wl,--end-group"
fi
l="mainwin"
[ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.a" ] && l="\${l}mt"
[ -f "\${HB_LIB_INSTALL}/lib\${l}.a" ] && HARBOUR_LIBS="\${HARBOUR_LIBS} -l\${l}"
l=""
if [ "\${HB_COMPILER}" = "mingw32" ]; then
if [ -z "\${HB_MODE}" ]; then
LN_OPT="\${LN_OPT} -mwindows"
l="hbmainwin"
elif [ "\${HB_MODE}" = "gui" ]; then
l="hbmainwin"
elif [ "\${HB_MODE}" = "std" ]; then
l="hbmainstd"
fi
fi
if [ -n "\${l}" ]; then
[ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.a" ] && l="\${l}mt"
[ -f "\${HB_LIB_INSTALL}/lib\${l}.a" ] && HARBOUR_LIBS="\${HARBOUR_LIBS} -l\${l}"
fi
l="hbfm"
[ "\${HB_MT}" = "MT" ] && [ -f "\${HB_LIB_INSTALL}/lib\${l}mt.a" ] && l="\${l}mt"

View File

@@ -1139,12 +1139,16 @@ static BOOL hb_gt_wvt_KeyEvent( PHB_GTWVT pWVT, UINT message, WPARAM wParam, LPA
hb_gt_wvt_AddCharToInputQueue( pWVT, K_ESC );
break;
default:
#if defined(UNICODE)
if( pWVT->inCDP )
{
#if defined(UNICODE)
c = hb_cdpGetChar( pWVT->inCDP, FALSE, ( USHORT ) c );
else
#else
if( c > 0 && c <= 255 && pWVT->keyTransTbl[ c ] )
c = pWVT->keyTransTbl[ c ];
#endif
if( pWVT->CodePage == OEM_CHARSET )
}
else if( pWVT->CodePage == OEM_CHARSET )
c = hb_gt_wvt_key_ansi_to_oem( c );
hb_gt_wvt_AddCharToInputQueue( pWVT, c );
break;
@@ -1339,6 +1343,8 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
#if defined(UNICODE)
usChar = hb_cdpGetU16( pWVT->hostCDP, TRUE, ( BYTE ) usChar );
#else
usChar = pWVT->chrTransTbl[ usChar & 0xff ];
#endif
if( len == 0 )
{
@@ -1633,7 +1639,15 @@ static void hb_gt_wvt_Init( PHB_GT pGT, FHANDLE hFilenoStdin, FHANDLE hFilenoStd
#ifndef HB_CDP_SUPPORT_OFF
pWVT->hostCDP = hb_cdp_page;
#if defined(UNICODE)
pWVT->inCDP = hb_cdp_page;
#else
{
int i;
for( i = 0; i < 256; ++i )
pWVT->chrTransTbl[ i ] = pWVT->keyTransTbl[ i ] = ( BYTE ) i;
}
#endif
#endif
/* Set default window title */
@@ -2522,6 +2536,8 @@ static BOOL hb_gt_wvt_SetDispCP( PHB_GT pGT, char * pszTermCDP, char * pszHostCD
HB_GTSUPER_SETDISPCP( pGT, pszTermCDP, pszHostCDP, fBox );
#ifndef HB_CDP_SUPPORT_OFF
#if defined(UNICODE)
/*
* We are displaying text in U16 so pszTermCDP is unimportant.
* We only have to know what is the internal application codepage
@@ -2540,6 +2556,39 @@ static BOOL hb_gt_wvt_SetDispCP( PHB_GT pGT, char * pszTermCDP, char * pszHostCD
if( cdpHost )
HB_GTWVT_GET( pGT )->hostCDP = cdpHost;
}
#else
if( !pszHostCDP )
pszHostCDP = hb_cdp_page->id;
if( !pszTermCDP )
pszTermCDP = pszHostCDP;
if( pszTermCDP && pszHostCDP )
{
PHB_GTWVT pWVT = HB_GTWVT_GET( pGT );
PHB_CODEPAGE cdpTerm = hb_cdpFind( pszTermCDP ),
cdpHost = hb_cdpFind( pszHostCDP );
int i;
for( i = 0; i < 256; ++i )
pWVT->chrTransTbl[ i ] = ( BYTE ) i;
if( cdpTerm && cdpHost && cdpTerm != cdpHost &&
cdpTerm->nChars && cdpTerm->nChars == cdpHost->nChars )
{
for( i = 0; i < cdpHost->nChars; ++i )
{
pWVT->chrTransTbl[ ( BYTE ) cdpHost->CharsUpper[ i ] ] =
( BYTE ) cdpTerm->CharsUpper[ i ];
pWVT->chrTransTbl[ ( BYTE ) cdpHost->CharsLower[ i ] ] =
( BYTE ) cdpTerm->CharsLower[ i ];
}
}
}
#endif
#endif
return TRUE;
@@ -2550,6 +2599,8 @@ static BOOL hb_gt_wvt_SetKeyCP( PHB_GT pGT, char * pszTermCDP, char * pszHostCDP
HB_GTSUPER_SETKEYCP( pGT, pszTermCDP, pszHostCDP );
#ifndef HB_CDP_SUPPORT_OFF
#if defined(UNICODE)
/*
* We are receiving WM_CHAR events in U16 so pszTermCDP is unimportant.
* We only have to know what is the internal application codepage
@@ -2568,6 +2619,40 @@ static BOOL hb_gt_wvt_SetKeyCP( PHB_GT pGT, char * pszTermCDP, char * pszHostCDP
if( cdpHost )
HB_GTWVT_GET( pGT )->inCDP = cdpHost;
}
#else
if( !pszHostCDP )
pszHostCDP = hb_cdp_page->id;
if( !pszTermCDP )
pszTermCDP = pszHostCDP;
if( pszTermCDP && pszHostCDP )
{
PHB_GTWVT pWVT = HB_GTWVT_GET( pGT );
PHB_CODEPAGE cdpTerm = hb_cdpFind( pszTermCDP ),
cdpHost = hb_cdpFind( pszHostCDP );
int i;
for( i = 0; i < 256; ++i )
pWVT->keyTransTbl[ i ] = ( BYTE ) i;
if( cdpTerm && cdpHost && cdpTerm != cdpHost &&
cdpTerm->nChars && cdpTerm->nChars == cdpHost->nChars )
{
for( i = 0; i < cdpHost->nChars; ++i )
{
pWVT->keyTransTbl[ ( BYTE ) cdpTerm->CharsUpper[ i ] ] =
( BYTE ) cdpHost->CharsUpper[ i ];
pWVT->keyTransTbl[ ( BYTE ) cdpTerm->CharsLower[ i ] ] =
( BYTE ) cdpHost->CharsLower[ i ];
}
}
pWVT->inCDP = cdpTerm;
}
#endif
#endif
return TRUE;

View File

@@ -146,6 +146,10 @@ typedef struct
PHB_CODEPAGE hostCDP; /* Host/HVM CodePage for unicode output translations */
PHB_CODEPAGE inCDP; /* Host/HVM CodePage for unicode input translations */
#if !defined(UNICODE)
BYTE keyTransTbl[ 256 ];
BYTE chrTransTbl[ 256 ];
#endif
int CodePage; /* Code page to use for display characters */
BOOL Win9X; /* Flag to say if running on Win9X not NT/2000/XP */