Make our global variables static.
diff --git a/libacc/acc.c b/libacc/acc.c
index fcf4df0..46961ca 100644
--- a/libacc/acc.c
+++ b/libacc/acc.c
@@ -23,23 +23,24 @@
#include <stdlib.h>
#include <string.h>
-int d, z, C, h, K, q, G, L, W;
-char* P;
-char* ac;
-char* v;
-char* D;
-char* M;
-char* R;
-FILE* Q;
+static int d, z, C, h, K, q, G, W;
+static char* L;
+static char* P;
+static char* ac;
+static char* v;
+static char* D;
+static char* M;
+static char* R;
+static FILE* Q;
-void ab (int j);
-void w();
+static void ab (int j);
+static void w();
-void E(e) {
- *(char*) D++=e;
+static void addToSymbolTable(char e) {
+ *D++ = e;
}
-void o() {
+static void next() {
if (L) {
h = *(char*) L++;
if (h == 2) {
@@ -50,47 +51,47 @@
h = fgetc(Q);
}
-int X() {
- return isalnum(h) | h == 95;
+static int X() {
+ return isalnum(h) || h == '_';
}
-void Y() {
+static void Y() {
if (h == 92) {
- o();
+ next();
if (h == 110)
h = 10;
}
}
-void ad() {
+static void ad() {
int j, m;
while (isspace(h) | h == 35) {
if (h == 35) {
- o();
+ next();
ad();
if (d == 536) {
ad();
- E(32);
+ addToSymbolTable(32);
*(int*) d = 1;
*(int*) (d + 4) = (int) D;
}
- while (h != 10) {
- E(h);
- o();
+ while (h != '\n') {
+ addToSymbolTable(h);
+ next();
}
- E(h);
- E(2);
+ addToSymbolTable(h);
+ addToSymbolTable(2);
}
- o();
+ next();
}
C = 0;
d = h;
if (X()) {
- E(32);
+ addToSymbolTable(32);
M = D;
while (X()) {
- E(h);
- o();
+ addToSymbolTable(h);
+ next();
}
if (isdigit(d)) {
z = strtol(M, 0, 0);
@@ -103,31 +104,31 @@
if (d > 536) {
d = ((int) P) + d;
if (*(int*) d == 1) {
- L = *(int*) (d + 4);
+ L = (char*) (*(int*) (d + 4));
W = h;
- o();
+ next();
ad();
}
}
}
} else {
- o();
+ next();
if (d == 39) {
d = 2;
Y();
z = h;
- o();
- o();
+ next();
+ next();
} else if (d == 47 & h == 42) {
- o();
+ next();
while (h) {
while (h != 42)
- o();
- o();
+ next();
+ next();
if (h == 47)
h = 0;
}
- o();
+ next();
ad();
} else {
char* 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";
@@ -138,7 +139,7 @@
z = z * 64 + C + 64;
if (j == d & (m == h | m == 64)) {
if (m == h) {
- o();
+ next();
d = 1;
}
break;
@@ -148,14 +149,14 @@
}
}
-void ae( g) {
+static void ae( g) {
while( g&&g!=-1) {
*(char*) q++=g;
g=g>>8;
}
}
-void A(e) {
+static void A(e) {
int g;
while( e) {
g=*(int*) e;
@@ -164,7 +165,7 @@
}
}
-int s( g, e) {
+static int s( g, e) {
ae(g);
*(int*) q = e;
e = q;
@@ -172,20 +173,20 @@
return e;
}
-int H(e) {
+static int H(e) {
s(184,e);
}
-int B(e) {
+static int B(e) {
return s(233,e);
}
-S( j, e) {
+static int S( j, e) {
ae(1032325);
return s(132 + j, e);
}
-void Z(e) {
+static void Z(e) {
ae( 49465);
H(0);
ae( 15);
@@ -193,12 +194,12 @@
ae( 192);
}
-void N( j, e) {
+static void N( j, e) {
ae(j + 131);
s((e < 512) << 7 | 5, e);
}
-void T (j) {
+static void T (j) {
int g,e,m,aa;
g=1;
if( d == 34) {
@@ -206,11 +207,11 @@
while( h!=34) {
Y ();
*(char*) v++=h;
- o ();
+ next ();
}
*(char*) v=0;
v= (char*) (((int)v) +4&-4);
- o ();
+ next ();
ad();
}
else {
@@ -308,7 +309,7 @@
}
}
-void O (j) {
+static void O (j) {
int e,g,m;
if( j--== 1)T(1);
else {
@@ -345,16 +346,16 @@
}
}
-void w() {
+static void w() {
O(11);
}
-U() {
+static int U() {
w();
return S(0, 0);
}
-void I (j) {
+static void I (j) {
int m,g,e;
if( d == 288) {
ad();
@@ -422,7 +423,7 @@
}
}
-void ab (int j) {
+static void ab (int j) {
int m;
while( d == 256 | d != -1 & !j ) {
if( d == 256) {
@@ -482,7 +483,7 @@
ac = calloc(1, 99999);
q = (int) ac;
P = calloc(1, 99999);
- o();
+ next();
ad();
ab(0);
#if 1