This is a HUGE commit:
417 files changed, 874 insertions(+), 874 deletions(-)
As the IOCCC website now is https enabled I have updated the
'http://www.ioccc' to 'https://www.ioccc'.
There was also a typo in Makefiles where it said 'for VERY WELCOME' when
it should be 'are VERY WELCOME'.
Finally slashdot.org is also https enabled so references to
'http://slashdot' were changed to 'https://slashdot'.
This was done by my sgit tool (see https://github.com/xexyl/sgit)
like:
sgit -e 's,http://www.ioccc,https://www.ioccc,g' -e 's/for VERY WELCOME/are VERY WELCOME/g' -e .
but because I didn't have a list of files that should be modified I had
to be careful which files to commit as I had files that were changed but
not ready to be committed. Since I did it in steps, finding typos as I
went along, I actually ran sgit three times but to simplify the above
(and to show that it's possible to do more than one sed command) I made
it all as one. Since I did not have a list of files ahead of time I had
to determine what files to commit, first going through them like:
for j in $(for i in $(git status|grep modified|cut -d: -f2); do \
git grep 'https://www.ioccc' "$i"; done|cut -d: -f1|sort|uniq); \
do git diff "$j"; done|less -r
(I had to pipe through less because of a strange problem with the git
diff which appears to be because of a terminal problem maybe due to the
command above but it was all I could come up with in a very tired head.)
The above and
git status | grep modified:
showed that some C files had been modified which obviously should not be
done so I had to do:
git co '*c'
to undo those changes.
Finally to commit the correct files I did:
for i in $(git status|grep modified|cut -d: -f2); do \
git grep -E 'https://www.ioccc|https://slashdot|are VERY WELCOME' "$i"; \
done |cut -d: -f1|sort|uniq|xargs git commit -v
or so (with any formatting issues or typos here due to typos in the log
due to the terminal (in)sanity issue described).
Bset slaml prragom
Ilya Kurdyukov
https://github.com/ilyakurdyukov
To build:
make
To run:
./prog
Try:
# first input to try
echo first input to try | ./prog
# try reading this output
echo International Obfuscated C Code Contest | ./prog
# try reading this other output
./prog < input.txt
Alternate code
There is an alternate version of this code in prog.alt.c where the main code is a macro.
To compile this alternate version:
make alt
Use prog.alt as you would prog above.
Judges' remarks:
It is interesting how well smeonoe can raed txet wtih lots of tyops in it. How well can you raed porg.c, C prgoarm that is in the shpae of an SD card (or is it a pnuch crad)?
BTW: this funny reading of English (which also works with several other languages) is called typoglycemia (the article however is incorrect in stating that if the letters were more jumbled or if other words were formed one could not read it: we know of some who can in fact do exactly that).
Author's remarks:
Letter Mixer
Compile and try this:
cat input.txt | ./prog
The program can work with letters that are not represented in English, as long as these letters are encoded in the higher part of the single-byte character set (use iconv to convert from UTF-8 and back).
Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see: https://creativecommons.org/licenses/by-sa/4.0/