diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6fda5d4c25..d65054c46a 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,11 @@ +19991022-09:27 GMT+1 Victor Szel + * source/rtl/console.c + ! New C syntax bug fixed in hb_setpos() + * source/tools/ctchksum.c + + CA-Tools compatible CHECKSUM() function. + * source/rtl/natmsg.c + * Small correction. + 19991022-08:19 GMT+1 Antonio Linares * source/rtl/fm.c * fixed some bugs regarding the calculations for the largest diff --git a/harbour/source/rtl/console.c b/harbour/source/rtl/console.c index 5b80e32899..c29cff3d22 100644 --- a/harbour/source/rtl/console.c +++ b/harbour/source/rtl/console.c @@ -484,20 +484,22 @@ void hb_setpos( SHORT row, SHORT col ) #ifdef HARBOUR_USE_GTAPI hb_gtSetPos( row, col ); #else - SHORT iCount; - - if( row < s_iDevRow || col < s_iDevCol ) { - fputs( s_szCrLf, stdout ); - s_iDevCol = 0; - s_iDevRow++; + SHORT iCount; + + if( row < s_iDevRow || col < s_iDevCol ) + { + fputs( s_szCrLf, stdout ); + s_iDevCol = 0; + s_iDevRow++; + } + else if( row > s_iDevRow ) s_iDevCol = 0; + for( iCount = s_iDevRow; iCount < row; iCount++ ) + fputs( s_szCrLf, stdout ); + for( iCount = s_iDevCol; iCount < col; iCount++ ) + fputc( ' ', stdout ); + fflush( stdout ); } - else if( row > s_iDevRow ) s_iDevCol = 0; - for( iCount = s_iDevRow; iCount < row; iCount++ ) - fputs( s_szCrLf, stdout ); - for( iCount = s_iDevCol; iCount < col; iCount++ ) - fputc( ' ', stdout ); - fflush( stdout ); #endif s_iDevRow = row; diff --git a/harbour/source/rtl/natmsg.c b/harbour/source/rtl/natmsg.c index ac97da5269..e4e683242a 100644 --- a/harbour/source/rtl/natmsg.c +++ b/harbour/source/rtl/natmsg.c @@ -213,8 +213,8 @@ HARBOUR HB_NATIONMSG( void ) HARBOUR HB__NATSORTVER( void ) { - /* NOTE: CA-Cl*pper 5.2e will return: "NATSORT v1.2i x14 19/Mar/93" */ - /* NOTE: CA-Cl*pper 5.3 will return: "NATSORT v1.3i x19 06/Mar/95" */ + /* NOTE: CA-Cl*pper 5.2e Intl. will return: "NATSORT v1.2i x14 19/Mar/93" */ + /* NOTE: CA-Cl*pper 5.3 Intl. will return: "NATSORT v1.3i x19 06/Mar/95" */ hb_retc( "NATSORT (Harbour)" ); } @@ -223,8 +223,8 @@ HARBOUR HB__NATSORTVER( void ) HARBOUR HB__NATMSGVER( void ) { - /* NOTE: CA-Cl*pper 5.2e will return: "NATMSGS v1.2i x14 19/Mar/93" */ - /* NOTE: CA-Cl*pper 5.3 will return: "NATMSGS v1.3i x19 06/Mar/95" */ + /* NOTE: CA-Cl*pper 5.2e Intl. will return: "NATMSGS v1.2i x14 19/Mar/93" */ + /* NOTE: CA-Cl*pper 5.3 Intl. will return: "NATMSGS v1.3i x19 06/Mar/95" */ hb_retc( "NATMSGS (Harbour)" ); } diff --git a/harbour/source/tools/Makefile b/harbour/source/tools/Makefile index 074bb0bc2c..aeeeb0fe9c 100644 --- a/harbour/source/tools/Makefile +++ b/harbour/source/tools/Makefile @@ -14,6 +14,7 @@ C_SOURCES=\ chrcount.c \ chrfirst.c \ chrtotal.c \ + ctchksum.c \ dates2.c \ datesx.c \ hb_f.c \ diff --git a/harbour/source/tools/ctchksum.c b/harbour/source/tools/ctchksum.c new file mode 100644 index 0000000000..fada154832 --- /dev/null +++ b/harbour/source/tools/ctchksum.c @@ -0,0 +1,49 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * CHECKSUM() CA-Tools function + * + * Copyright 1999 Victor Szel + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version, with one exception: + * + * The exception is that if you link the Harbour Runtime Library (HRL) + * and/or the Harbour Virtual Machine (HVM) with other files to produce + * an executable, this does not by itself cause the resulting executable + * to be covered by the GNU General Public License. Your use of that + * executable is in no way restricted on account of linking the HRL + * and/or HVM code into it. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit + * their web site at http://www.gnu.org/). + * + */ + +#include "extend.h" + +HARBOUR HB_CT_CHECKSUM( void ) +{ + BYTE * pbyString = hb_parc( 1 ); + ULONG ulLen = hb_parclen( 1 ); + ULONG ulPos; + ULONG ulResult = 0; + + for( ulPos = 0; ulPos < ulLen; ulPos++ ) + ulResult += ( ( ULONG ) ( pbyString[ ulPos ] + ( ULONG ) ( pbyString[ ulPos + 1 ] * 256 ) ) ) & 0xFFFF; + + hb_retnl( ( ULONG ) ( ( ulResult & 0x00FFFFFF ) | ( ( ulLen & 0xFF ) << 24 ) ) ); +}