Fixes in presentation of 1988/isaak

The uuencoded file isaak.encode was removed. Instead the output was put
in isaak.output.txt. This has the same manifest priority as the encoded
file. This file is strictly for historical remarks in the index.html
file and not needed beyond that. Perhaps it should be in the secondary
file list but that can be decided later.

The file isaak.alt.c is now compilable. It is the isaak.orig.c that is
not. The difference is with an old enough compiler/system it might be
that the alt version will work. In modern systems the isaak.c will work.

Manifest updated for the file changes.

Thanks file updated with this and possibly other earlier changes in
1988. 1988 is not done yet but as these problems were found working on
it I felt like I should commit them now too.
This commit is contained in:
Cody Boone Ferguson committed 2024-05-06 07:54:12 -07:00
1 parent 6d06c678ab
commit aa0468d03b
14 files changed
+134 -150

No files matched your search

+5 -5
View File
@@ -42,12 +42,12 @@
"entry_text" : "original source"
},
{
"file_path" : "isaak.encode",
"file_path" : "isaak.output.txt",
"inventory_order" : 180,
"OK_to_edit" : true,
"display_as" : "xxencode",
"display_via_github" : true,
"entry_text" : "uuencoded sample output"
"OK_to_edit" : false,
"display_as" : "text",
"display_via_github" : false,
"entry_text" : "program output"
},
{
"file_path" : "1988_isaak.tar.bz2",
+20 -17
View File
@@ -18,8 +18,9 @@ code](#alternate-code) below.
## Alternate code:
The original version of this code is in [isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c).
The original entry starts with the line:
The original version of this code is in
[isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c), with a minor fix so that it
will compile. The original entry starts with the line:
``` <!---c-->
main(){};
@@ -29,10 +30,11 @@ This works on some systems. Why? Note that `#include <stdio.h>` is given on
the last line. Why is this needed? Note the unusual calls to `sprintf(3)`.
This version also relied on being able to define `#define` to something else and
using that macro for `#define`.
using that macro for `#define`. This was fixed, however, so that you can at
least compile it in modern systems.
This version will not likely work on modern systems if you can even get it to
compile.
This version will not likely work on modern systems even though you should be
able to compile it.
### Alternate build:
@@ -41,6 +43,9 @@ compile.
make alt
```
### Alternate use:
Use `isaak.alt` as you would `isaak` above.
@@ -49,11 +54,13 @@ Use `isaak.alt` as you would `isaak` above.
The program relies heavily on ASCII. Don't even think of running it on
an EBCDIC machine.
### Historical notes about the original entry:
NOTE: If you named the file anything other than [isaak.c](%%REPO_URL%%/1988/isaak/isaak.c), you had to
change the `#include` on line 6. This limitation has been fixed by using the
`__FILE__` macro.
### Historical notes about the original entry
NOTE: If you named the file anything other than `isaak.c`, you had to
change the `#include` on line 6. This limitation has been fixed in
[isaak.c](%%REPO_URL%%/1988/isaak/isaak.c) and
[isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c) by using the `__FILE__` macro.
NOTE: The use of null comments to separate macros to construct different tokens
from a single macro (e.g., `"O/**/O"` creates either `++` or `--` by defining
@@ -62,15 +69,11 @@ from a single macro (e.g., `"O/**/O"` creates either `++` or `--` by defining
NOTE: Most System V machines were not be able to execute this program correctly
due to the fact that BSD style systems have an `sprintf(3)` that returns a `char
*`. Due to the above problems, we placed the output of this program in the
file: isaak.encode. To read this file do.
file [isaak.output.txt](isaak.output.txt).
``` <!---sh-->
uudecode < isaak.encode
cat isaak.output
```
Since this was fixed, this file is not strictly necessary. See the
[isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c) for the original source.
Since this was fixed, this file is not strictly necessary, but we keep it for
historical purposes (decoded as it used to be uuencoded). See the
[isaak.orig.c](%%REPO_URL%%/1988/isaak/isaak.orig.c) for the original source.
FYI: We are likely to be more strict about portability in the future.
+18 -15
View File
@@ -403,35 +403,38 @@ code</a> below.</p>
<h2 id="to-use">To use:</h2>
<pre><code> ./isaak</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>The original version of this code is in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a>.
The original entry starts with the line:</p>
<p>The original version of this code is in
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a>, with a minor fix so that it
will compile. The original entry starts with the line:</p>
<pre><code> main(){};</code></pre>
<p>This works on some systems. Why? Note that <code>#include &lt;stdio.h&gt;</code> is given on
the last line. Why is this needed? Note the unusual calls to <code>sprintf(3)</code>.</p>
<p>This version also relied on being able to define <code>#define</code> to something else and
using that macro for <code>#define</code>.</p>
<p>This version will not likely work on modern systems if you can even get it to
compile.</p>
using that macro for <code>#define</code>. This was fixed, however, so that you can at
least compile it in modern systems.</p>
<p>This version will not likely work on modern systems even though you should be
able to compile it.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>isaak.alt</code> as you would <code>isaak</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The program relies heavily on ASCII. Don’t even think of running it on
an EBCDIC machine.</p>
<h3 id="historical-notes-about-the-original-entry">Historical notes about the original entry:</h3>
<p>NOTE: If you named the file anything other than <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a>, you had to
change the <code>#include</code> on line 6. This limitation has been fixed by using the
<code>__FILE__</code> macro.</p>
<h3 id="historical-notes-about-the-original-entry">Historical notes about the original entry</h3>
<p>NOTE: If you named the file anything other than <code>isaak.c</code>, you had to
change the <code>#include</code> on line 6. This limitation has been fixed in
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a> and
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> by using the <code>__FILE__</code> macro.</p>
<p>NOTE: The use of null comments to separate macros to construct different tokens
from a single macro (e.g., <code>"O/**/O"</code> creates either <code>++</code> or <code>--</code> by defining
<code>O</code> to be <code>+</code> or <code>-</code>) may cause some strict ANSI C preprocessors to object.</p>
<p>NOTE: Most System V machines were not be able to execute this program correctly
due to the fact that BSD style systems have an <code>sprintf(3)</code> that returns a <code>char *</code>. Due to the above problems, we placed the output of this program in the
file: isaak.encode. To read this file do.</p>
<pre><code> uudecode &lt; isaak.encode
cat isaak.output</code></pre>
<p>Since this was fixed, this file is not strictly necessary. See the
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> for the original source.</p>
file <a href="isaak.output.txt">isaak.output.txt</a>.</p>
<p>Since this was fixed, this file is not strictly necessary, but we keep it for
historical purposes (decoded as it used to be uuencoded). See the
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.orig.c">isaak.orig.c</a> for the original source.</p>
<p>FYI: We are likely to be more strict about portability in the future.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p>
@@ -464,7 +467,7 @@ file: isaak.encode. To read this file do.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> - alternate code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.orig.c">isaak.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.encode">isaak.encode</a> - uuencoded sample output</li>
<li><a href="isaak.output.txt">isaak.output.txt</a> - program output</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
+19 -18
View File
@@ -1,10 +1,9 @@
main(){}
#define P define
#P U ifdef
#P main Si
#U y
main(){};
#define U
#define main Si
#if U defined(y)
#undef y
#include "isaak.c"
#include __FILE__
Pb
#else
char*K="4499999;8 9+jW*':'TZhD m:*h.4-j'9(z7Q>r*:G#FS]mATIdMZY^HaKFZZ\
@@ -12,23 +11,25 @@ JyJw:X49@eJj1,Z'\\c^jGU@IXTF@9P2i:gAZx0pD*W3\\<ZZs1:.~Z8U:P<\\:ZOI0GBPZ7",*H
,S[5202],*B="oA9BA6iN`]`Ph>5F4::M6A69@6I{g[Za__]NPV``aV\177E4C5CG;4C<BEJG;\
?LGlSZ[Y_!oYi@uXPzLFyPOYP][]`RTaQo86564CAHCG4ES",*F,N;int Bk,V;Y
#endif
#P C K/16-2
(){char*H;F O= -263;for(H="$+---+|||";*++H;)*(F O=(*H+5&129)+1)= *H;F
#P W sprintf(
O= -132;}I/**/r(){if((N= *I O/**/O%(21 O -5)+81 O 16)==107)N+=
#define C K/16-2
#define Pa(x,y) x##y
#define P(x,y) Pa(x,y)
(){char*H;F P(O,=) -263;for(H="$+---+|||";*++H;)*(F P(O,=)(*H+5&129)+1)= *H;F
#define W sprintf(
P(O,=)-132;}P(I,r)(){if((N= *I P(O,O)%(21 O -5)+81 O 16)==107)N+=
#undef I
*K++&15;*F++ =N;return*K;}
#undef O
#P I K
#P O +
#U N
exit(N){F=W H=S,"%5060d")+385;while(Br(),++B,Kr())F+=(N=
#define I K
#define O +
#if U defined(N)
exit(N){W H=S,"%5060d");F=S+385;while(Br(),++B,Kr())F+=(N=
*B++/26-1)?(")21["[N]-46)*N*4-22:-3194;while(*--K!=9){while(!(*++H+5&64));
F=(40-"(\206/"[((H-S)%130+45)/57]<<3)+H;*F++= *H++;*F=
*H==106?32:*H;Y();W W F-131,"%-3d",++Bk)+260,"%3d",V+=
*C?*C:"hijpqv"[*--C]-106);Pb();}for(H=S;*H||(int)_exit(0);H+=130)write(1,1+W
F+3,"%c%-73.73s\n",0,H),74);}
*H==106?32:*H;Y();W F-131,"%-3d",++Bk); W F+129,"%3d",V+=
*C?*C:"hijpqv"[*--C]-106);Pb();}for(H=S;*H||(_exit(0),0);H+=130)write(1,F+4,W
F+3,"%c%-73.73s\n",0,H)-1);}
#endif
#undef U
#P U ifndef
#define U !
#include <stdio.h>
-68
View File
@@ -1,68 +0,0 @@
begin 666 isaak.output
M*RTM+2L@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" K+2TM*PI\,2 @?" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @('PR("!\"GQ(("!\(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?$AE('P*?" @
M,7P@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @("!\(" T? HK+2TM*RTM+2L@(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" K+2TM*RTM+2LM+2TK+2TM
M*RTM+2LM+2TK"GPS("!\-" @?" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @('PU("!\-B @?#<@('PX("!\.2 @?#$P('P*?$QI('Q"
M92!\(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?$(@
M('Q#("!\3B @?$\@('Q&("!\3F4@? I\(" W?" @.7P@(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @("!\(#$Q?" Q,GP@,31\(#$V?" Q
M.7P@,C!\"BLM+2TK+2TM*R @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @("LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L*?#$Q('PQ,B!\
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?#$S('PQ
M-"!\,34@?#$V('PQ-R!\,3@@? I\3F$@?$UG('P@(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("!\06P@?%-I('Q0("!\4R @?$-L('Q!
M<B!\"GP@,C-\(#(T?" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @('P@,C=\(#(X?" S,7P@,S)\(#,U?" T,'P**RTM+2LM+2TK+2TM
M*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*RTM+2LM+2TK+2TM*PI\,3D@?#(P('PR,2!\,C(@?#(S('PR-"!\,C4@
M?#(V('PR-R!\,C@@?#(Y('PS,"!\,S$@?#,R('PS,R!\,S0@?#,U('PS-B!\
M"GQ+("!\0V$@?%-C('Q4:2!\5B @?$-R('Q-;B!\1F4@?$-O('Q.:2!\0W4@
M?%IN('Q'82!\1V4@?$%S('Q392!\0G(@?$MR('P*?" S.7P@-#!\(#0U?" T
M.'P@-3%\(#4R?" U-7P@-39\(#4Y?" U.7P@-C1\(#8U?" W,'P@-S-\(#<U
M?" W.7P@.#!\(#@T? HK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM
M+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK"GPS
M-R!\,S@@?#,Y('PT,"!\-#$@?#0R('PT,R!\-#0@?#0U('PT-B!\-#<@?#0X
M('PT.2!\-3 @?#4Q('PU,B!\-3,@?#4T('P*?%)B('Q3<B!\62 @?%IR('Q.
M8B!\36\@?%1C('Q2=2!\4F@@?%!D('Q!9R!\0V0@?$EN('Q3;B!\4V(@?%1E
M('Q)("!\6&4@? I\(#@U?" X.'P@.#E\(#DQ?" Y,WP@.39\(#DY?#$P,7PQ
M,#-\,3 V?#$P.'PQ,3)\,3$U?#$Q.7PQ,C)\,3(X?#$R-WPQ,S%\"BLM+2TK
M+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM
M+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L*?#4U('PU-B!\-3<@?#<R('PW,R!\
M-S0@?#<U('PW-B!\-S<@?#<X('PW.2!\.# @?#@Q('PX,B!\.#,@?#@T('PX
M-2!\.#8@? I\0W,@?$)A('Q,82!\2&8@?%1A('Q7("!\4F4@?$]S('Q)<B!\
M4'0@?$%U('Q(9R!\5&P@?%!B('Q":2!\4&\@?$%T('Q2;B!\"GPQ,S-\,3,W
M?#$S.7PQ-SA\,3@Q?#$X-'PQ.#9\,3DP?#$Y,GPQ.35\,3DW?#(P,7PR,#1\
M,C W?#(P.7PR,#E\,C$P?#(R,GP**RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM
M*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*PI\.#<@?#@X('PX.2!\,3 T?#$P-7P@(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"GQ&<B!\4F$@?$%C
M('Q29B!\2&$@?" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" *?#(R,WPR,C9\,C(W?#(V,7PR-C!\(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M( HK+2TM*RTM+2LM+2TK+2TM*RTM+2L@(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" *(" @(" @(" K+2TM*RTM+2LM+2TK+2TM*RTM+2LM
M+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L@(" @(" @( H@
M(" @(" @('PU."!\-3D@?#8P('PV,2!\-C(@?#8S('PV-"!\-C4@?#8V('PV
M-R!\-C@@?#8Y('PW,"!\-S$@?" @(" @(" @"B @(" @(" @?$-E('Q0<B!\
M3F0@?%!M('Q3;2!\174@?$=D('Q48B!\1'D@?$AO('Q%<B!\5&T@?%EB('Q,
M=2!\(" @(" @(" *(" @(" @("!\,30P?#$T,7PQ-#1\,30U?#$U,'PQ-3)\
M,34W?#$U.7PQ-C)\,38U?#$V-WPQ-CE\,3<S?#$W-7P@(" @(" @( H@(" @
M(" @("LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*RTM+2LM+2TK+2TM*R @(" @(" @"B @(" @(" @?#DP('PY,2!\.3(@
M?#DS('PY-"!\.34@?#DV('PY-R!\.3@@?#DY('PQ,#!\,3 Q?#$P,GPQ,#-\
M(" @(" @(" *(" @(" @("!\5&@@?%!A('Q5("!\3G @?%!U('Q!;2!\0VT@
M?$)K('Q#9B!\17,@?$9M('Q-9"!\3F\@?$QR('P@(" @(" @( H@(" @(" @
M('PR,S)\,C,Q?#(S.'PR,S=\,C0T?#(T,WPR-#=\,C0W?#(U,7PR-31\,C4W
M?#(U-GPR-31\,C4W?" @(" @(" @"B @(" @(" @*RTM+2LM+2TK+2TM*RTM
M+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK(" @
&(" @(" *
end
+39
View File
@@ -0,0 +1,39 @@
+---+ +---+
|1 | |2 |
|H | |He |
| 1| | 4|
+---+---+ +---+---+---+---+---+---+
|3 |4 | |5 |6 |7 |8 |9 |10 |
|Li |Be | |B |C |N |O |F |Ne |
| 7| 9| | 11| 12| 14| 16| 19| 20|
+---+---+ +---+---+---+---+---+---+
|11 |12 | |13 |14 |15 |16 |17 |18 |
|Na |Mg | |Al |Si |P |S |Cl |Ar |
| 23| 24| | 27| 28| 31| 32| 35| 40|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |
|K |Ca |Sc |Ti |V |Cr |Mn |Fe |Co |Ni |Cu |Zn |Ga |Ge |As |Se |Br |Kr |
| 39| 40| 45| 48| 51| 52| 55| 56| 59| 59| 64| 65| 70| 73| 75| 79| 80| 84|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |
|Rb |Sr |Y |Zr |Nb |Mo |Tc |Ru |Rh |Pd |Ag |Cd |In |Sn |Sb |Te |I |Xe |
| 85| 88| 89| 91| 93| 96| 99|101|103|106|108|112|115|119|122|128|127|131|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|55 |56 |57 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |
|Cs |Ba |La |Hf |Ta |W |Re |Os |Ir |Pt |Au |Hg |Tl |Pb |Bi |Po |At |Rn |
|133|137|139|178|181|184|186|190|192|195|197|201|204|207|209|209|210|222|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|87 |88 |89 |104|105|
|Fr |Ra |Ac |Rf |Ha |
|223|226|227|261|260|
+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |
|Ce |Pr |Nd |Pm |Sm |Eu |Gd |Tb |Dy |Ho |Er |Tm |Yb |Lu |
|140|141|144|145|150|152|157|159|162|165|167|169|173|175|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100|101|102|103|
|Th |Pa |U |Np |Pu |Am |Cm |Bk |Cf |Es |Fm |Md |No |Lr |
|232|231|238|237|244|243|247|247|251|254|257|256|254|257|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+14 -11
View File
@@ -911,8 +911,8 @@ including making it no longer require <code>-traditional-cpp</code>. Fixing
to compare the fix from the original entry. There was another problem to resolve
as well, however.</p>
<p>First of all, as noted above, the entry required <code>-traditional-cpp</code> (which
<del>not all compilers support</del> <code>clang</code> does not support). It needed
that option in modern systems because of two things it did:</p>
<code>clang</code> does not support). It needed that option in modern systems because of
two things it did:</p>
<pre><code> #define a(x)get/***/x/***/id())
/* ... */
@@ -922,10 +922,10 @@ that option in modern systems because of two things it did:</p>
/* ... */
case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,&quot;\n&quot;,c);return(A*getgid());};C++;</code></pre>
<p>This macro, <code>a</code>, formed the functions (the names) <code>getuid()</code> and <code>getgid()</code>, but
<p>This macro, <code>a</code>, formed the function names <code>getuid()</code> and <code>getgid()</code>, but
this no longer works. The code still uses the macro <code>a</code> to form the names but
it’s done differently, using the C token paste operator <code>##</code>. It’s done like
thus:</p>
this:</p>
<pre><code> --- i/1988/dale/dale.c
+++ w/1988/dale/dale.c
@@ -9,18 +9,18 @@
@@ -953,24 +953,27 @@ modern compilers do not allow directives like:</p>
#define O close(
/* ... */</code></pre>
<p>However, to keep the entry as close to as possible in look, Cody kept the <code>_</code>
macro in place it’s just no longer used.</p>
<p>See the index.html file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try <code>-traditional-cpp</code>.</p>
macro in place but it’s no longer used.</p>
<p>Cody also provided the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/dale/try.sh">try.sh</a> script.</p>
<div id="1988_isaak">
<h2 id="isaak"><a href="1988/isaak/index.html">1988/isaak</a></h2>
<h3 id="source-code-isaak.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a></h3>
</div>
<p><a href="#cody">Cody</a> fixed this to work for modern systems. The problem was that the important
function, a redefinition of <code>exit()</code>, was not being called in <code>main()</code>. The
original version is in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">1988/isaak/isaak.alt.c</a>. See the
function, a redefinition of <code>exit(3)</code>, was not being called in <code>main()</code>. Earlier
fixes that let it compile, but not work with modern systems, can be found in
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">1988/isaak/isaak.alt.c</a>. See the
index.html file for more details.</p>
<p>Cody also uudecoded and removed the file <code>isaak.encode</code>, putting the output in
<code>isaak.output.txt</code>. This was done strictly for historical remarks that can be
found in the index.html file.</p>
<div id="1988_litmaath">
<h2 id="litmaath"><a href="1988/litmaath/index.html">1988/litmaath</a></h2>
<h3 id="source-code-litmaath.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/litmaath/litmaath.c">litmaath.c</a></h3>
</div>
<p><a href="#cody">Cody</a> added the alt code which is code that we suggested at the time of
publication, in the remarks, to help understand the entry, and for fun.</p>
<p><a href="#cody">Cody</a> added the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/litmaath/litmaath.alt.c">alt code</a>
which is code that we suggested at the time of publication, in the remarks, to
help understand the entry, and for fun.</p>
<div id="1988_phillipps">
<h2 id="phillipps"><a href="1988/phillipps/index.html">1988/phillipps</a></h2>
<h3 id="source-code-phillipps.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/phillipps/phillipps.c">phillipps.c</a></h3>
+15 -12
View File
@@ -762,8 +762,8 @@ to compare the fix from the original entry. There was another problem to resolve
as well, however.
First of all, as noted above, the entry required `-traditional-cpp` (which
<del>not all compilers support</del> `clang` does not support). It needed
that option in modern systems because of two things it did:
`clang` does not support). It needed that option in modern systems because of
two things it did:
``` <!---c-->
#define a(x)get/***/x/***/id())
@@ -777,10 +777,10 @@ that option in modern systems because of two things it did:
case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,"\n",c);return(A*getgid());};C++;
```
This macro, `a`, formed the functions (the names) `getuid()` and `getgid()`, but
This macro, `a`, formed the function names `getuid()` and `getgid()`, but
this no longer works. The code still uses the macro `a` to form the names but
it's done differently, using the C token paste operator `##`. It's done like
thus:
this:
``` <!---diff-->
--- i/1988/dale/dale.c
@@ -825,10 +825,7 @@ so Cody changed the lines to be in the form of:
```
However, to keep the entry as close to as possible in look, Cody kept the `_`
macro in place it's just no longer used.
See the index.html file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try `-traditional-cpp`.
macro in place but it's no longer used.
Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script.
@@ -839,18 +836,24 @@ Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script.
</div>
[Cody](#cody) fixed this to work for modern systems. The problem was that the important
function, a redefinition of `exit()`, was not being called in `main()`. The
original version is in [1988/isaak/isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c). See the
function, a redefinition of `exit(3)`, was not being called in `main()`. Earlier
fixes that let it compile, but not work with modern systems, can be found in
[1988/isaak/isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c). See the
index.html file for more details.
Cody also uudecoded and removed the file `isaak.encode`, putting the output in
`isaak.output.txt`. This was done strictly for historical remarks that can be
found in the index.html file.
<div id="1988_litmaath">
## [1988/litmaath](1988/litmaath/index.html)
### Source code: [litmaath.c](%%REPO_URL%%/1988/litmaath/litmaath.c)
</div>
[Cody](#cody) added the alt code which is code that we suggested at the time of
publication, in the remarks, to help understand the entry, and for fun.
[Cody](#cody) added the [alt code](%%REPO_URL%%/1988/litmaath/litmaath.alt.c)
which is code that we suggested at the time of publication, in the remarks, to
help understand the entry, and for fun.
<div id="1988_phillipps">
+1 -1
View File
@@ -278,7 +278,7 @@
1988,isaak,Makefile,30,true,makefile,true,entry Makefile
1988,isaak,isaak.alt.c,40,true,c,true,alternate code
1988,isaak,isaak.orig.c,50,false,c,true,original source
1988,isaak,isaak.encode,180,true,xxencode,true,uuencoded sample output
1988,isaak,isaak.output.txt,180,false,text,false,program output
1988,isaak,1988_isaak.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1988,isaak,README.md,4000000000,true,markdown,true,markdown source for this web page
1988,isaak,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
1 # year dir file_path inventory_order OK_to_edit display_as display_via_github entry_text
278 1988 isaak Makefile 30 true makefile true entry Makefile
279 1988 isaak isaak.alt.c 40 true c true alternate code
280 1988 isaak isaak.orig.c 50 false c true original source
281 1988 isaak isaak.encode isaak.output.txt 180 true false xxencode text true false uuencoded sample output program output
282 1988 isaak 1988_isaak.tar.bz2 1415926535 false tbz2 false download entry tarball
283 1988 isaak README.md 4000000000 true markdown true markdown source for this web page
284 1988 isaak .entry.json 4000000000 true json true entry summary and manifest in JSON
Binary file not shown.
+1
View File
@@ -83,6 +83,7 @@
1988/isaak/.path
1988/isaak/1988_isaak.tar.bz2
1988/isaak/index.html
1988/isaak/isaak.output.txt
1988/litmaath/.path
1988/litmaath/1988_litmaath.tar.bz2
1988/litmaath/index.html
+1 -1
View File
@@ -282,8 +282,8 @@
1988/isaak/index.html
1988/isaak/isaak.alt.c
1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c
1988/isaak/isaak.output.txt
1988/litmaath/.entry.json
1988/litmaath/.gitignore
1988/litmaath/.path
+1 -1
View File
@@ -282,8 +282,8 @@
1988/isaak/index.html
1988/isaak/isaak.alt.c
1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c
1988/isaak/isaak.output.txt
1988/litmaath/.entry.json
1988/litmaath/.gitignore
1988/litmaath/.path
-1
View File
@@ -197,7 +197,6 @@
1988/isaak/README.md
1988/isaak/isaak.alt.c
1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c
1988/litmaath/.entry.json
1988/litmaath/.gitignore