Thanks.

[ I still can't use patched just attached to mails though. 
Anyhow I'd like to be off of this modification. ]

Brgds,
Viktor

On 2009 Dec 6, at 10:56, Tamas TEVESZ wrote:

> On Sun, 6 Dec 2009, Viktor Szakáts wrote:
> 
>> I'm leaving this to you as it obviously has no point for 
>> me to update it while I don't understand a single bit about it.
>> 
>> I can restore original state but that won't help on the 
>> original problem.
> 
> here's the deal in condensed form: CRTSCTS is system-dependendant. 
> most every system could have it, but some don't. right now, the only 
> one that doesn't have it is the watcom runtime on linux, but as we 
> know what CRTSCTS is on linux (by way of extracting it from libc), we 
> know how to make watcom define it to the correct value.
> 
> the modifications przemek proposed makes the code reflect this line of 
> thinking (so that probably noone will make the same mistake i made 
> thinking there's no point for extra guards), and if one ever 
> encounters another platform without CRTSCTS, he sees that
> 
> - he either needs to come up with a value for CRTSCTS by some means 
>  (platform-specific tricks, experiments, crystal ball), or
> - we'll completely skip the code path that depepnds on a known CRTSCTS 
>  (and generate a warning to signal that "there is something that you 
>  should probably fix up for full user experience")
> 
> the specific cases przemek cited were just to show that the 
> actual value is system-dependant, not because they needed to be put in 
> the code, as those systems are fine enough to indicate the needed 
> values by themselves.
> 
> this seems to be what przemek is getting to. it's essentially the same 
> in effect that was in before, but is hopefully way more verbose in 
> telling why it's there.
> 
> Index: tpunix.c
> ===================================================================
> --- tpunix.c  (revision 13140)
> +++ tpunix.c  (working copy)
> @@ -267,22 +267,18 @@
>       hb_retl( FALSE );
> }
> 
> -#if ! defined( CRTSCTS )
> -   #if   defined( HB_OS_LINUX ) ||
> -         defined( HB_OS_SUNOS )
> -      #define CRTSCTS            0x80000000
> -   #elif defined( HB_OS_BSD )
> -      #define CRTSCTS            0x00010000
> -   #elif defined( HB_OS_BEOS )
> -      #define CRTSCTS            0x00006000
> -   #elif defined( HB_OS_DARWIN )
> -      #define CRTSCTS            0x00030000
> -   #endif
> +#if !defined( CRTSCTS )
> +#   if defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) && __WATCOMC__ < 1290
> +#      define CRTSCTS 020000000000
> +#   endif
> #endif
> 
> HB_FUNC( __TP_CTRLCTS )
> {
> -#if defined( CRTSCTS )
> +#if !defined( CRTSCTS )
> +   int iTODO;
> +   hb_retni( 0 );
> +#else
>    struct termios options;
>    int port = hb_parnl( 1 );
>    int newvalue = hb_pcount() == 2 ? hb_parnl( 2 ) : -1;
> @@ -301,9 +297,6 @@
>       rc = tcsetattr( port, TCSAFLUSH, &options );
> 
>    hb_retni( curvalue ? 1 : 0 );
> -#else
> -   int iTODO;
> -   hb_retni( 0 );
> #endif
> }
> 
> as i see it, the essential difference is as follows:
> 
> #if !defined( CRTSCTS ) && defined( __WATCOMC__ )
> #  define CRTSCTS 020000000000
> #endif
> 
> what this tells is "crtscts might not be defined on linux/watcom, so 
> here's what it should be".
> 
> #if !defined( CRTSCTS )
> #   if defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) && __WATCOMC__ < 1290
> #      define CRTSCTS 020000000000
> #   endif
> #endif
> 
> what this tells is "crtscts might not be defined. we know one such 
> case is this older versions of watcom on linux, where crtscts should 
> be this.".
> 
> while the end result is quite the same, it makes whoever is reading 
> think in a different way, which is actually needed here, as przemek 
> helpfully explained.
> 
> -- 
> [-]
> 
> mkdir /nonexistent
> _______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour

_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to