## To build: ``` make all ``` ## To use: ``` ./bas2 < file echo text | ./bas2 ``` ## Try: ``` ./try.sh ./try.sh "foo bar" "baz" "IOCCC 1998/bas2" README.md ./try.sh try.sh "bas2.c" bas2.orig.c ``` ## Judges' remarks: ### Questions to ponder: Can you determine the relationship between the input and the resulting numeric output? The program was not designed to process files with a certain octet value, what value is that? ### Hint and Extra Credit: This entry points out a minor flaw in the IOCCC rules that has been around since 1992. It processes a certain octet value in a way that differs from a strict reading of one of the official IOCCC rules. What is the rule and what is the octet value? ## Author's remarks: The main obfuscation is the way characters are recognized, which is done by matching the bit patterns. Minor obfuscations are: - Useless layout. - Useless variable names. - Recursive `main()` instead of 2 loops (over input characters and over bits in the character). - `?:` and `||` instead of if statements.