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:
1 parent
dc0ca04feb
commit
ee249da4ea
2 files changed
+28
-14
No files matched your search
@@ -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
@@ -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);
|
||||
}
|
||||
Reference in new issue
Block a user