On Mon, 24 May 2004, Arkady V.Belousov wrote:

> 23-���-2004 21:50 [EMAIL PROTECTED] (Bart Oldeman) wrote to
> [EMAIL PROTECTED]:
>
> >>   /* DELETED (0x5) || EXT_DELETED (0xe5) ? */
> >>   if ((UBYTE)(name[0] & ~0xE0) == DELETED)
>
>      Ops, mistype. Should be:
>
>    if ((UBYTE)((0x20 + name[0]) & ~0x20) == DELETED)
> ----------------^^^^^^^
> BO> Your code is much harder to understand
>
>      Just slightly more arithmetics. For some begginers harder to read ?:
> instead if/else or even ++ instead +1, but this not stops you from using
> these constructions?

Maybe I'm just a weirdo, but what you call "slightly more arithmetics"
takes 100 times longer to figure out for me (unlike those syntactical
constructs like ++).

Replacing

  if (name[0] == DELETED || name[0] == EXT_DELETED)

by

  /* DELETED (0x5) || EXT_DELETED (0xe5) ? */
  if ((UBYTE)((0x20 + name[0]) & ~0x20) == DELETED)

may help (it doesn't for Open Watcom) but such changes should be done by
the compiler's code generator, not by a human being...

Bart



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id�66&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to