Red Hat Nullifies Differences Between Bash, Csh
Andreas(R) writes "Red Hat Software has revealed that future versions of the distribution will hide the differences between command-line user interfaces, creating a 'more unified shell prompt experience'. 'I don't mind if they rebrand and unify the GNOME and KDE interfaces,' said one Linux longhair. 'Frankly, I rarely use GUIs. But when they start messing with my CLI, then it's personal. I'm not going to sit here and let Red Hat infect my beloved tcsh with those annoying quirks from bash." Ah, nothing like satire that only a small group will truly grok. *grin*
If you hadn't noticed it's under the "funny/humour" catogory. Turn this catagory off in your preferences if you dont want it.
As p3d0 said, shells behave the opposite. (Although there once was an odd bug in - what was it, Ultrix? - where csh behaved the opposite, i.e. didn't behave the opposite, i.e. was buggy, with regards to the && and || short-circuit operators. But then, csh history is replete with odd bugs.)
But to expand on the point: in Unix, the exit status of a program is an integer (7 unsigned bits, anyway: trying to use more is not portable). Convention dictates that 0 is normal termination, non-zero is abnormal, and anything over 128 means it was killed by a signal rather than the exit() function. (Which signal? Subtract 128 to find out.) Furthermore, many programs document their various abnormal exit status numbers to mean various failure cases.
Note that even MS-DOS (and all of its misshapen get) uses the zero / greater-than-zero convention. In DOS, a process's return value is called the "errorlevel", which indeed more accurately describes its main purpose.
This convention also goes a little deeper in Unix. Most system calls and many C library functions (remember, the standard C library was first defined on Unix) return 0 for success (or similar concepts: "equality" in the string compare function strcmp()) and non-zero for failure ("inequality" in strcmp()). Even system calls which return other meaningful integers (open(), for example) generally use >=0 for success and -1 for failure.
So it may make no sense from a boolean logic point of view but zero==true is surprisingly widespread. Mostly because there is often only one way to succeed at a task but many ways to fail, and it's useful to be able to report specific failure modes.
"How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
The home page is whatever Malda wants to make it. Slashdot started as Rob Malda's pet project, and that's basically what it will always be. It's an obscenely popular project and makes some money (maybe) now, but it's still his personal project.
Deal with it. No one, especially Rob, cares what you think "should" be on the main page.