From 8ba79c5a085d73ac812f83da3f9bb3d16a058ca3 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 20 Feb 2010 18:32:39 +0000 Subject: [PATCH] 2010-02-20 19:32 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * src/rdd/Makefile * src/rdd/dbcmd53.c + src/rdd/ordwldsk.c + src/rdd/ordcount.c + Moved Harbour extensions in Clipper namespace to separate sources. --- harbour/ChangeLog | 8 +++ harbour/src/rdd/Makefile | 14 +++-- harbour/src/rdd/dbcmd53.c | 72 ---------------------- harbour/src/rdd/ordcount.c | 81 +++++++++++++++++++++++++ harbour/src/rdd/ordwldsk.c | 118 +++++++++++++++++++++++++++++++++++++ 5 files changed, 215 insertions(+), 78 deletions(-) create mode 100644 harbour/src/rdd/ordcount.c create mode 100644 harbour/src/rdd/ordwldsk.c diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 59c05623b7..50dc3dd95c 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,14 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-02-20 19:32 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * src/rdd/Makefile + * src/rdd/dbcmd53.c + + src/rdd/ordwldsk.c + + src/rdd/ordcount.c + + Moved Harbour extensions in Clipper namespace to separate + sources. + 2010-02-20 18:47 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/rtl/hbsocket.c ! fixed typo diff --git a/harbour/src/rdd/Makefile b/harbour/src/rdd/Makefile index 7ff40c7ec8..f26854d51c 100644 --- a/harbour/src/rdd/Makefile +++ b/harbour/src/rdd/Makefile @@ -17,18 +17,20 @@ C_SOURCES := \ dbdetach.c \ dbdrop.c \ dbexists.c \ + dbf1.c \ + dbnubs.c \ dbrename.c \ + dbsql.c \ + delim1.c \ fieldhb.c \ + hbdbsort.c \ + ordcount.c \ + ordwldsk.c \ workarea.c \ wacore.c \ wafunc.c \ - dbf1.c \ - dbnubs.c \ - dbsql.c \ - delim1.c \ - sdf1.c \ rddinfo.c \ - hbdbsort.c \ + sdf1.c \ PRG_SOURCES := \ dbdelim.prg \ diff --git a/harbour/src/rdd/dbcmd53.c b/harbour/src/rdd/dbcmd53.c index fd3f552241..917fb74fe1 100644 --- a/harbour/src/rdd/dbcmd53.c +++ b/harbour/src/rdd/dbcmd53.c @@ -320,78 +320,6 @@ HB_FUNC( ORDCUSTOM ) hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME ); } -#ifndef HB_CLP_STRICT -HB_FUNC( ORDCOUNT ) -{ - AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); - - if( pArea ) - { - DBORDERINFO pOrderInfo; - memset( &pOrderInfo, 0, sizeof( DBORDERINFO ) ); - pOrderInfo.atomBagName = hb_param( 1, HB_IT_STRING ); - pOrderInfo.itmResult = hb_itemPutNI( NULL, 0 ); - SELF_ORDINFO( pArea, DBOI_ORDERCOUNT, &pOrderInfo ); - hb_itemReturnRelease( pOrderInfo.itmResult ); - } - else - hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME ); -} - -HB_FUNC( ORDWILDSEEK ) -{ - AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); - - if( pArea ) - { - const char * szPattern = hb_parc( 1 ); - - if( szPattern ) - { - HB_BOOL fCont = hb_parl( 2 ), fBack = hb_parl( 3 ), fFound = HB_FALSE; - DBORDERINFO OrderInfo; - HB_ERRCODE errCode = HB_SUCCESS; - - memset( &OrderInfo, 0, sizeof( DBORDERINFO ) ); - OrderInfo.itmResult = hb_itemNew( NULL ); - - if( !fCont ) - { - const char * szKey; - - if( fBack ) - errCode = SELF_GOBOTTOM( pArea ); - else - errCode = SELF_GOTOP( pArea ); - - if( errCode == HB_SUCCESS ) - { - errCode = SELF_ORDINFO( pArea, DBOI_KEYVAL, &OrderInfo ); - if( errCode == HB_SUCCESS ) - { - szKey = hb_itemGetCPtr( OrderInfo.itmResult ); - fFound = hb_strMatchWild( szKey, szPattern ); - } - } - } - if( !fFound && errCode == HB_SUCCESS ) - { - OrderInfo.itmNewVal = hb_param( 1, HB_IT_STRING ); - if( SELF_ORDINFO( pArea, fBack ? DBOI_SKIPWILDBACK : DBOI_SKIPWILD, - &OrderInfo ) == HB_SUCCESS ) - fFound = hb_itemGetL( OrderInfo.itmResult ); - } - hb_itemRelease( OrderInfo.itmResult ); - hb_retl( fFound ); - } - else - hb_errRT_DBCMD( EG_ARG, EDBCMD_DBFILEPUTBADPARAMETER, NULL, HB_ERR_FUNCNAME ); - } - else - hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME ); -} -#endif - HB_FUNC( DBINFO ) { AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); diff --git a/harbour/src/rdd/ordcount.c b/harbour/src/rdd/ordcount.c new file mode 100644 index 0000000000..a939a890c0 --- /dev/null +++ b/harbour/src/rdd/ordcount.c @@ -0,0 +1,81 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * ORDCOUNT() function + * + * Copyright 2004-2007 Przemyslaw Czerpak + * 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, or (at your option) + * any later version. + * + * 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 software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries 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 Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +#include "hbapi.h" +#include "hbapirdd.h" +#include "hbapierr.h" +#include "hbapiitm.h" + +#ifdef HB_CLP_STRICT + +/* NOTE: This function is a new Harbour function implemented in the + original CA-Cl*pper namespace. This should have been + marked as HB_EXTENSION, but it's not. */ + +HB_FUNC( ORDCOUNT ) +{ + AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); + + if( pArea ) + { + DBORDERINFO pOrderInfo; + memset( &pOrderInfo, 0, sizeof( DBORDERINFO ) ); + pOrderInfo.atomBagName = hb_param( 1, HB_IT_STRING ); + pOrderInfo.itmResult = hb_itemPutNI( NULL, 0 ); + SELF_ORDINFO( pArea, DBOI_ORDERCOUNT, &pOrderInfo ); + hb_itemReturnRelease( pOrderInfo.itmResult ); + } + else + hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME ); +} + +#endif diff --git a/harbour/src/rdd/ordwldsk.c b/harbour/src/rdd/ordwldsk.c new file mode 100644 index 0000000000..e3bb77b69f --- /dev/null +++ b/harbour/src/rdd/ordwldsk.c @@ -0,0 +1,118 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * Base RDD module + * + * Copyright 1999 Bruno Cantero + * Copyright 2004-2007 Przemyslaw Czerpak + * 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, or (at your option) + * any later version. + * + * 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 software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries 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 Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +#include "hbapi.h" +#include "hbapirdd.h" +#include "hbapierr.h" +#include "hbapiitm.h" + +#ifdef HB_CLP_STRICT + +/* NOTE: This function is a new Harbour function implemented in the + original CA-Cl*pper namespace. This should have been + marked as HB_EXTENSION, but it's not. */ + +HB_FUNC( ORDWILDSEEK ) +{ + AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); + + if( pArea ) + { + const char * szPattern = hb_parc( 1 ); + + if( szPattern ) + { + HB_BOOL fCont = hb_parl( 2 ), fBack = hb_parl( 3 ), fFound = HB_FALSE; + DBORDERINFO OrderInfo; + HB_ERRCODE errCode = HB_SUCCESS; + + memset( &OrderInfo, 0, sizeof( DBORDERINFO ) ); + OrderInfo.itmResult = hb_itemNew( NULL ); + + if( !fCont ) + { + const char * szKey; + + if( fBack ) + errCode = SELF_GOBOTTOM( pArea ); + else + errCode = SELF_GOTOP( pArea ); + + if( errCode == HB_SUCCESS ) + { + errCode = SELF_ORDINFO( pArea, DBOI_KEYVAL, &OrderInfo ); + if( errCode == HB_SUCCESS ) + { + szKey = hb_itemGetCPtr( OrderInfo.itmResult ); + fFound = hb_strMatchWild( szKey, szPattern ); + } + } + } + if( !fFound && errCode == HB_SUCCESS ) + { + OrderInfo.itmNewVal = hb_param( 1, HB_IT_STRING ); + if( SELF_ORDINFO( pArea, fBack ? DBOI_SKIPWILDBACK : DBOI_SKIPWILD, + &OrderInfo ) == HB_SUCCESS ) + fFound = hb_itemGetL( OrderInfo.itmResult ); + } + hb_itemRelease( OrderInfo.itmResult ); + hb_retl( fFound ); + } + else + hb_errRT_DBCMD( EG_ARG, EDBCMD_DBFILEPUTBADPARAMETER, NULL, HB_ERR_FUNCNAME ); + } + else + hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME ); +} + +#endif