I've been doing a bulk replace of 'case..else' to 'case..otherwise' to
eliminate possible ambiguities that have bitten me in the past, and have
noticed something interesting under 2.6.4 on x86 Linux.
This is OK:
Ord('.'): case shiftState of
unshifted: mechCode := Corr_88_Period;
shifted:
else
end;
This is an error:
Ord('.'): case shiftState of
unshifted: mechCode := Corr_88_Period;
shifted:
otherwise
end;
I can fix it like this:
Ord('.'): case shiftState of
unshifted: mechCode := Corr_88_Period;
shifted: ;
otherwise
end;
But that grates since I was brought up on ; being a statement separator
rather than a terminator. Alternatively this is OK:
Ord('.'): case shiftState of
unshifted: mechCode := Corr_88_Period;
shifted:
end;
but I like having the regular code (in some cases there are active
otherwise clauses, and I spent enough time with Modula-2 to prefer
enumerating all possibilities).
Is this difference expected, and what is the best workaround?
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal