Hacker News new | ask | show | jobs
by 8n4vidtmkvmk 27 days ago
Is it called "trio" state because 3 of the 5 states are not supported?

I also like how True is -1. Beautiful all around!

3 comments

-1 means every single bit is 1, the truest possible value.
I’m having a surprisingly difficult time deciding if I strongly agree or disagree with this statement.
I know VB used -1 as the truth value, not sure about other languages.
Apparently it's sort of sensible, but weird.

msoTriStateMixed applies to aggregates. Eg, text.isBold() can be true, false, or a mix. Partly bold, partly not bold.

msoTriStateToggle isn't a real value but only used as a sort of flag. So eg, text.setBold(tristate), where "Mixed" would be invalid, and "Toggle" would flip the bold-ness of the text.

The msoCTrue one is where it gets really weird, no clue what's that for. I suppose an ill-conceived attempt to support the other way to express True.

True being -1 was a thing in Visual Basic and I suppose by some other Windows stuff. Logic being all the bits are 1.

note CTrue, the one true true
CTRUE IS A FALSE PROPHET AND ITS WORSHIPPERS SHALL BURN FOR THEIR HERESY