Merge pull request #283 from xexyl/1986-wall

Fix 1986/wall to no longer need -traditional-cpp
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-04-04 13:41:01 -07:00
commit a45bca8fa5
6 files changed
+123 -38

No files matched your search

+1
View File
@@ -1 +1,2 @@
wall
wall.alt
+2 -8
View File
@@ -114,13 +114,8 @@ OBJ= ${PROG}.o
DATA=
TARGET= ${PROG}
#
ALT_OBJ=
ALT_TARGET=
# FORCE use of -traditional-cpp
#
CFLAGS+= -traditional-cpp
ALT_OBJ= ${PROG}.alt.o
ALT_TARGET= ${PROG}.alt
#################
# build the entry
@@ -134,7 +129,6 @@ all: data ${TARGET}
supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
@echo "NOTE: This entry requires a compiler that supports -traditional-cpp"
${CC} ${CFLAGS} $< -o $@ ${LIBS}
# alternative executable
+27 -7
View File
@@ -8,17 +8,37 @@ US of A
## To build:
make all
```sh
make all
```
We used a patch provided by [Yusuke Endoh](/winners.html#Yusuke_Endoh) to make
this work with gcc. Thank you Yusuke!
this work with gcc (in particular the patch uses `strdup()` on two strings).
Thank you Yusuke! [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed
this so that it does not require `-traditional-cpp`. This took a fair bit of
tinkering as this entry *is* strange. Thank you Cody for your assistance!
NOTE: On modern systems this entry requires the option `-traditional-cpp` which
clang does not support. Please be advised that gcc under macOS is actually
clang so this will not compile with the default gcc under macOS. As this entry
stood in modern systems it did not work even when compiled.
## To use:
```sh
./wall
```
### Alternative code:
If you have an old compiler or a compiler that supports `-traditional-cpp` you
might enjoy looking at the original source (after patch by Yusuke applied) in
[wall.alt.c](wall.alt.c). To build:
```sh
# if you have an old enough compiler:
make alt
# or with gcc:
make CFLAGS+="-traditional-cpp" alt
```
Use `./wall.alt` as you would `./wall`.
## Judges' comments:
+78
View File
@@ -0,0 +1,78 @@
#define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/
#define C char*
#define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n"
#define main(o,oo)oo(o){
#define _ ;case
C
#define c_(cc)c cc=
#define C_(sand)_O(sand)witch
o=keyboard;
#define __ ;break;
C
ccc(
cc)
C
cc;
{ cc=strdup(cc);
C
cccc=
cc;int
#ifndef lint
#define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs"
#endif
c;
main(;c_(=(*cc);*cc++)c,for);
#define _O(s)s
main(0xb+(c>>5),C_(s))
_'\v'
:__ _'\f':
main(c,C_(s));
_c(8098)_c(6055)_c(14779)_c(10682)
#define O_(O)_O(O)stem(ccc(
_c(15276)_c(11196)_c(15150)
#define _C ;return
_c(11070)_c(15663)_c(11583)
}
__
default
:c_(+)o[c&__LINE__-007];
main(c_(-)'-'-1,C_(s))_
0214
:_
0216
:c_(+)025 _
0207
:c_(-)4 _
0233
:c_(+)' '-1;
}}c_(&)'z'+5;
}_C cccc;
}main(,cc)
C
#define O write(1,
c=strdup("O");
O_(sy) keyboard));
main(;;,for);
read(0,
c,1);*
c_(&)'~'+1
;O ccc(
c),
'\0');
main(*c,
C_(s));_
4
:O_(sy)";kkt -oa, dijszdijs QQ"))_C
_
13
:O o+' ',
3
)
#undef main
__ _ 127:O"\b \b",3)__
default
:O
c,1)
__}}}main(){
cc();
}
+14 -14
View File
@@ -23,10 +23,10 @@ cc;int
c;
main(;c_(=(*cc);*cc++)c,for);
#define _O(s)s
main(0xb+(c>>5),C_(s))
switch(0xb+(c>>5)){
_'\v'
:__ _'\f':
main(c,C_(s));
switch(c){;
_c(8098)_c(6055)_c(14779)_c(10682)
#define O_(O)_O(O)stem(ccc(
_c(15276)_c(11196)_c(15150)
@@ -35,34 +35,34 @@ _c(11070)_c(15663)_c(11583)
}
__
default
:c_(+)o[c&__LINE__-007];
main(c_(-)'-'-1,C_(s))_
:c +=o[c&__LINE__-007];
switch(c -='-'-1){;case
0214
:_
0216
:c_(+)025 _
:c+=025 _
0207
:c_(-)4 _
:c-=4 _
0233
:c_(+)' '-1;
}}c_(&)'z'+5;
}_C cccc;
}main(,cc)
:c+=' '-1;
}}c&='z'+5;
}return cccc;
}void main(,cc)
C
#define O write(1,
c=strdup("O");
O_(sy) keyboard));
system(ccc( keyboard));
main(;;,for);
read(0,
c,1);*
c_(&)'~'+1
c &= '~'+1
;O ccc(
c),
'\0');
main(*c,
C_(s));_
switch);_
4
:O_(sy)";kkt -oa, dijszdijs QQ"))_C
:system(ccc(";kkt -oa, dijszdijs QQ"));return
_
13
:O o+' ',
+1 -9
View File
@@ -322,15 +322,7 @@ holloway.c:34:1: warning: control reaches end of non-void function [-Wreturn-typ
```
## [1986/wall/wall.c](1986/wall/wall.c) ([README.md](1986/wall/README.md))
## STATUS: Requires a compiler supporting `-traditional-cpp` - alternate code requested
This entry needs a compiler that support `-traditional-cpp`. `gcc`
supports this but `clang` does not. Please be advised that `gcc` under macOS is
actually gcc if it looks like it's gcc (two different binaries).
or any others.
# 1987