Fix 1988/phillipps for modern systems

The type of the second and third arg of main() were not char ** which
caused clang to have a fit. In gcc this is not a problem but it printed
gibberish nonetheless.

Changing the type of the second and third arg to compile with clang and
it printed the same (or similar?) gibberish as it did with gcc.

Adding a new function (pain() as it's annoying that clang requires
second, third and fourth args to main() to be 'char **'s even though in
this case it didn't work anyway) and calling it from main with the
appropriate args fixes the problem.
This commit is contained in:
Cody Boone Ferguson committed 2023-03-27 07:26:25 -07:00
1 parent dc0ca04feb
commit ee249da4ea
2 files changed
+28 -14

No files matched your search

+8 -1
View File
@@ -13,7 +13,14 @@
make all
NOTE: this program will likely segfault under macOS.
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for modern
systems. It did not compile with clang because it requires the second and third
args to main() to be `char **` but even before that with gcc it printed random
characters. After fixing it for clang by changing main() to call the new
function pain() (chosen because it's a paint that clang requires these args to
be `char **` :-) ) with the correct args it now works. Thank you Cody for your
assistance!
## Judges' comments
+20 -13
View File
@@ -1,50 +1,57 @@
main(int t,char **_,char **a)
pain(t,_,a )
char
*
a;
{
return!
0<t?
t<3?
main(-79,-13,a+
main(-87,1-(int)_,
main(-86, 0, a+1 )
pain(-79,-13,a+
pain(-87,1-_,
pain(-86, 0, a+1 )
+a)):
1,
t<_?
main( t+1, _, a )
pain( t+1, _, a )
:3,
main ( -94, -27+t, a )
pain ( -94, -27+t, a )
&&t == 2 ?_
<13 ?
main ( 2, _+1, "%s %d %d\n" )
pain ( 2, _+1, "%s %d %d\n" )
:9:16:
t<0?
t<-72?
main( _, t,
pain( _, t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:
t<-50?
_==*a ?
putchar(31[a]):
main(-65,_,a+1)
pain(-65,_,a+1)
:
main((*a == '/') + t, _, a + 1 )
pain((*a == '/') + t, _, a + 1 )
:
0<t?
main ( 2, 2 , "%s")
pain ( 2, 2 , "%s")
:*a=='/'||
main(0,
pain(0,
main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
pain(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
,a+1);}
main(int t,char **_,char **a)
{
pain(t,(int)_,(char *)a);
}