Files
ioccc/1994/shapiro/shapiro.c
T
Cody Boone Ferguson 0c543beb0f Fix EOF == -1 assumption in 1994/shapiro
The problem is that the getc() functions return EOF on error/EOF but it
assumed that it returns -1. EOF is not required to be -1 but merely an
int < 0 so on systems where it was not -1 it could be a problem. But
changing the != -1 check to be != EOF caused a new compiler warning and
errors. However since EOF < 0 and since the code functions fine with the
check being >= 0 the code now checks that the return value of getc() >= 0
as the condition of the for loop. This takes care of any problem where
EOF != -1.

Fixed accidental change in shapiro.md code excerpt. Note that that one
(the first one) does not actually work but it never did (or if it did it
doesn't in modern systems). I'm not sure this is a problem though as the
author stated that without the comments the program will not do anything
right. I believe the author was showing the algorithm without comments.
2023-04-02 10:10:23 -07:00

61 lines
3.1 KiB
C

#include <stdio.h>
/*MLSPXPMPVPOQN
POPJLVMMQNQNPSPYPXLRP
XMTJMLSPXPMPVPOQNPOPJLVMN
QSPWPOPXLRPXMTJMLNPOPPPSPXPOP
JLYPRLTPVLUPVLWPVLXPVLVPSLJLUQP
PJQLQSPXPNQPPRLTPVL*/main(){int K/*
PUOUPWOV*/,L/*WPVLXPVLKPUOVPWOSLU*/,M
/*PPPPVPOQMQRPR*/=0;FILE/*TPSLUMWQT*/ *
J/*MPRPKPLQ*/; J= fopen(__FILE__
/*T*/,"r");for (;( L/*KPUOWOWMUQ
LLOLMPULWLWL WLW LWLWLWLWLWLW
LWLWLULVOXP LLV LLLOLMPULOL
MMNP*/=getc (J) )>= 0;L/*
OLWLRMMQUL VOX PLLVLLLMQO
PMPYPXPNP MQL LVLLLWPSP
XPOQNQOPMQ LLV LTj*/>='J'
&&L/*LRPYP OQL QMQLLVLLL
OLMQVOXPL LVL LLVOe*/<=
'J'+15&&( (M= !M/*MMMQMV
OJMMMMMU OOL NPU MPMOM
UMRNOLMQV OJM MMMMRMLLW
QUMTJSPX PNQ JLLPUOWO
WMUQJMVL JMV L*/)?K/*
MQMV*/=L: putchar (K/*deMN
MaVbcLKM KMV Le*/-'J'
/*MWQUMTJ WPK PSPXPR*/
|(L/*PQV LMPSLSPXPNQ*/- 'J'<<4))
));exit( 0);}/*LPQUMMPR PKPLQJLT
LTLJLMPU MTJUQMPRPKPLQ JLNPUONM
JMWOVLTL OPVLPPWM
PMUMTJNQ SPWPOPYO
NQJLQPUM TJPNSNVN
ONJLTLRP VLTLSPUM
TJQQRPSP VPOPJLRL
WLWLPPJLP LPLJLKLJQ
SPJQOPRL NPSLJLPL
PLJLKLPPY PLQUPRLSL
SLUMTJRPW MPPNPYPJQ
OPXPRLPMW LPPVMVMKM
VLLLKPLLSL UMSPWMPPNP
YPJQOPXPR LRLPMWLPP
VMVMKMSLUL KMVLLLLQLL
SLUMTJPPYP LQRLUMUMSL
UQSPPPRLPPS LUQPPQPOPNQ
MQRLNPVLNMJM VLSPSLUMNPUO
MQNQLQVPOPXPR LNPSLWLKMWOWM
QLVOJMQLUMTJSP PPRLTLNPWMWMQL
JMQLULPPSLUQMQJQLQSPXPNQPPRLTLMPVLLLOLM
QVOXPLLVLNPULKMSLUMYPRLMQNQNPYPOQNQVL
PMVLPMWLPPVLNPULKMVLJMSLWQTJSPPPRLT
LNPXMQLJMQLULPPSLYPRLRPVLOMVLNP
VLJMVLJMSLWQOPVPMQOPUQNQSPWPO
PRLPLQPSLUMOPWMKPMQMPNQSP
WPOPRLVPYPMPKPVPNQSPW
POPRLPLQPSLSLUM
TJPPYPLQRLPQWMKMUMPQVMPMUMPQULULSLYPRLRPVLPQKLWMKMPLPLPQKLWMPMWLKMVLPQ
ULQLJMQLVLKPNQYPSPRLOPULLPUOPQWOSLVLPQSLMQVPOPOPJQRLKMSLUMWQWQWQTJTJ*/