diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ce1ca8e59d..ef2039fdc9 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,23 @@ The license applies to all entries newer than 2009-04-28. */ +2012-09-26 17:54 UTC+0200 Viktor Szakats (harbour syenar.net) + * contrib/hbnf/bitclr.prg + * contrib/hbnf/bitset.prg + * contrib/hbnf/byt2hex.prg + * contrib/hbnf/byteand.prg + * contrib/hbnf/byteneg.prg + * contrib/hbnf/bytenot.prg + * contrib/hbnf/byteor.prg + * contrib/hbnf/bytexor.prg + * contrib/hbnf/floptst.prg + * contrib/hbnf/isbit.prg + * contrib/hbnf/pchr.prg + * contrib/hbnf/popadder.prg + * contrib/hbnf/scancode.prg + ! cleaned some CHR() and ASC() calls for unicode + ! FT_Adder(): fixed typo causing key not to be recognized + 2012-09-26 17:11 UTC+0200 Viktor Szakats (harbour syenar.net) * contrib/hbnf/aredit.prg * contrib/hbnf/calendar.prg diff --git a/harbour/contrib/hbnf/bitclr.prg b/harbour/contrib/hbnf/bitclr.prg index 3bc1d828da..9375a10110 100644 --- a/harbour/contrib/hbnf/bitclr.prg +++ b/harbour/contrib/hbnf/bitclr.prg @@ -33,7 +33,7 @@ FUNCTION FT_BITCLR( cInbyte, nBitpos ) cByte := NIL ELSE cByte := iif( ! FT_ISBIT( cInByte, nBitpos ), cInByte, ; - Chr( Asc( cInByte ) - ( 2 ^ nBitpos ) ) ) + hb_BChar( hb_BCode( cInByte ) - ( 2 ^ nBitpos ) ) ) ENDIF ELSE cByte := NIL diff --git a/harbour/contrib/hbnf/bitset.prg b/harbour/contrib/hbnf/bitset.prg index 5f2d823c8f..8e2a8c4081 100644 --- a/harbour/contrib/hbnf/bitset.prg +++ b/harbour/contrib/hbnf/bitset.prg @@ -33,7 +33,7 @@ FUNCTION FT_BITSET( cInByte, nBitpos ) cByte := NIL ELSE cByte := iif( FT_ISBIT( cInByte, nBitpos ), cInByte, ; - Chr( Asc( cInByte ) + ( 2 ^ nBitpos ) ) ) + hb_BChar( hb_BCode( cInByte ) + ( 2 ^ nBitpos ) ) ) ENDIF ELSE cByte := NIL diff --git a/harbour/contrib/hbnf/byt2hex.prg b/harbour/contrib/hbnf/byt2hex.prg index 628318a76e..a3e859a46b 100644 --- a/harbour/contrib/hbnf/byt2hex.prg +++ b/harbour/contrib/hbnf/byt2hex.prg @@ -30,8 +30,8 @@ FUNCTION FT_BYT2HEX( cByte ) LOCAL xHexString IF HB_ISSTRING( cByte ) - xHexString := SubStr( cHexTable, Int( Asc( cByte ) / 16 ) + 1, 1 ) + ; - SubStr( cHexTable, Int( Asc( cByte ) % 16 ) + 1, 1 ) + ; + xHexString := SubStr( cHexTable, Int( hb_BCode( cByte ) / 16 ) + 1, 1 ) + ; + SubStr( cHexTable, Int( hb_BCode( cByte ) % 16 ) + 1, 1 ) + ; "h" ELSE xHexString := NIL diff --git a/harbour/contrib/hbnf/byteand.prg b/harbour/contrib/hbnf/byteand.prg index da512270b1..db1d6f4fca 100644 --- a/harbour/contrib/hbnf/byteand.prg +++ b/harbour/contrib/hbnf/byteand.prg @@ -29,7 +29,7 @@ FUNCTION FT_BYTEAND( cByte1, cByte2 ) LOCAL nCounter, cNewByte IF HB_ISSTRING( cByte1 ) .AND. HB_ISSTRING( cByte2 ) - cNewByte := Chr( 0 ) + cNewByte := hb_BChar( 0 ) FOR nCounter := 0 TO 7 // test each bit position IF FT_ISBIT( cByte1, nCounter ) .AND. FT_ISBIT( cByte2, nCounter ) cNewByte := FT_BITSET( cNewByte, nCounter ) diff --git a/harbour/contrib/hbnf/byteneg.prg b/harbour/contrib/hbnf/byteneg.prg index 22d57117f9..9f4fb8cff6 100644 --- a/harbour/contrib/hbnf/byteneg.prg +++ b/harbour/contrib/hbnf/byteneg.prg @@ -25,4 +25,4 @@ */ FUNCTION FT_BYTENEG( cByte ) - RETURN iif( HB_ISSTRING( cByte ), Chr( ( 256 - Asc( cByte ) ) % 256 ), NIL ) + RETURN iif( HB_ISSTRING( cByte ), hb_BChar( ( 256 - hb_BCode( cByte ) ) % 256 ), NIL ) diff --git a/harbour/contrib/hbnf/bytenot.prg b/harbour/contrib/hbnf/bytenot.prg index 724d49ff07..964862a654 100644 --- a/harbour/contrib/hbnf/bytenot.prg +++ b/harbour/contrib/hbnf/bytenot.prg @@ -30,7 +30,7 @@ FUNCTION FT_BYTENOT( cByte ) LOCAL nCounter, cNewByte IF HB_ISSTRING( cByte ) - cNewByte := Chr( 0 ) + cNewByte := hb_BChar( 0 ) FOR nCounter := 0 TO 7 // test each bit position IF ! FT_ISBIT( cByte, nCounter ) cNewByte := FT_BITSET( cNewByte, nCounter ) diff --git a/harbour/contrib/hbnf/byteor.prg b/harbour/contrib/hbnf/byteor.prg index 870d3d2bf6..5e7347cd92 100644 --- a/harbour/contrib/hbnf/byteor.prg +++ b/harbour/contrib/hbnf/byteor.prg @@ -29,7 +29,7 @@ FUNCTION FT_BYTEOR( cByte1, cByte2 ) LOCAL nCounter, cNewByte IF HB_ISSTRING( cByte1 ) .AND. HB_ISSTRING( cByte2 ) - cNewByte := Chr( 0 ) + cNewByte := hb_BChar( 0 ) FOR nCounter := 0 TO 7 // test each bit position IF FT_ISBIT( cByte1, nCounter ) .OR. FT_ISBIT( cByte2, nCounter ) cNewByte := FT_BITSET( cNewByte, nCounter ) diff --git a/harbour/contrib/hbnf/bytexor.prg b/harbour/contrib/hbnf/bytexor.prg index 104025497e..f3e09b25ea 100644 --- a/harbour/contrib/hbnf/bytexor.prg +++ b/harbour/contrib/hbnf/bytexor.prg @@ -32,7 +32,7 @@ FUNCTION FT_BYTEXOR( cByte1, cByte2 ) LOCAL nCounter, cNewByte IF HB_ISSTRING( cByte1 ) .AND. HB_ISSTRING( cByte2 ) - cNewByte := Chr( 0 ) + cNewByte := hb_BChar( 0 ) FOR nCounter := 0 TO 7 // test each bit position IF FT_ISBIT( cByte1, nCounter ) .OR. FT_ISBIT( cByte2, nCounter ) IF ! ( FT_ISBIT( cByte1, nCounter ) .AND. FT_ISBIT( cByte2, nCounter ) ) diff --git a/harbour/contrib/hbnf/floptst.prg b/harbour/contrib/hbnf/floptst.prg index af40c4e058..a2087f0d8d 100644 --- a/harbour/contrib/hbnf/floptst.prg +++ b/harbour/contrib/hbnf/floptst.prg @@ -105,9 +105,9 @@ FUNCTION FT_FLOPTST( ; // error code defined by ERR_* #define BITS_6AND7 192 // value of byte when bits 6&7 are high -STATIC FUNCTION _GetDisketteNum( ; // returns false if no floppy drive installed or nDrive_i is invalid - nDrive_i ; // drive number to query status - ) +// returns false if no floppy drive installed or nDrive_i is invalid +STATIC FUNCTION _GetDisketteNum( nDrive_i ) // drive number to query status + LOCAL aRegs[ INT86_MAX_REGS ] LOCAL lRetCode LOCAL nByte @@ -121,7 +121,7 @@ STATIC FUNCTION _GetDisketteNum( ; // returns false if no floppy drive // bit 0 indicates floppy drive installed IF Int( nByte / 2 ) * 2 != nByte // is it odd i.e. is bit 0 set?? // bits 6 & 7 indicate number of floppies installed upto 4. - nDriveCount := Asc( FT_BYTEAND( Chr( nByte ), Chr( BITS_6AND7 ) ) ) + nDriveCount := hb_BCode( FT_BYTEAND( hb_BChar( nByte ), hb_BChar( BITS_6AND7 ) ) ) IF nDriveCount >= nDrive_i lRetCode := .T. ENDIF diff --git a/harbour/contrib/hbnf/isbit.prg b/harbour/contrib/hbnf/isbit.prg index 9533b31fcd..089d3c60d1 100644 --- a/harbour/contrib/hbnf/isbit.prg +++ b/harbour/contrib/hbnf/isbit.prg @@ -32,7 +32,7 @@ FUNCTION FT_ISBIT( cInbyte, nBitPos ) IF nBitPos > 7 .OR. nBitPos < 0 .OR. nBitPos != Int( nBitPos ) lBitStat := NIL ELSE - lBitStat := Int( ( ( Asc( cInByte ) * ( 2 ^ ( 7 - nBitPos ) ) ) % 256 ) / 128 ) == 1 + lBitStat := Int( ( ( hb_BCode( cInByte ) * ( 2 ^ ( 7 - nBitPos ) ) ) % 256 ) / 128 ) == 1 ENDIF ELSE lBitStat := NIL diff --git a/harbour/contrib/hbnf/pchr.prg b/harbour/contrib/hbnf/pchr.prg index 0d10418e33..e95a9b85b8 100644 --- a/harbour/contrib/hbnf/pchr.prg +++ b/harbour/contrib/hbnf/pchr.prg @@ -74,63 +74,64 @@ FUNCTION FT_PCHR( c_nums ) DO CASE CASE LEFTEQUAL( c_upper, "/GRAPHIC" ) - c_ret += Chr( 27 ) + Chr( 116 ) + Chr( 1 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 116 ) + hb_BChar( 1 ) CASE LEFTEQUAL( c_upper, "/ITALIC" ) - c_ret += Chr( 27 ) + Chr( 116 ) + Chr( 0 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 116 ) + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/PICTURE" ) - c_ret += Chr( 27 ) + Chr( 116 ) + Chr( 1 ) + ; - Chr( 27 ) + Chr( 120 ) + Chr( 1 ) + Chr( 27 ) + Chr( 107 ) + Chr( 1 ) + ; - Chr( 27 ) + Chr( 77 ) + Chr( 27 ) + "U" + c_ret += hb_BChar( 27 ) + hb_BChar( 116 ) + hb_BChar( 1 ) + ; + hb_BChar( 27 ) + hb_BChar( 120 ) + hb_BChar( 1 ) + ; + hb_BChar( 27 ) + hb_BChar( 107 ) + hb_BChar( 1 ) + ; + hb_BChar( 27 ) + hb_BChar( 77 ) + hb_BChar( 27 ) + "U" CASE LEFTEQUAL( c_upper, "/COND" ) .OR. LEFTEQUAL( c_upper, "/SI" ) - c_ret += Chr( 15 ) + c_ret += hb_BChar( 15 ) CASE LEFTEQUAL( c_upper, "/ROMAN" ) - c_ret += Chr( 27 ) + Chr( 107 ) + Chr( 0 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 107 ) + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/SANS" ) - c_ret += Chr( 27 ) + Chr( 107 ) + Chr( 1 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 107 ) + hb_BChar( 1 ) CASE LEFTEQUAL( c_upper, "/NLQ" ) - c_ret += Chr( 27 ) + Chr( 120 ) + Chr( 1 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 120 ) + hb_BChar( 1 ) CASE LEFTEQUAL( c_upper, "/DRAFT" ) - c_ret += Chr( 27 ) + Chr( 120 ) + Chr( 0 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 120 ) + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/ELITE" ) - c_ret += Chr( 27 ) + Chr( 77 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 77 ) CASE LEFTEQUAL( c_upper, "/PICA" ) - c_ret += Chr( 27 ) + Chr( 80 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 80 ) CASE LEFTEQUAL( c_upper, "/EMPHOFF" ) - c_ret += Chr( 27 ) + Chr( 70 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 70 ) CASE LEFTEQUAL( c_upper, "/EMPH" ) - c_ret += Chr( 27 ) + Chr( 69 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 69 ) CASE LEFTEQUAL( c_upper, "/1/6" ) - c_ret += Chr( 27 ) + Chr( 50 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 50 ) CASE LEFTEQUAL( c_upper, "/1/8" ) - c_ret += Chr( 27 ) + Chr( 48 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 48 ) CASE LEFTEQUAL( c_upper, "/SKIPOFF" ) - c_ret += Chr( 27 ) + Chr( 79 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 79 ) CASE LEFTEQUAL( c_upper, "/SKIP" ) - c_ret += Chr( 27 ) + Chr( 78 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 78 ) CASE LEFTEQUAL( c_upper, "/FF" ) .OR. LEFTEQUAL( c_upper, "/EJECT" ) - c_ret += Chr( 12 ) + c_ret += hb_BChar( 12 ) CASE LEFTEQUAL( c_upper, "/INIT" ) .OR. LEFTEQUAL( c_upper, "/RESET" ) - c_ret += Chr( 27 ) + Chr( 64 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 64 ) CASE LEFTEQUAL( c_upper, "/SPANISH" ) - c_ret += Chr( 27 ) + Chr( 82 ) + Chr( 12 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 82 ) + hb_BChar( 12 ) CASE LEFTEQUAL( c_upper, "/USA" ) - c_ret += Chr( 27 ) + Chr( 82 ) + Chr( 0 ) + c_ret += hb_BChar( 27 ) + hb_BChar( 82 ) + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/ONE" ) - c_ret += Chr( 27 ) + "U" + Chr( 1 ) + c_ret += hb_BChar( 27 ) + "U" + hb_BChar( 1 ) CASE LEFTEQUAL( c_upper, "/TWO" ) - c_ret += Chr( 27 ) + "U" + Chr( 0 ) + c_ret += hb_BChar( 27 ) + "U" + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/FAST" ) - c_ret += Chr( 27 ) + "s" + Chr( 0 ) + c_ret += hb_BChar( 27 ) + "s" + hb_BChar( 0 ) CASE LEFTEQUAL( c_upper, "/SLOW" ) - c_ret += Chr( 27 ) + "s" + Chr( 1 ) + c_ret += hb_BChar( 27 ) + "s" + hb_BChar( 1 ) CASE LEFTEQUAL( c_upper, "/OFF" ) - c_ret += Chr( 19 ) + c_ret += hb_BChar( 19 ) CASE LEFTEQUAL( c_upper, "/ON" ) - c_ret += Chr( 17 ) + c_ret += hb_BChar( 17 ) CASE LEFTEQUAL( c_upper, "/BEEP" ) .OR. LEFTEQUAL( c_upper, "/BELL" ) - c_ret += Chr( 7 ) + c_ret += hb_BChar( 7 ) CASE LEFTEQUAL( c_upper, "/CAN" ) - c_ret += Chr( 24 ) + c_ret += hb_BChar( 24 ) ENDCASE ENDIF diff --git a/harbour/contrib/hbnf/popadder.prg b/harbour/contrib/hbnf/popadder.prg index 60eacf985b..a73a631dc6 100644 --- a/harbour/contrib/hbnf/popadder.prg +++ b/harbour/contrib/hbnf/popadder.prg @@ -55,13 +55,6 @@ #define STD_VARIABLE 6 #define STD_BORDER 7 -#define K_DECIM 46 -#define K_EQUAL 13 -#define K_PLUS 43 -#define K_MINUS 45 -#define K_MULTIPLY 42 -#define K_DIVIDE 47 -#define K_ZERO 48 #define B_DOUBLE hb_UTF8ToStr( "╔═╗║╝═╚║ " ) #define B_SINGLE "+-+|+-+| " @@ -120,7 +113,7 @@ THREAD STATIC aKeys, aWindow, nWinColor, aWinColor, aStdColor #ifdef FT_TEST -FUNCTION TEST +PROCEDURE Main() LOCAL nSickHrs := 0 LOCAL nPersHrs := 0 @@ -158,7 +151,7 @@ FUNCTION TEST SET KEY K_ALT_A // Reset - RETURN NIL + RETURN #endif @@ -233,15 +226,15 @@ FUNCTION FT_Adder() DO WHILE ! lDone // Input key & test loop FT_INKEY 0 TO nKey DO CASE - CASE Upper( Chr( nKey ) ) $ "1234567890." + CASE hb_keyChar( nKey ) $ "1234567890." _ftProcessNumb( aAdder, nKey ) - CASE nKey == K_PLUS // <+> sign + CASE nKey == hb_keyCode( "+" ) // <+> sign _ftAddSub( aAdder, nKey ) - CASE nKey == K_MINUS // <-> sign + CASE nKey == hb_keyCode( "-" ) // <-> sign _ftAddSub( aAdder, nKey ) - CASE nKey == K_MULTIPLY // <*> sign + CASE nKey == hb_keyCode( "*" ) // <*> sign _ftMultDiv( aAdder, nKey ) - CASE nKey == K_DIVIDE // sign + CASE nKey == hb_keyCode( "/" ) // sign _ftMultDiv( aAdder, nKey ) CASE nKey == K_RETURN // Total or Subtotal _ftAddTotal( aAdder ) @@ -542,8 +535,8 @@ STATIC FUNCTION _ftProcessNumb( aAdder, nKey ) lClAdder := .F. // Reset the Clear flag lAddError := .F. // Reset adder error flag - IF nKey == Asc( "." ) // Period (.) decimal point - IF lDecSet // Has decimal already been set + IF nKey == hb_keyCode( "." ) // Period (.) decimal point + IF lDecSet // Has decimal already been set Tone( 800, 1 ) ELSE lDecSet := .T. @@ -551,10 +544,10 @@ STATIC FUNCTION _ftProcessNumb( aAdder, nKey ) ELSE // It must be a number input lNewNum := .T. nNum := nKey - 48 - IF lDecSet // Decimal set - IF nDecDigit < nMaxDeci // Check how many decimals are allowed + IF lDecSet // Decimal set + IF nDecDigit < nMaxDeci // Check how many decimals are allowed nDecDigit := ++nDecDigit - nNumTotal := nNumTotal + nNum/ ( 10 ** nDecDigit ) + nNumTotal := nNumTotal + nNum / ( 10 ** nDecDigit ) ENDIF ELSE nNumTotal := nNumTotal * 10 + nNum @@ -677,7 +670,7 @@ STATIC FUNCTION _ftAddSub( aAdder, nKey ) nNumTotal := nSavTotal lNewNum := .T. ENDIF - IF nKey == K_PLUS // Add + IF nKey == hb_keyCode( "+" ) // Add nAddMode := 1 IF !lNewNum // They pressed + again to add the same nNumTotal := nSavSubTot // number without re-entering @@ -687,7 +680,7 @@ STATIC FUNCTION _ftAddSub( aAdder, nKey ) lNewNum := .F. nSavSubTot := nNumTotal // Save this number in case they just press + or - nNumTotal := 0 - ELSEIF nKey == K_MINUS // Subtract + ELSEIF nKey == hb_keyCode( "-" ) // Subtract nAddMode := 2 IF !lNewNum // They pressed + again to add the same nNumTotal := nSavSubTot // number without re-entering @@ -726,28 +719,28 @@ STATIC FUNCTION _ftMultDiv( aAdder, nKey ) lDecSet := .F. nDecDigit := 0 lSubRtn := .F. -// They pressed the + or - key to process the previous total + // They pressed the + or - key to process the previous total IF _ftRoundIt( nNumTotal, nMaxDeci ) == 0 .AND. _ftRoundIt( nTotal, nMaxDeci ) == 0 nNumTotal := nSavTotal ENDIF -// Get the first number of the product or division + // Get the first number of the product or division IF _ftRoundIt( nTotal, nMaxDeci ) == 0 - IF nKey == K_MULTIPLY // Setup mode + IF nKey == hb_keyCode( "*" ) // Setup mode nAddMode := 3 _ftUpdateTrans( aAdder, .F. , nNumTotal ) - ELSEIF nKey == K_DIVIDE + ELSEIF nKey == hb_keyCode( "/" ) nAddMode := 4 _ftUpdateTrans( aAdder, .F. , nNumTotal ) ENDIF nTotal := nNumTotal nNumTotal := 0 ELSE - IF nKey == K_MULTIPLY // Multiply + IF nKey == hb_keyCode( "*" ) // Multiply nAddMode := 3 _ftUpdateTrans( aAdder, .F. , nNumTotal ) nTotal := nTotal * nNumTotal nNumTotal := 0 - ELSEIF nKey == K_MULTIPLY // Divide + ELSEIF nKey == hb_keyCode( "/" ) // Divide nAddMode := 4 _ftUpdateTrans( aAdder, .F. , nNumTotal ) nTotal := _ftDivide( aAdder, nTotal, nNumTotal ) @@ -1416,7 +1409,7 @@ STATIC FUNCTION _ftStuffComma( cStrToStuff, lTrimStuffedStr ) "" $ cStrToStuff .OR. "/" $ cStrToStuff .OR. "=" $ cStrToStuff, ; Len( cStrToStuff ) - 1, Len( cStrToStuff ) + 1 ) ) - IF Asc( cStrToStuff ) == K_SPACE .OR. Asc( cStrToStuff ) == K_ZERO + IF cStrToStuff == " " .OR. cStrToStuff == "0" cStrToStuff := SubStr( cStrToStuff, 2 ) ENDIF diff --git a/harbour/contrib/hbnf/scancode.prg b/harbour/contrib/hbnf/scancode.prg index b2d8769607..1942729c6a 100644 --- a/harbour/contrib/hbnf/scancode.prg +++ b/harbour/contrib/hbnf/scancode.prg @@ -33,7 +33,7 @@ #ifdef FT_TEST -#define SCANCODE_ESCAPE ( chr( 27 ) + chr( 1 ) ) +#define SCANCODE_ESCAPE ( hb_BChar( 27 ) + hb_BChar( 1 ) ) PROCEDURE Main() @@ -61,4 +61,4 @@ FUNCTION FT_SCANCODE() aRegs[ AX ] := MAKEHI( 0 ) FT_INT86( KEYB, aRegs ) - RETURN Chr( LOWBYTE( aRegs[ AX ] ) ) + Chr( HIGHBYTE( aRegs[ AX ] ) ) + RETURN hb_BChar( LOWBYTE( aRegs[ AX ] ) ) + hb_BChar( HIGHBYTE( aRegs[ AX ] ) )