From c95ab1805653e74400852344690237c594a6e433 Mon Sep 17 00:00:00 2001
From: Eliah Rebstock <elireb54@outlook.com>
Date: Thu, 26 Jul 2018 22:26:07 +0200
Subject: [PATCH] Clean gate.c

---
 log/include/gate.h   | 15 ++++++++++
 log/include/log.h    | 38 +++++++++++++++++++++++++
 log/include/node.h   |  9 ++++++
 log/include/page.h   |  2 ++
 log/include/screen.h |  8 ++++++
 log/include/tool.h   |  8 ++++++
 log/include/wire.h   |  4 +++
 log/src/gate.c       | 12 ++++++--
 log/src/log.c        | 66 ++++++++++++++++++++++----------------------
 9 files changed, 126 insertions(+), 36 deletions(-)
 create mode 100644 log/include/log.h

diff --git a/log/include/gate.h b/log/include/gate.h
index b8754ad..325afb6 100644
--- a/log/include/gate.h
+++ b/log/include/gate.h
@@ -23,4 +23,19 @@ void newgate(log_grec **g, short gt);
 
 void eragate(log_grec *g);
 
+int addgate(short gtype, short sig, log_gattrrec *attrs);
+int insidegate(log_grec *g, short x, short y);
+int connectgate(log_grec *g);
+void linkgate(log_grec **g);
+void newgptr(log_grec **g);
+void newgate2(log_grec **g, short gt, short sig, log_gattrrec *attrs);
+void unlkgate(log_grec **g);
+void disposegptr(log_grec **g);
+void chggate(log_grec *g, int i, log_nrec *oldnode, log_nrec *n);
+void chggatepin(log_grec *g, short i, log_nrec **oldnode, log_nrec **savenode);
+void frygate(log_grec *g);
+void initpinpos(log_grec *g);
+void addgate2(short x, short y, short gtype, short sig, log_gattrrec *attrs);
+void movexorgate(short x, short y, short g, short sig, short yy);
+
 #endif
diff --git a/log/include/log.h b/log/include/log.h
new file mode 100644
index 0000000..bfc85a1
--- /dev/null
+++ b/log/include/log.h
@@ -0,0 +1,38 @@
+#ifndef LOG_H
+#define LOG_H
+
+#include <p2c/p2c.h>
+#include "logdef.h"
+#include "wire.h"
+
+void pen();
+void report(short num, char *s);
+void log_setmode(const char *s);
+void strwordx(char *buf, char *wrd);
+void sortshints(short *x, short *y);
+long glowcol(log_nrec *n, long def);
+void resetmessages();
+void message(char *msg);
+void tracemessage(char *msg);
+void pass();
+void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr);
+void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr);
+log_tool *findsimtype(uchar st);
+void garbagecoll();
+short getsignal(int d, char *n_);
+void setscale(short s);
+char *colorname(char *Result, short c);
+void scroll();
+void trykbd();
+void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK);
+void confirmsimtype(log_nrec *n);
+void scancn(cnrec *cn, struct LOC_checkcombine *LINK);
+void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2);
+void doblobs(blobrec *blp);
+void dispblobs(blobrec **blbase);
+void changekind(short gtype, short sig, log_gattrrec *attrs);
+void prealunit(double r, short p, char *u, char *s);
+void prealunit2(double r, short p, char *u, char *s);
+
+#endif
diff --git a/log/include/node.h b/log/include/node.h
index e15bcfc..b72143c 100644
--- a/log/include/node.h
+++ b/log/include/node.h
@@ -13,6 +13,10 @@ void copynode(log_nrec *old, log_nrec **n);
 
 void newnode(log_nrec **n, uchar st);
 
+log_nrec *refnode(log_nrec *n);
+
+void unrefnode(log_nrec **n);
+
 /* Local variables for checkcombine: */
 struct LOC_checkcombine {
 	cnrec **cnbase;
@@ -21,4 +25,9 @@ struct LOC_checkcombine {
 	log_tool *cursimtype;
 };
 
+int checkcombine(cnrec **cnbase_);
+void queuecombine(cnrec **cnbase, log_nrec **n, log_nrec **n2);
+void newnoderef(log_nrec **n, uchar st, long ref);
+void delgetnode(log_nrec **save, log_nrec **old, log_nrec **n);
+
 #endif
diff --git a/log/include/page.h b/log/include/page.h
index 0e47e94..9fd6286 100644
--- a/log/include/page.h
+++ b/log/include/page.h
@@ -3,4 +3,6 @@
 
 void chpage(short pg);
 
+void chpageplace(short pg, short x1, short y1, short x2, short y2);
+
 #endif
diff --git a/log/include/screen.h b/log/include/screen.h
index 2f447d9..9c72e5b 100644
--- a/log/include/screen.h
+++ b/log/include/screen.h
@@ -57,4 +57,12 @@ void unhidecursor_hook();
 
 void hidecursor_hook();
 
+void signallabel(short x, short y, short gtype, short sig, short c);
+
+void gsignallabel(short x, short y, log_grec *g, short c);
+
+void drawpnums(log_grec *g, short c);
+
+void drawgatedotsc(short x, short y, short g, short c);
+
 #endif
diff --git a/log/include/tool.h b/log/include/tool.h
index e69de29..abf0199 100644
--- a/log/include/tool.h
+++ b/log/include/tool.h
@@ -0,0 +1,8 @@
+#ifndef LOG_TOOL_H
+#define LOG_TOOL_H
+
+#include "logdef.h"
+
+void calltoolgate(log_grec *g, log_actionkinds act);
+
+#endif
diff --git a/log/include/wire.h b/log/include/wire.h
index 370fc06..7b73ed5 100644
--- a/log/include/wire.h
+++ b/log/include/wire.h
@@ -19,4 +19,8 @@ struct LOC_wantsolder
 	int hasred, hasgreen, hasyellow, hasblue;
 };
 
