2007-09-13 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/contrib/rdd_ads/ads1.c
  * harbour/source/rdd/dbf1.c
    * variable name clean-up
This commit is contained in:
Przemyslaw Czerpak
2007-09-13 17:50:35 +00:00
parent f7b2b9a553
commit f3ac5e10e4
3 changed files with 95 additions and 84 deletions

View File

@@ -8,6 +8,11 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2007-09-13 19:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/rdd_ads/ads1.c
* harbour/source/rdd/dbf1.c
* variable name clean-up
2007-09-13 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbsxdef.ch

View File

@@ -1347,7 +1347,7 @@ static ERRCODE adsAppend( ADSAREAP pArea, BOOL fUnLockAll )
static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
{
USHORT uiItems, uiCount, uiLen, uiDec;
DBFIELDINFO pFieldInfo;
DBFIELDINFO dbFieldInfo;
PHB_ITEM pFieldDesc;
char *szFieldType;
int iData;
@@ -1357,20 +1357,22 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
uiItems = ( USHORT ) hb_arrayLen( pStruct );
SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiItems );
memset( &dbFieldInfo, 0, sizeof( dbFieldInfo ) );
for( uiCount = 0; uiCount < uiItems; uiCount++ )
{
pFieldInfo.uiTypeExtended = 0;
dbFieldInfo.uiTypeExtended = 0;
pFieldDesc = hb_arrayGetItemPtr( pStruct, uiCount + 1 );
pFieldInfo.atomName = ( BYTE * ) hb_arrayGetCPtr( pFieldDesc, 1 );
dbFieldInfo.atomName = ( BYTE * ) hb_arrayGetCPtr( pFieldDesc, 1 );
iData = hb_arrayGetNI( pFieldDesc, 3 );
if( iData < 0 )
iData = 0;
uiLen = pFieldInfo.uiLen = ( USHORT ) iData;
uiLen = dbFieldInfo.uiLen = ( USHORT ) iData;
iData = hb_arrayGetNI( pFieldDesc, 4 );
if( iData < 0 )
iData = 0;
uiDec = ( USHORT ) iData;
pFieldInfo.uiDec = 0;
dbFieldInfo.uiDec = 0;
szFieldType = hb_arrayGetCPtr( pFieldDesc, 2 );
iData = toupper( szFieldType[ 0 ] );
switch( iData )
@@ -1378,15 +1380,15 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
case 'C':
if( strlen( szFieldType ) == 1 || ! hb_stricmp( szFieldType, "char" ) )
{
pFieldInfo.uiType = HB_IT_STRING;
pFieldInfo.uiLen = uiLen + uiDec * 256;
dbFieldInfo.uiType = HB_IT_STRING;
dbFieldInfo.uiLen = uiLen + uiDec * 256;
}
else if( ! hb_stricmp( szFieldType, "curdouble" ) && pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_CURDOUBLE;
pFieldInfo.uiLen = 8;
pFieldInfo.uiDec = uiDec;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_CURDOUBLE;
dbFieldInfo.uiLen = 8;
dbFieldInfo.uiDec = uiDec;
}
else
{
@@ -1395,27 +1397,27 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
break;
case 'L':
pFieldInfo.uiType = HB_IT_LOGICAL;
pFieldInfo.uiLen = 1;
dbFieldInfo.uiType = HB_IT_LOGICAL;
dbFieldInfo.uiLen = 1;
break;
case 'M':
pFieldInfo.uiType = HB_IT_MEMO;
pFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
dbFieldInfo.uiType = HB_IT_MEMO;
dbFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
break;
case 'D':
if( strlen( szFieldType ) == 1 || ! hb_stricmp( szFieldType, "date" ) )
{
pFieldInfo.uiType = HB_IT_DATE;
pFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 4 : 8;
dbFieldInfo.uiType = HB_IT_DATE;
dbFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 4 : 8;
}
else if( ! hb_stricmp( szFieldType, "double" ) )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_DOUBLE;
pFieldInfo.uiLen = 8;
pFieldInfo.uiDec = uiDec;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_DOUBLE;
dbFieldInfo.uiLen = 8;
dbFieldInfo.uiDec = uiDec;
}
else
{
@@ -1424,7 +1426,7 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
break;
case 'N':
pFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiType = HB_IT_LONG;
if( uiLen > 32 )
{
@@ -1432,15 +1434,15 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
}
else
{
pFieldInfo.uiDec = uiDec;
dbFieldInfo.uiDec = uiDec;
}
break;
case 'A':
if( pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_AUTOINC;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_AUTOINC;
}
else
{
@@ -1449,21 +1451,21 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
break;
case 'B':
pFieldInfo.uiType = HB_IT_MEMO;
pFieldInfo.uiTypeExtended = ADS_BINARY;
pFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
dbFieldInfo.uiType = HB_IT_MEMO;
dbFieldInfo.uiTypeExtended = ADS_BINARY;
dbFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
break;
case 'V':
pFieldInfo.uiType = HB_IT_MEMO;
pFieldInfo.uiTypeExtended = ADS_VARCHAR;
dbFieldInfo.uiType = HB_IT_MEMO;
dbFieldInfo.uiTypeExtended = ADS_VARCHAR;
break;
case 'R':
if( pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_STRING;
pFieldInfo.uiTypeExtended = ADS_RAW;
dbFieldInfo.uiType = HB_IT_STRING;
dbFieldInfo.uiTypeExtended = ADS_RAW;
}
else
{
@@ -1474,15 +1476,15 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
case 'S':
if( !hb_stricmp( szFieldType, "shortdate" ) )
{
pFieldInfo.uiType = HB_IT_DATE;
pFieldInfo.uiTypeExtended = ADS_COMPACTDATE;
pFieldInfo.uiLen = 4;
dbFieldInfo.uiType = HB_IT_DATE;
dbFieldInfo.uiTypeExtended = ADS_COMPACTDATE;
dbFieldInfo.uiLen = 4;
}
else if( !hb_stricmp( szFieldType, "shortint" ) && pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_SHORTINT;
pFieldInfo.uiLen = 2;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_SHORTINT;
dbFieldInfo.uiLen = 2;
}
else
{
@@ -1493,15 +1495,15 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
case 'T':
if( ! hb_stricmp( szFieldType, "timestamp" ) && pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_TIMESTAMP;
pFieldInfo.uiLen = 8;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_TIMESTAMP;
dbFieldInfo.uiLen = 8;
}
else if( !hb_stricmp( szFieldType, "time" ) && pArea->iFileType == ADS_ADT )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_TIME;
pFieldInfo.uiLen = 4;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_TIME;
dbFieldInfo.uiLen = 4;
}
else
{
@@ -1512,15 +1514,15 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
case 'I':
if( !hb_stricmp( szFieldType, "integer" ) )
{
pFieldInfo.uiType = HB_IT_LONG;
pFieldInfo.uiTypeExtended = ADS_INTEGER;
pFieldInfo.uiLen = 4;
dbFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiTypeExtended = ADS_INTEGER;
dbFieldInfo.uiLen = 4;
}
else if( !hb_stricmp( szFieldType, "image" ) )
{
pFieldInfo.uiType = HB_IT_MEMO;
pFieldInfo.uiTypeExtended = ADS_IMAGE;
pFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
dbFieldInfo.uiType = HB_IT_MEMO;
dbFieldInfo.uiTypeExtended = ADS_IMAGE;
dbFieldInfo.uiLen = ( pArea->iFileType == ADS_ADT ) ? 9 : 10;
}
else
{
@@ -1534,7 +1536,7 @@ static ERRCODE adsCreateFields( ADSAREAP pArea, PHB_ITEM pStruct )
}
}
/* Add field */
if( SELF_ADDFIELD( (AREAP)pArea, &pFieldInfo ) == FAILURE )
if( SELF_ADDFIELD( (AREAP)pArea, &dbFieldInfo ) == FAILURE )
{
return FAILURE;
}
@@ -2866,6 +2868,7 @@ static ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo )
SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields );
memset( &dbFieldInfo, 0, sizeof( dbFieldInfo ) );
pArea->maxFieldLen = 0;
for( uiCount = 1; uiCount <= uiFields; uiCount++ )

View File

@@ -3146,7 +3146,7 @@ static ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
PHB_FNAME pFileName;
BYTE * pBuffer;
LPDBFFIELD pField;
DBFIELDINFO pFieldInfo;
DBFIELDINFO dbFieldInfo;
BYTE szFileName[ _POSIX_PATH_MAX + 1 ];
char szAlias[ HARBOUR_MAX_RDD_ALIAS_LENGTH + 1 ];
@@ -3406,38 +3406,41 @@ static ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
}
}
/* Clear dbFieldInfo structure */
memset( &dbFieldInfo, 0, sizeof( dbFieldInfo ) );
/* Size for deleted flag */
pArea->uiRecordLen = 1;
for( uiCount = 0; uiCount < uiFields + uiSkip; uiCount++ )
{
pField = ( LPDBFFIELD ) ( pBuffer + uiCount * sizeof( DBFFIELD ) );
pFieldInfo.atomName = pField->bName;
pFieldInfo.atomName[10] = '\0';
/* hb_strUpper( (char *) pFieldInfo.atomName, 11 ); */
pFieldInfo.uiLen = pField->bLen;
pFieldInfo.uiDec = 0;
pFieldInfo.uiTypeExtended = 0;
dbFieldInfo.atomName = pField->bName;
dbFieldInfo.atomName[10] = '\0';
/* hb_strUpper( (char *) dbFieldInfo.atomName, 11 ); */
dbFieldInfo.uiLen = pField->bLen;
dbFieldInfo.uiDec = 0;
dbFieldInfo.uiTypeExtended = 0;
switch( pField->bType )
{
case 'C':
pFieldInfo.uiType = HB_IT_STRING;
pFieldInfo.uiLen = pField->bLen + pField->bDec * 256;
dbFieldInfo.uiType = HB_IT_STRING;
dbFieldInfo.uiLen = pField->bLen + pField->bDec * 256;
break;
case 'L':
pFieldInfo.uiType = HB_IT_LOGICAL;
pFieldInfo.uiLen = 1;
dbFieldInfo.uiType = HB_IT_LOGICAL;
dbFieldInfo.uiLen = 1;
break;
case 'M':
pFieldInfo.uiType = HB_IT_MEMO;
dbFieldInfo.uiType = HB_IT_MEMO;
pArea->fHasMemo = TRUE;
break;
case 'V':
pFieldInfo.uiType = HB_IT_ANY;
if( pFieldInfo.uiLen >= 6 )
dbFieldInfo.uiType = HB_IT_ANY;
if( dbFieldInfo.uiLen >= 6 )
{
pArea->uiMemoVersion = DB_MEMOVER_SIX;
pArea->fHasMemo = TRUE;
@@ -3445,29 +3448,29 @@ static ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
break;
case 'D':
pFieldInfo.uiType = HB_IT_DATE;
if( pFieldInfo.uiLen != 3 && pFieldInfo.uiLen != 4 )
pFieldInfo.uiLen = 8;
dbFieldInfo.uiType = HB_IT_DATE;
if( dbFieldInfo.uiLen != 3 && dbFieldInfo.uiLen != 4 )
dbFieldInfo.uiLen = 8;
break;
case 'I':
case 'Y':
pFieldInfo.uiType = HB_IT_INTEGER;
if( ( pFieldInfo.uiLen > 4 && pFieldInfo.uiLen != 8 ) ||
pFieldInfo.uiLen == 0 )
pFieldInfo.uiLen = 4;
pFieldInfo.uiDec = pField->bDec;
dbFieldInfo.uiType = HB_IT_INTEGER;
if( ( dbFieldInfo.uiLen > 4 && dbFieldInfo.uiLen != 8 ) ||
dbFieldInfo.uiLen == 0 )
dbFieldInfo.uiLen = 4;
dbFieldInfo.uiDec = pField->bDec;
break;
case '2':
case '4':
pFieldInfo.uiType = HB_IT_INTEGER;
pFieldInfo.uiLen = pField->bType - '0';
dbFieldInfo.uiType = HB_IT_INTEGER;
dbFieldInfo.uiLen = pField->bType - '0';
break;
case 'N':
case 'F':
pFieldInfo.uiType = HB_IT_LONG;
dbFieldInfo.uiType = HB_IT_LONG;
/* DBASE documentation defines maximum numeric field size as 20
* but Clipper allows to create longer fields so I removed this
* limit, Druzus
@@ -3477,30 +3480,30 @@ static ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
errCode = FAILURE;
else
*/
pFieldInfo.uiDec = pField->bDec;
dbFieldInfo.uiDec = pField->bDec;
break;
case '8':
case 'B':
pFieldInfo.uiType = HB_IT_DOUBLE;
pFieldInfo.uiLen = 8;
pFieldInfo.uiDec = pField->bDec;
dbFieldInfo.uiType = HB_IT_DOUBLE;
dbFieldInfo.uiLen = 8;
dbFieldInfo.uiDec = pField->bDec;
break;
/* types which are not supported by VM - mapped to different ones */
case 'T':
case '@':
pFieldInfo.uiType = HB_IT_INTEGER;
dbFieldInfo.uiType = HB_IT_INTEGER;
break;
default:
if( pArea->bTableType == DB_DBF_VFP && pField->bFieldFlags & 0x01 )
{
if( memcmp( pFieldInfo.atomName, "_NullFlags", 10 ) == 0 )
if( memcmp( dbFieldInfo.atomName, "_NullFlags", 10 ) == 0 )
{
/* TODO: NULLABLE and VARLENGTH support */
}
pArea->uiRecordLen += pFieldInfo.uiLen;
pArea->uiRecordLen += dbFieldInfo.uiLen;
continue;
}
errCode = FAILURE;
@@ -3509,7 +3512,7 @@ static ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
/* Add field */
if( errCode == SUCCESS )
errCode = SELF_ADDFIELD( ( AREAP ) pArea, &pFieldInfo );
errCode = SELF_ADDFIELD( ( AREAP ) pArea, &dbFieldInfo );
/* Exit if error */
if( errCode != SUCCESS )