On Wed, 03 Jun 2009, Alexander S.Kresin wrote: Hi,
>> Two macro solutions and better (automatic) replacements: >> --- >> #if ( defined( HARBOUR_VER_AFTER_101 ) ) >> -> >> #if defined( __HARBOUR__ ) && __HARBOUR__ > 0x010100 >> --- >> --- >> #elif defined( HARBOUR_VER_BEFORE_100 ) >> -> >> #if ! defined( __HARBOUR__ ) >> --- > The problem is that __HARBOUR__ was defined before 1.00, but it hadn't a > number, so with an old version > #if ! defined( __HARBOUR__ ) > will always a FALSE and the > #if defined( __HARBOUR__ ) && __HARBOUR__ > 0x010100 > will give the compile error. It can be quite easy resolved for both C .prg preprocesors. For C code instead of: #if defined( __HARBOUR__ ) && __HARBOUR__ > 0x010100 simply use: #if defined( __HARBOUR__ ) && __HARBOUR__ - 0 > 0x010100 and for .prg code instead of: #if defined( __HARBOUR__ ) .and. __HARBOUR__ > 0x010100 use: #if defined( __HARBOUR__ ) .and. __HARBOUR__ - 0 > 0x010100 && in .prg code is comment marker and stripped with rest of line so .AND. has to be used instead. I think that such auto detection is better and much safer then manual setting by user. best regards, Przemek _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour