diff --git a/1984/mullender/README.md b/1984/mullender/README.md index 20c33f1dd..a9238ff1d 100644 --- a/1984/mullender/README.md +++ b/1984/mullender/README.md @@ -12,7 +12,10 @@ Robbert van Renesse ./mullender -NOTE: This entry is likely to fail and/or dump core on modern computers. +> NOTE: If your machine is not a Vax-11 or pdp-11, this program will +> not execute correctly. In later years, machine dependent +> code was discouraged. + ## Judges' comments: @@ -25,10 +28,6 @@ be non machine specific. This program was selected for the 1987 t-shirt collection. -> NOTE: If your machine is not a Vax-11 or pdp-11, this program will -> not execute correctly. In later years, machine dependent -> code was discouraged. - The C startup routine (via crt0.o) transfers control to a location named main. In this case, main just happens to be in the data area. The array of shorts, which has been further obfuscated by use of diff --git a/1996/westley/README.md b/1996/westley/README.md index a7762ebd5..3c14411c6 100644 --- a/1996/westley/README.md +++ b/1996/westley/README.md @@ -17,69 +17,69 @@ ## Judges' comments - Also try: +Also try: sh ./clock2 - And for a good time, try: +And for a good time, try: sh ./clock3 - Time and time again, Brian Westley seems to come up with a winner! - We are amazed at how much is being done with only one relatively - short line. We think you will as well if you take the time to - understand it. +Time and time again, Brian Westley seems to come up with a winner! +We are amazed at how much is being done with only one relatively +short line. We think you will as well if you take the time to +understand it. ## Author's comments - This 1-line program allows various analog ASCII clocks - to print out the time; the ASCII clock is built from - the command line arguments, so many different types of - clocks can be generated. Three different scripts are - supplied to print out a grandfather clock, a mantle - clock that runs backwards, and a linear-style clock. - (they are clock1, clock2, and clock3) +This 1-line program allows various analog ASCII clocks +to print out the time; the ASCII clock is built from +the command line arguments, so many different types of +clocks can be generated. Three different scripts are +supplied to print out a grandfather clock, a mantle +clock that runs backwards, and a linear-style clock. +(they are `clock1`, `clock2`, and `clock3`) - The program makes the following (possibly non-portable) assumptions: +The program makes the following (possibly non-portable) assumptions: - 1) Command line strings can be written to +1. Command line strings can be written to - 2) argv[0] can be written to as if it were a long * +2. `argv[0]` can be written to as if it were a `long *` - 3) The first three elements of the struct * returned by - localtime() are seconds, minutes, hours, and all are ints +3. The first three elements of the struct * returned by localtime() are seconds, +minutes, hours, and all are ints - 4) My sample scripts assume ASCII, though this is not - inherent in the code, just my sample scripts +4. My sample scripts assume ASCII, though this is not inherent in the code, just +my sample scripts - These assumptions are pretty reasonable. 2) can be eliminated - by makes the code larger. +These assumptions are pretty reasonable. 2) can be eliminated +by makes the code larger. - The code is simple; the arguments passed are: +The code is simple; the arguments passed are: prog minute_map hour_map hand_symbol clock_image - The program merely takes the minute (0-59) and the hour (0-23) - values, looks up the offsets in minute_map and hour_map - and writes the hand_symbol for each into the clock_image - string. This string is then printed. +The program merely takes the minute (0-59) and the hour (0-23) +values, looks up the offsets in `minute_map` and `hour_map` +and writes the `hand_symbol` for each into the `clock_image` +string. This string is then printed. - The for() loop starts by calling time() with argv[0], so - the time value (a long) is written into the program name. - The for() control value is argc, which starts at 5, but - the /=2 statement is executed before the test, so the for() - loop is executed twice, with h=2, then h=1 (for hour & minute). +The for() loop starts by calling time() with argv[0], so +the time value (a long) is written into the program name. +The for() control value is argc, which starts at 5, but +the /=2 statement is executed before the test, so the for() +loop is executed twice, with h=2, then h=1 (for hour & minute). - The statement of the for() loop takes the hour or minute - field of the struct returned by localtime() by casting it - to an int* and dereferencing element [h]. It is slightly - smaller to use the trick h[(int*)localtime(*m)] instead of - ((int*)localtime(*m))[h]. +The statement of the for() loop takes the hour or minute +field of the struct returned by localtime() by casting it +to an int* and dereferencing element [h]. It is slightly +smaller to use the trick `h[(int*)localtime(*m)]` instead of +`((int*)localtime(*m))[h]`. - This value is in turn indexed into the hour_map or minute_map - parameter to determine where the 'hand' symbol should be - written into the clock_image. +This value is in turn indexed into the `hour_map` or `minute_map` +parameter to determine where the 'hand' symbol should be +written into the `clock_image`. - Note that the hands move in a quantum fashion; 3:59 looks - deceptively like 2:59, since the hour hand will be at the 3 - position. It won't move until both hands click over at 4:00. +Note that the hands move in a quantum fashion; 3:59 looks +deceptively like 2:59, since the hour hand will be at the 3 +position. It won't move until both hands click over at 4:00. diff --git a/bugs.md b/bugs.md index dc0632712..9733c5a47 100644 --- a/bugs.md +++ b/bugs.md @@ -87,6 +87,18 @@ but are noteworthy nonetheless. This entry is likely to fail and/or dump core on any computer other than a Vax-11 or pdp-11. In 1984 machine dependent code was allowed. +### [1986/august](1986/august/august.c) ([README.md](1986/august/README.md)) + +This entry is known to segfault after printing its output. It was documented by +the judges and needn't be fixed. + +### [1996/westley](1996/westley/westley.c) ([README.md](1996/westley/README.md)) + +This entry will possibly segfault even when showing the proper output in the +`clock1`, `clock2` and `clock3` scripts. Though this doesn't need to be fixed as +long as it works right it wouldn't hurt to fix it either. + + ### [2019/endoh](2019/endoh/prog.c) ([README.md](2019/endoh/README.md)) As a backtrace quine this entry is SUPPOSED to segfault so this should not be