diff --git a/include/gate.h b/include/gate.h index 7f09075c9dc4c5b4aa017fb6c75755ccb2814e6d..96bd11dbd0e5ccb7c5c28bc2ad12cfa81c58f63e 100644 --- a/include/gate.h +++ b/include/gate.h @@ -54,5 +54,6 @@ void frygate(log_grec *gate); void initpinpos(log_grec *gate); 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); +void reportgateconflict(log_grec *g); #endif diff --git a/include/node.h b/include/node.h index 5325715a39ace10f8f7ed01de2467e3891e5d494..28b922c69400cfb69cd17ca12f556abe37bffbc5 100644 --- a/include/node.h +++ b/include/node.h @@ -49,5 +49,7 @@ void newnoderef(log_nrec **n, uchar st, long ref); void delgetnode(log_nrec **save, log_nrec **old, log_nrec **n); void checknode(log_nrec *n, struct LOC_checkcombine *LINK); int trycombinenodes(log_nrec **n1, log_nrec **n2); +void reportnodeconflict(log_nrec *n); +void getnodeval(log_nrec *n, double *val, char *opts); #endif diff --git a/src/gate.c b/src/gate.c index d9b6d361e445bb4b1522ba007755317ff47572a3..553a6d5df9768abef18e6c0a964999647854a511 100644 --- a/src/gate.c +++ b/src/gate.c @@ -13,6 +13,7 @@ #include "label.h" #include "page.h" #include "tool.h" +#include "keyboard.h" #include "box.h" /// Check if inside a gate's "yellow box." @@ -792,3 +793,17 @@ int addgate(short gtype, short sig, log_gattrrec *attrs) return Result; } +void reportgateconflict(log_grec *g) +{ + if (g->conflict || !conflictenbl) + return; + if (!g->oconflict) + { + g->confnext = gateconflictbase; + gateconflictbase = g; + g->conflict1 = (3L - conflictdelay) & 1; + g->conflict2 = ((3L - conflictdelay) / 2) & 1; + } + g->conflict = true; +} + diff --git a/src/log.c b/src/log.c index 3dfda579bcd7aaae148969e8fe2c78606f08a4af..462f75b6e0ab5d92d7cbc96df83960c8e4724a7d 100644 --- a/src/log.c +++ b/src/log.c @@ -1145,36 +1145,6 @@ void enderror() } -static void reportnodeconflict(log_nrec *n) -{ - if (n->conflict || !conflictenbl) - return; - if (!n->oconflict) - { - n->confnext = nodeconflictbase; - nodeconflictbase = n; - n->conflict1 = (3L - conflictdelay) & 1; - n->conflict2 = ((3L - conflictdelay) / 2) & 1; - } - n->conflict = true; -} - - -static void reportgateconflict(log_grec *g) -{ - if (g->conflict || !conflictenbl) - return; - if (!g->oconflict) - { - g->confnext = gateconflictbase; - gateconflictbase = g; - g->conflict1 = (3L - conflictdelay) & 1; - g->conflict2 = ((3L - conflictdelay) / 2) & 1; - } - g->conflict = true; -} - - static void drawhistdivisions(short x1, short x2) { short x, y; @@ -1237,14 +1207,6 @@ static void historypointy(log_hnrec *hn, log_htrec *ht, short *y) } -static void getnodeval(log_nrec *n, double *val, char *opts) -{ - gg.actval = 0.0; - strcpy(gg.actstr, opts); - calltoolnode(n, act_nodeval); - *val = gg.actval; -} - /** @brief Make one simulation pass through the circuit. For each page, call the simulator(s) and do other simulation-related chores. */ diff --git a/src/node.c b/src/node.c index 4db5d589024aa08b942d421c280be97a491cd04d..94b9be6a26de0db6e3ef29f956f83804306c4314 100644 --- a/src/node.c +++ b/src/node.c @@ -595,3 +595,25 @@ int trycombinenodes(log_nrec **n1, log_nrec **n2) return (checkcombine(&cnbase)); } +void reportnodeconflict(log_nrec *n) +{ + if (n->conflict || !conflictenbl) + return; + if (!n->oconflict) + { + n->confnext = nodeconflictbase; + nodeconflictbase = n; + n->conflict1 = (3L - conflictdelay) & 1; + n->conflict2 = ((3L - conflictdelay) / 2) & 1; + } + n->conflict = true; +} + +void getnodeval(log_nrec *n, double *val, char *opts) +{ + gg.actval = 0.0; + strcpy(gg.actstr, opts); + calltoolnode(n, act_nodeval); + *val = gg.actval; +} +