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.
61 lines
3.1 KiB
C
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*/
|
|
|