From 5dad2ca98deadd7c539332fad60b48ae9eb395d8 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 18 Mar 2023 06:29:40 -0700 Subject: [PATCH] Get 1994/ldb to compile This required some -includes at the compiler line as well as use of the comma operator as srand() returns void but it was used in || expression. --- 1994/ldb/Makefile | 8 +++++++- 1994/ldb/README.md | 30 +++++++++++++++++++++++------- 1994/ldb/ldb.c | 2 +- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/1994/ldb/Makefile b/1994/ldb/Makefile index d8b9487a8..023a8eb23 100644 --- a/1994/ldb/Makefile +++ b/1994/ldb/Makefile @@ -97,7 +97,7 @@ CDEFINE= # Include files that are needed to compile # -CINCLUDE= +CINCLUDE= -include stdio.h -include stdlib.h -include time.h #CINCLUDE= -include stdlib.h #CINCLUDE= -include stdio.h #CINCLUDE= -include stdlib.h -include stdio.h @@ -169,6 +169,11 @@ TARGET= ${PROG} ALT_OBJ= ALT_TARGET= +# FORCE use of -trigraphs +# +CFLAGS+= -trigraphs + + ################# # build the entry @@ -182,6 +187,7 @@ all: data ${TARGET} supernova deep_magic magic charon pluto ${PROG}: ${PROG}.c + @echo "NOTE: this entry uses gets() so you might get a warning compiling and/or running this." ${CC} ${CFLAGS} $< -o $@ ${LIBS} # alternative executable diff --git a/1994/ldb/README.md b/1994/ldb/README.md index 5df2ce072..57ebfe3bb 100644 --- a/1994/ldb/README.md +++ b/1994/ldb/README.md @@ -10,24 +10,40 @@ make all -### To run +[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this so it would +compile and work with modern compilers. Thank you Cody for your assistance! + +NOTE: this entry uses `gets()` so you will likely get a warning on compilation +and/or execution of the program. + + +## To run: ./ldb < file - Try: + some_command | ./ldb + +NOTE: input lines must be under 232 characters long. + +## Try: + ./ldb < /etc/passwd + printf "The International Obfuscated C Code Contest\n + Best One-liner\n + by Laurion Burchall" | ./ldb + ## Judges' comments - Tri-graphs are natural obfuscators. Most C-beautifiers become - C-uglifiers because they don't handle them correctly. +Trigraphs are natural obfuscators. Most C-beautifiers become +C-uglifiers because they don't handle them correctly. - Can you figure out how it prints a given random line from stdin? +Can you figure out how it prints a given random line from stdin? ## Author's comments - All input lines must be under 232 characters long. The compiling - platform should be ASCII based. +All input lines must be under 232 characters long. The compiling +platform should be ASCII based. Copyright (c) 1994, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is diff --git a/1994/ldb/ldb.c b/1994/ldb/ldb.c index 835fe610a..9e7c492bf 100644 --- a/1994/ldb/ldb.c +++ b/1994/ldb/ldb.c @@ -1 +1 @@ -int _,O,__??('}'??);main(){while(O?gets((rand()%O++?':':_)+__)||puts(&__??(_??))&_:srand(time((O+++_)))||O);} +int _,O,__??('}'??);main(){while(O?gets((rand()%O++?':':_)+__)||puts(&__??(_??))&_:(srand(time((O+++_))),0)||O);}