Merge pull request #129 from xexyl/1993-vanb

Fix 1993/vanb for clang
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-03-23 17:23:53 -07:00
commit 9a388bcf6f
3 files changed
+18 -10

No files matched your search

+1 -2
View File
@@ -93,7 +93,7 @@ ARCH=
# Defines that are needed to compile
#
#CDEFINE=
CDEFINE= -DO5=main
CDEFINE=
# Include files that are needed to compile
#
@@ -182,7 +182,6 @@ all: data ${TARGET}
supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
@echo "NOTE: This entry might not compile when using modern compilers."
${CC} ${CFLAGS} $< -o $@ ${LIBS}
# alternative executable
+14 -7
View File
@@ -10,21 +10,28 @@
make all
NOTE: we could not compile this entry under modern macOS but it will work
fine under linux. It likely fails to compile under macOS because its gcc is
actually just clang which is more strict about the type of the third
argument of main(). If you have gcc under macOS it might work just as well.
We did not test other systems.
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to work with
clang. The problem was that the third arg to main() was not a `char **`. Instead
`O5()` (which was `main()`) is now its own function which main() calls with the
right parameters. Thank you Cody for your assistance!
### To run
## To run:
./vanb 'exp'
where:
'exp' an octal expression
## Judges' comments
## Try:
./vanb 1+1
./vanb 4+4
## Judges' comments:
The octal expression may contain:
+3 -1
View File
@@ -1,5 +1,6 @@
#include <stdio.h>
O5(O2,O7,O3)char**O7;{return!(O2+=~01+01)?00:!(O2-=02>01)?printf("\045\157\012"
int O3;
int O5(O2, O7, O3)char **O7;{return!(O2+=~01+01)?00:!(O2-=02>01)?printf("\045\157\012"
,O5(012,O7+01,00)):!(O2-=02>>01)?(**O7<=067&&**O7>057?O5(03,O7,*(*O7)++-060+010
*O3):O3 ):!(O2 -=-O3- ~O3)? (072>**
O7&&060 <=**O7 ?O5(04 ,O7,012 *O3-060
@@ -25,3 +26,4 @@ O5(O2,O7,O3)char**O7;{return!(O2+=~01+01)?00:!(O2-=02>01)?printf("\045\157\012"
,O7,O5(06,O7, 00)):!( O2+=-02/ 02)?(!(*
*O7-053)?O5(011,O7,O3+(++*O7,O5(010,O7,00))):!(055^**O7)?O5(011,O7,O3-(03+*(*O7
)++,O5(0010,O7,00))):O3):!(O2-=0563&0215)?O5(011,O7,O5(010,O7,00)):(++*O7,O3);}
main(O2,O7)char**O7;{return O5(O2,O7,O3);}