+void chghw(log_hwrec *hw, log_nrec *oldnode, log_nrec *n);
+
+void chgvw(log_vwrec *vw, log_nrec *oldnode, log_nrec *n);
+
 #endif
diff --git a/log/src/gate.c b/log/src/gate.c
index 1391f92..e75d3d6 100644
--- a/log/src/gate.c
+++ b/log/src/gate.c
@@ -1,10 +1,19 @@
 
 #include <p2c/p2c.h>
+#include <p2c/newci.h>
 #include <p2c/newkbd.h>
 #include "logfont.h"
 #include "logglobals.h"
+#include "logstructs.h"
+#include "screen.h"
 #include "utils.h"
+#include "node.h"
+#include "log.h"
 #include "gate.h"
+#include "wire.h"
+#include "label.h"
+#include "page.h"
+#include "tool.h"
 
 /*================  INSIDEGATE  ==================*/
 /*=                                              =*/
@@ -485,7 +494,6 @@ void disconnectgate(log_grec *g)
 	log_nrec **oldnode;
 	long done[log_maxpins / 32 + 2];
 	short FORLIM;
-	long SET[9];
 
 	if (gg.traceflag)
 		fprintf(tracefile, "Disconnect gate %ld\n", (long)g);
@@ -859,5 +867,3 @@ int addgate(short gtype, short sig, log_gattrrec *attrs)
 	gg.startpoint = false;
 	return Result;
 }
-
-
diff --git a/log/src/log.c b/log/src/log.c
index 2a98def..b24ac89 100644
--- a/log/src/log.c
+++ b/log/src/log.c
@@ -408,10 +408,10 @@ static void clearshowalpha ();
 /*=                                              =*/
 /*================================================*/
 
