When trying to get this entry to work for modern systems I ended up replacing some macros with what they translated to. This meant that it did not look as close to what the original entry looked like. There was another change as well in this commit. The variable that is the file to open was changed to a FILE * instead of an int. Although it did not crash after the change I made when trying to open the file (see below for why this was done) it's not strictly correct either in modern systems (and maybe not in older systems either though it clearly worked). Now as for why the fix to being able to open the file: it's because at the time I was trying to get it to work with modern systems even though the author stated that it was designed for i386 linux. Doing this proved possible with a number of other entries but in order for it to even get to that point this change was necessary. According to Yusuke Endoh, it did work with an emulator so that was not strictly necessary but I did not know this at the time and it seems better that at least it can open the file even if it won't completely work due to the way it is designed. It seems better too as it might help provide a way to get a version for 64-bit systems. The thanks-for-fixes.md and bugs.md files were updated on account of these changes. The bugs.md file also includes why it was changed when the entry is designed for i386 linux: besides the fact that I fixed the supplementary program that did not work at all. It seems that, according to Yusuke, that both works in an emulator but this way at least one can enjoy the supplementary program in modern systems too and the entry itself is a bit more correct. The bug status of this entry changed as well. It now has both INABIAF but also asking for alternate code. Why this is is explained in the file: it does indeed seem to not make sense but the rationale is explained there.
452 lines
3.4 KiB
C
452 lines
3.4 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <ctype.h>
|
|
#include <sys/mman.h>
|
|
#define k *(int*)
|
|
#define a if(
|
|
#define c ad()
|
|
#define i else
|
|
#define p while(
|
|
#define x *(char*)
|
|
#define b ==
|
|
#define V =mmap(NULL, 99999, PROT_EXEC | PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)
|
|
#define f ()
|
|
#define J return
|
|
#define l ae(
|
|
#define n e)
|
|
#define u d!=
|
|
#define F int
|
|
#define y (j)
|
|
#define r m=
|
|
#define t +4
|
|
F d,z,C,h,P,K,ac,q,G,v,R,D,L,W,M;
|
|
FILE *Q;
|
|
E(n{
|
|
x D++=e;
|
|
}
|
|
o f{
|
|
a L){
|
|
h=x L++;
|
|
a h b 2){
|
|
L=0;
|
|
h=W;
|
|
}
|
|
}
|
|
i h=fgetc(Q);
|
|
}
|
|
X f{
|
|
J isalnum(h)|h b 95;
|
|
}
|
|
Y f{
|
|
a h b 92){
|
|
o f;
|
|
a h b 110)h=10;
|
|
}
|
|
}
|
|
c{
|
|
F e,j,m;
|
|
p isspace(h)|h b 35){
|
|
a h b 35){
|
|
o f;
|
|
c;
|
|
a d b 536){
|
|
c;
|
|
E(32);
|
|
k d=1;
|
|
k(d t)=D;
|
|
}
|
|
p h!=10){
|
|
E(h);
|
|
o f;
|
|
}
|
|
E(h);
|
|
E(2);
|
|
}
|
|
o f;
|
|
}
|
|
C=0;
|
|
d=h;
|
|
a X f){
|
|
E(32);
|
|
M=D;
|
|
p X f){
|
|
E(h);
|
|
o f;
|
|
}
|
|
a isdigit(d)){
|
|
z=strtol(M,0,0);
|
|
d=2;
|
|
}
|
|
i{
|
|
x D=32;
|
|
d=strstr(R,M-1)-R;
|
|
x D=0;
|
|
d=d*8+256;
|
|
a d>536){
|
|
d=P+d;
|
|
a k d b 1){
|
|
L=k(d t);
|
|
W=h;
|
|
o f;
|
|
c;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
i{
|
|
o f;
|
|
a d b 39){
|
|
d=2;
|
|
Y f;
|
|
z=h;
|
|
o f;
|
|
o f;
|
|
}
|
|
i a d b 47&h b 42){
|
|
o f;
|
|
p h){
|
|
p h!=42)o f;
|
|
o f;
|
|
a h b 47)h=0;
|
|
}
|
|
o f;
|
|
c;
|
|
}
|
|
i{
|
|
e="++#m--%am*@R<^1c/@%[_[H3c%@%[_[H3c+@.B#d-@%:_^BKd<<Z/03e>>`/03e<=0f>=/f<@.f>@1f==&g!='g&&k||#l&@.BCh^@.BSi|@.B+j~@/%Yd!@&d*@b";
|
|
p j=x e++){
|
|
r x e++;
|
|
z=0;
|
|
p(C=x e++-98)<0)z=z*64+C+64;
|
|
a j b d&(m b h|m b 64)){
|
|
a m b h){
|
|
o f;
|
|
d=1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
l g){
|
|
p g&&g!=-1){
|
|
x q++=g;
|
|
g=g>>8;
|
|
}
|
|
}
|
|
A(n{
|
|
F g;
|
|
p n{
|
|
g=k e;
|
|
k e=q-e-4;
|
|
e=g;
|
|
}
|
|
}
|
|
s(g,n{
|
|
l g);
|
|
k q=e;
|
|
e=q;
|
|
q=q t;
|
|
J e;
|
|
}
|
|
H(n{
|
|
s(184,n;
|
|
}
|
|
B(n{
|
|
J s(233,n;
|
|
}
|
|
S(j,n{
|
|
l 1032325);
|
|
J s(132+j,n;
|
|
}
|
|
Z(n{
|
|
l 49465);
|
|
H(0);
|
|
l 15);
|
|
l e+144);
|
|
l 192);
|
|
}
|
|
N(j,n{
|
|
l j+131);
|
|
s((e<512)<<7|5,n;
|
|
}
|
|
T y{
|
|
F g,e,m,aa;
|
|
g=1;
|
|
a d b 34){
|
|
H(v);
|
|
p h!=34){
|
|
Y f;
|
|
x v++=h;
|
|
o f;
|
|
}
|
|
x v=0;
|
|
v=v t&-4;
|
|
o f;
|
|
c;
|
|
}
|
|
i{
|
|
aa=C;
|
|
r z;
|
|
e=d;
|
|
c;
|
|
a e b 2){
|
|
H(m);
|
|
}
|
|
i a aa b 2){
|
|
T(0);
|
|
s(185,0);
|
|
a e b 33)Z(m);
|
|
i l m);
|
|
}
|
|
i a e b 40){
|
|
w f;
|
|
c;
|
|
}
|
|
i a e b 42){
|
|
c;
|
|
e=d;
|
|
c;
|
|
c;
|
|
a d b 42){
|
|
c;
|
|
c;
|
|
c;
|
|
c;
|
|
e=0;
|
|
}
|
|
c;
|
|
T(0);
|
|
a d b 61){
|
|
c;
|
|
l 80);
|
|
w f;
|
|
l 89);
|
|
l 392+(e b 256));
|
|
}
|
|
i a n{
|
|
a e b 256)l 139);
|
|
i l 48655);
|
|
q++;
|
|
}
|
|
}
|
|
i a e b 38){
|
|
N(10,k d);
|
|
c;
|
|
}
|
|
i{
|
|
g=k e;
|
|
a!g)g=dlsym(0,M);
|
|
a d b 61&j){
|
|
c;
|
|
w f;
|
|
N(6,g);
|
|
}
|
|
i a u 40){
|
|
N(8,g);
|
|
a C b 11){
|
|
N(0,g);
|
|
l z);
|
|
c;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
a d b 40){
|
|
a g b 1)l 80);
|
|
r s(60545,0);
|
|
c;
|
|
j=0;
|
|
p u 41){
|
|
w f;
|
|
s(2393225,j);
|
|
a d b 44)c;
|
|
j=j t;
|
|
}
|
|
k r j;
|
|
c;
|
|
a!g){
|
|
e=e t;
|
|
k e=s(232,k n;
|
|
}
|
|
i a g b 1){
|
|
s(2397439,j);
|
|
j=j t;
|
|
}
|
|
i{
|
|
s(232,g-q-5);
|
|
}
|
|
a j)s(50305,j);
|
|
}
|
|
}
|
|
O y{
|
|
F e,g,m;
|
|
a j--b 1)T(1);
|
|
i{
|
|
O y;
|
|
r 0;
|
|
p j b C){
|
|
g=d;
|
|
e=z;
|
|
c;
|
|
a j>8){
|
|
r S(e,m);
|
|
O y;
|
|
}
|
|
i{
|
|
l 80);
|
|
O y;
|
|
l 89);
|
|
a j b 4|j b 5){
|
|
Z(n;
|
|
}
|
|
i{
|
|
l n;
|
|
a g b 37)l 146);
|
|
}
|
|
}
|
|
}
|
|
a m&&j>8){
|
|
r S(e,m);
|
|
H(e^1);
|
|
B(5);
|
|
A(m);
|
|
H(n;
|
|
}
|
|
}
|
|
}
|
|
w f{
|
|
O(11);
|
|
}
|
|
U f{
|
|
w f;
|
|
J S(0,0);
|
|
}
|
|
I y{
|
|
F m,g,e;
|
|
a d b 288){
|
|
c;
|
|
c;
|
|
r U f;
|
|
c;
|
|
I y;
|
|
a d b 312){
|
|
c;
|
|
g=B(0);
|
|
A(m);
|
|
I y;
|
|
A(g);
|
|
}
|
|
i{
|
|
A(m);
|
|
}
|
|
}
|
|
i a d b 352|d b 504){
|
|
e=d;
|
|
c;
|
|
c;
|
|
a e b 352){
|
|
g=q;
|
|
r U f;
|
|
}
|
|
i{
|
|
a u 59)w f;
|
|
c;
|
|
g=q;
|
|
r 0;
|
|
a u 59)r U f;
|
|
c;
|
|
a u 41){
|
|
e=B(0);
|
|
w f;
|
|
B(g-q-5);
|
|
A(n;
|
|
g=e t;
|
|
}
|
|
}
|
|
c;
|
|
I(&m);
|
|
B(g-q-5);
|
|
A(m);
|
|
}
|
|
i a d b 123){
|
|
c;
|
|
ab(1);
|
|
p u 125)I y;
|
|
c;
|
|
}
|
|
i{
|
|
a d b 448){
|
|
c;
|
|
a u 59)w f;
|
|
K=B(K);
|
|
}
|
|
i a d b 400){
|
|
c;
|
|
k j=B(k j);
|
|
}
|
|
i a u 59)w f;
|
|
c;
|
|
}
|
|
}
|
|
ab y{
|
|
F m;
|
|
p d b 256|u-1&!j){
|
|
a d b 256){
|
|
c;
|
|
p u 59){
|
|
a j){
|
|
G=G t;
|
|
k d=-G;
|
|
}
|
|
i{
|
|
k d=v;
|
|
v=v t;
|
|
}
|
|
c;
|
|
a d b 44)c;
|
|
}
|
|
c;
|
|
}
|
|
i{
|
|
A(k(d t));
|
|
k d=q;
|
|
c;
|
|
c;
|
|
r 8;
|
|
p u 41){
|
|
k d=m;
|
|
r m t;
|
|
c;
|
|
a d b 44)c;
|
|
}
|
|
c;
|
|
K=G=0;
|
|
l 15042901);
|
|
r s(60545,0);
|
|
I(0);
|
|
A(K);
|
|
l 50121);
|
|
k r G;
|
|
}
|
|
}
|
|
}
|
|
int main(int g, char **e){
|
|
Q=stdin;
|
|
a g-->1){
|
|
*e=e[1];
|
|
Q=fopen(*e,"r");
|
|
}
|
|
D=strcpy(R V," int if else while break return for define main ")+48;
|
|
v V;
|
|
q=ac V;
|
|
P V;
|
|
o f;
|
|
c;
|
|
ab(0);
|
|
J(*(int(*)f)k(P+592))(g,n;
|
|
}
|
|
|