diff --git a/1993/schnitzi/README.md b/1993/schnitzi/README.md index f7b36587c..7aea47ebe 100644 --- a/1993/schnitzi/README.md +++ b/1993/schnitzi/README.md @@ -5,6 +5,18 @@ make all ``` +### Bugs and (Mis)features: + +The current status of this entry is: + +``` +STATUS: INABIAF - please **DO NOT** fix +``` + +For more detailed information see [1993 schnitzi in bugs.md](/bugs.md#1993-schnitzi). + + + ## To use: ```sh @@ -16,14 +28,7 @@ where `file` is a file containing some text. -This entry will segfault if the file cannot be opened. This is not a bug. - -This is supposed to happen. As is written in the -[The Jargon File](http://catb.org/jargon/html/F/feature.html): - -``` -That's not a bug, that's a feature. -``` +Certain input will cause the program to fail as described in the bugs.md file. ### Try: @@ -33,13 +38,15 @@ That's not a bug, that's a feature. # ask some questions suggested by the author, noted below ``` -We also suggest you ask the program: +We also suggest you ask the program the following questions: ```sh Who is Mark Schnitzus? + +Who was Jack the Ripper ? ``` -Notice how it still manages to answer the question despite there being an +Notice how it still manages to answer the first question despite there being an intentional spelling error there. Try feeding the program source to the program and ask both: @@ -49,6 +56,9 @@ What is cat ? What is cat? ``` +What happens if you ask it other questions with and without a space before the +`?`? + ## Judges' remarks: @@ -64,16 +74,14 @@ The author suggests the following questions when using - What language is it written in? - Has the Loch Ness monster really been captured? - Who was Hitler? -- Were the NASA moon landings faked? +- Were the NASA Moon landings faked? - Is it true that Elvis is alive? - Do colorless green ideas sleep furiously? -We suggest you try using the body (minus the header and signature line)\ +We suggest you try using the body (minus the header and signature line) of a Usenet article. You might want to try something from alt.flame. :-) -NOTE: If you have a ' in the question this entry might fail. - -NOTE: The author may also be contacted at: marks@aldrin.ksc.nasa.gov. +NOTE: If you have certain `'` in the question this entry might fail. ## Author's remarks: @@ -84,27 +92,28 @@ text file. I thought this might be a complicated task, and I was right -- it took me over 800 bytes. Of course, it doesn't always work, but that's AI for you. -This program accepts the name of a text file as the first -parameter. For example, to run it on the supplied data file called -'info' you would type `./schnitzi info`. It echoes the file, then -gives you a prompt where you may type in questions about that text. -The more words you use which are actually present in the text file, -the better results you get. You'll need to hit `ctrl-c` to break out -of the program. Just hitting `return` at the prompt will reprint the -paragraph. +This program accepts the name of a text file as the first parameter. For +example, to run it on the supplied data file called 'schnitzi.info' you would +type `./schnitzi schnitzi.info`. It echoes the file, then gives you a prompt +where you may type in questions about that text. The more words you use which +are actually present in the text file, the better results you get. You'll need +to hit `ctrl-c` to break out of the program. Just hitting `return` at the +prompt will reprint the paragraph. If you're curious as to how it works, I guess you could feed in the source as the input file and ask "How does this work?" at the prompt, but I'm not guaranteeing any results... + ### Compilation notes -- The use of 'strcasecmp' may be non-standard. 'strcmp' can be substituted for +- The use of `strcasecmp(3)` may be non-standard. `strcmp(3)` can be substituted for it, with a slight performance penalty. - This program depends on the first command-line parameter, typically called -argv[0], to hold the name of the executable. It is my understanding that this -property of argv[0] is not guaranteed on some systems. +`argv[0]`, to hold the name of the executable. It is my understanding that this +property of `argv[0]` is not guaranteed on some systems. + ### Obfuscation @@ -113,7 +122,7 @@ property of argv[0] is not guaranteed on some systems. - The layout, variable names, and expression format have been chosen in such a way as to cause visual confusion. -- It uses uses external `system()` calls to echo the text file and break up the +- It uses uses external `system(3)` calls to echo the text file and break up the question into individual words with a recursive call. - It uses a clever hack to simulate artificial intelligence. diff --git a/bugs.md b/bugs.md index de3d2b22c..c32f4b983 100644 --- a/bugs.md +++ b/bugs.md @@ -1011,6 +1011,62 @@ cannot be fixed for modern systems as the bug is long gone. An alternate version, however, does exist. See the README.md file for details. +### STATUS: INABIAF - please **DO NOT** fix +### Source code: [1993/schnitzi/schnitzi.c](1993/schnitzi/schnitzi.c) +### Information: [1993/schnitzi/README.md](1993/schnitzi/README.md) + +If the file cannot be opened it will very likely segfault. This should not be +fixed except for an exercise to yourself, should you wish to try. + +This program uses `system(3)` so if you provide invalid characters in the +question you might cause an error. For instance don't do this: + +```sh +$ ./schnitzi schnitzi.info +This program answers questions about paragraphs +of text posed to it in English. It is written +in C. Mark Schnitzius is the author of this +program. + +The Loch Ness monster has been captured. Elvis +is alive. Hostler was a woman. The NASA moon +landings were clearly faked. + + +? What is foo'? +``` + +because doing so will result in something like: + +``` +sh: -c: line 0: unexpected EOF while looking for matching `'' +sh: -c: line 1: syntax error: unexpected end of file +``` + +with the program terminating. Other characters will also cause this problem. + +Of course if you do something like: + +``` +What is 'foo'? +``` + +it will work fine. + + +### STATUS: INABIAF - please **DO NOT** fix +### Source code: [1993/vanb/vanb.c](1993/vanb/vanb.c) +### Information: [1993/vanb/README.md](1993/vanb/README.md) + +No spaces are allowed in the expression. + +The program does no error checking so erroneous expressions will produce +spurious results. + +The unary `-` is an operator so decimal `-46` should be entered as `-d46` and +not `d-46`. + + # 1994