-extern void message (char *msg);
+void message (char *msg);
 
 
-extern void report(short num, char *s)
+void report(short num, char *s)
 {
 	char ch;
 	char STR2[256];
@@ -446,7 +446,7 @@ extern void report(short num, char *s)
 
 static void refreditmode ();
 
-extern void log_setmode(const char *s)
+void log_setmode(const char *s)
 {
 	time_t h;
 	char *cp;
@@ -487,7 +487,7 @@ extern void log_setmode(const char *s)
 		drawstr2(across + menux3, line2, modename);
 }
 
-extern void strwordx(char *buf, char *wrd)
+void strwordx(char *buf, char *wrd)
 {
 	size_t i;
 	char STR1[256];
@@ -602,7 +602,7 @@ static void getbool(char *buf, int *b)
 /*=                                              =*/
 /*================================================*/
 
-extern void sortshints(short *x, short *y)
+void sortshints(short *x, short *y)
 {
 	short temp;
 
@@ -888,7 +888,7 @@ static void send_allgates(char *act)
 }
 
 
-extern long glowcol(log_nrec *n, long def)
+long glowcol(log_nrec *n, long def)
 {
 	gg.actx = def;
 	calltoolnode(n, act_glowcol);
@@ -896,7 +896,7 @@ extern long glowcol(log_nrec *n, long def)
 }
 
 
-extern void resetmessages()
+void resetmessages()
 {
 	short opos;
 
@@ -932,7 +932,7 @@ static void show_events()
 {
 	/*zEMBED
 	  char buf[30];
-	  extern int m_events_received;
+	  int m_events_received;
 	  static int old_events, old_serial, old_time;
 	  int serial, time = timers_sysclock() / 200;
 	  sprintf(buf, "%d", m_events_received);
@@ -962,7 +962,7 @@ static int pollkbd2()
 }
 
 
-extern void pen()
+void pen()
 {
 
 #define ALERTNESS 2 /* Time to get bored (in cs) */
@@ -1277,7 +1277,7 @@ static int inbox(short x, short y, short x1, short y1)
 
 #define spacing         10
 
-extern void message(char *msg)
+void message(char *msg)
 {
 	na_strlist_t *l1;
 
@@ -1342,7 +1342,7 @@ static void vmessageflag(char *msg, int b)
 	}
 }
 
-extern void tracemessage(char *msg)
+void tracemessage(char *msg)
 {
 	if (!gg.traceflag)
 		return;
@@ -1592,7 +1592,7 @@ static void getnodeval(log_nrec *n, double *val, char *opts)
 /*=                                              =*/
 /*================================================*/
 
-extern void pass()
+void pass()
 {
 	log_grec *g, *g1, *g2;
 	log_nrec *n, *n1, *n2;
@@ -2097,10 +2097,10 @@ static void clearconflicts(log_tool *tool)
 }
 
 
-extern short getsignal (int d, char *n);
+short getsignal (int d, char *n);
 
 
-extern void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
+void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
 {
 	short i;
 
@@ -2145,7 +2145,7 @@ extern void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
 }
 
 
-extern void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
+void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr)
 {
 	short i;
 
@@ -2167,7 +2167,7 @@ extern void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kat
 }
 
 
-extern void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr)
+void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr)
 {
 	short i;
 
@@ -2256,7 +2256,7 @@ static void defsimulator(log_action_t *act)
 }
 
 
-extern log_tool *findsimtype(uchar st)
+log_tool *findsimtype(uchar st)
 {
 	char simname[17];
 	log_tool *stp;
@@ -2419,7 +2419,7 @@ static void purgesignaltab()
 /*=                                              =*/
 /*================================================*/
 
-extern void garbagecoll()
+void garbagecoll()
 {
 	log_nrec *n, *n1;
 	log_grec *g;
@@ -2488,7 +2488,7 @@ extern void garbagecoll()
 /*=                                              =*/
 /*================================================*/
 
-extern short getsignal(int d, char *n_)
+short getsignal(int d, char *n_)
 {
 	char n[256];
 	short i;
@@ -2562,7 +2562,7 @@ static void getsigname(char *name, log_sigrec **sig)
 /*=                                              =*/
 /*================================================*/
 
-extern void setscale(short s)
+void setscale(short s)
 {
 	zoom = s;
 	gg.scale = zoomscales[s + 2];
@@ -2614,7 +2614,7 @@ static void setupregion(log_regrec **r, short pagenum)
 /*=                                              =*/
 /*================================================*/
 
-extern char *colorname(char *Result, short c)
+char *colorname(char *Result, short c)
 {
 	if (c == log_wcol_normal)
 		return strcpy(Result, "U");
@@ -2802,7 +2802,7 @@ static void zoomto(short z)
 }
 
 
-extern void scroll()
+void scroll()
 {
 	char ch, TEMP;
 
@@ -3208,7 +3208,7 @@ static void assertfunc(char *name_)
 /*=                                              =*/
 /*================================================*/
 
-extern void trykbd()
+void trykbd()
 {
 	long t;
 	int moving;
@@ -3325,7 +3325,7 @@ static void trykbdscroll()
 }
 
 
-extern void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK)
+void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK)
 {
 	if (*hw == NULL)
 		return;
@@ -3351,7 +3351,7 @@ extern void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK)
 }
 
 
-extern void confirmsimtype(log_nrec *n)
+void confirmsimtype(log_nrec *n)
 {
 	log_grec *g;
 	short i, pg;
@@ -3401,7 +3401,7 @@ extern void confirmsimtype(log_nrec *n)
 }
 
 
-extern void scancn (cnrec *cn, struct LOC_checkcombine *LINK);
+void scancn (cnrec *cn, struct LOC_checkcombine *LINK);
 
 /* Local variables for scancn: */
 struct LOC_scancn {
@@ -3425,7 +3425,7 @@ static void scan(log_nrec **n, struct LOC_scancn *LINK)
 	}
 }
 
-extern void scancn(cnrec *cn, struct LOC_checkcombine *LINK)
+void scancn(cnrec *cn, struct LOC_checkcombine *LINK)
 {
 	struct LOC_scancn V;
 
@@ -3454,7 +3454,7 @@ static void frysolder(short x, short y)
 }
 
 
-extern void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2)
+void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2)
 {
 	blobrec *blp;
 	log_srec *s;
@@ -3476,7 +3476,7 @@ extern void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2)
 }
 
 
-extern void doblobs(blobrec *blp)
+void doblobs(blobrec *blp)
 {
 	log_hwrec *hw;
 	log_vwrec *vw;
@@ -3508,7 +3508,7 @@ extern void doblobs(blobrec *blp)
 }
 
 
-extern void dispblobs(blobrec **blbase)
+void dispblobs(blobrec **blbase)
 {
 	blobrec *blp;
 
@@ -4110,7 +4110,7 @@ static void changekind2(short i, short gtype, short sig, log_gattrrec *attrs)
 }
 
 
-extern void changekind(short gtype, short sig, log_gattrrec *attrs)
+void changekind(short gtype, short sig, log_gattrrec *attrs)
 {
 	short i;
 
@@ -7973,13 +7973,13 @@ static char *realunit(char *Result, double r, short p, char *u, int mu)
 }
 
 /* was static void, cause gcc problems in some releases */
-extern void prealunit(double r, short p, char *u, char *s)
+void prealunit(double r, short p, char *u, char *s)
 {
 	realunit(s, r, p, u, false);
 }
 
 /* was static void, cause gcc problems in some releases */
-extern void prealunit2(double r, short p, char *u, char *s)
+void prealunit2(double r, short p, char *u, char *s)
 {
 	realunit(s, r, p, u, true);
 }
-- 
GitLab