Joe said:
No Mel. The (x)Harbour language is Clipper, a dialect of dBASE. It is not
remotely related to C. You're only annoying the regulars here.
Wrong Joe !
The harbour language is *not* a dialect of Clipper/dBase but a
completely new re-write, and it has completely subsumed the old Clipper
language, and was written purely in C and new Harbour functions over the
past ten years.
Clipper had only 18 source modules written in C, and only *one*
sizeable one (sdx.c) which implemented a certain off-the-wall and now
forgotten database driver.
The remainder of the 18 were very short C routines similar to the one
that follows at the bottom here
OTOH, Harbour has at least 626 complex and sizeable C routines that make
up its extensive base of source code. From those C routines, there are
about another 200 Harbour routines made from them to complete the source
code
So, Joe, thanks for being trying to keep me straight.
... and I emphasixe that Harbour is *more C* than anything else except C
itself.
-Mel
**** an old function from 1993 written in C in as a small part of the old
Clipper Language ****
/*
* YesNo( lExpr ) -> cValue
*
* Given a logical expression, returns the
* string "Yes" if true, and "No " if false.
*
* Copyright (C) 1993, Computer Associates, Inc. All Rights Reserved
*/
#include "clipdefs.h"
#include "extend.api"
#include "item.api"
CLIPPER YesNo( void )
{
ITEM itemLughi, itemCRet;
// Warning: "Yes" and "No " strings use DGROUP!
// In general, this is a bad practice, but ... 6 bytes?
// I doubt if the universe will explode (unless this is a
// Doug Adams program)
itemCRet = _itemPutC( NULL, "No " );
if (PCOUNT > 0)
{
itemLughi = _itemParam( 1 );
if (_itemGetL( itemLughi ))
itemCRet = _itemPutC( itemCRet, "Yes");
_itemRelease( itemLughi );
}
_itemRelease( _itemReturn( itemCRet ) );
return;
}
**************************************