diff options
author | Werner Almesberger <werner@almesberger.net> | 2016-08-30 03:28:45 -0300 |
---|---|---|
committer | Werner Almesberger <werner@almesberger.net> | 2016-08-30 03:28:45 -0300 |
commit | e3aea192ee483678648797b091c9e863bbf7d9c8 (patch) | |
tree | 51a1b9895e503da0123830c571985568648d00a0 /kicad | |
parent | ccb43979d970bc7ee26a4128e1e5b3882008ec63 (diff) | |
download | eeshow-e3aea192ee483678648797b091c9e863bbf7d9c8.tar.gz eeshow-e3aea192ee483678648797b091c9e863bbf7d9c8.tar.bz2 eeshow-e3aea192ee483678648797b091c9e863bbf7d9c8.zip |
kicad/delta.c (sheet_eq): make recursing optional; don't recurse in index
In the index, we don't want to have pages marked because there's a
page underneath that has changed. After all, that other page is
being shown in the index as well.
However, in all other cases we still want to recurse.
Diffstat (limited to 'kicad')
-rw-r--r-- | kicad/delta.c | 6 | ||||
-rw-r--r-- | kicad/delta.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/kicad/delta.c b/kicad/delta.c index a09a014..c45212f 100644 --- a/kicad/delta.c +++ b/kicad/delta.c @@ -319,14 +319,14 @@ static bool obj_eq(const struct sch_obj *a, const struct sch_obj *b, return 1; if (a->u.sheet.error != b->u.sheet.error) return 0; - return sheet_eq(a->u.sheet.sheet, b->u.sheet.sheet); + return sheet_eq(a->u.sheet.sheet, b->u.sheet.sheet, 1); default: BUG("invalid type %d", a->type); } } -bool sheet_eq(const struct sheet *a, const struct sheet *b) +bool sheet_eq(const struct sheet *a, const struct sheet *b, bool recurse) { const struct sch_obj *obj_a, *obj_b; @@ -345,7 +345,7 @@ bool sheet_eq(const struct sheet *a, const struct sheet *b) obj_a = a->objs; obj_b = b->objs; while (obj_a && obj_b) { - if (!obj_eq(obj_a, obj_b, 1)) + if (!obj_eq(obj_a, obj_b, recurse)) return 0; obj_a = obj_a->next; obj_b = obj_b->next; diff --git a/kicad/delta.h b/kicad/delta.h index fdb641a..7abd1cb 100644 --- a/kicad/delta.h +++ b/kicad/delta.h @@ -17,7 +17,7 @@ #include "kicad/sch.h" -bool sheet_eq(const struct sheet *a, const struct sheet *b); +bool sheet_eq(const struct sheet *a, const struct sheet *b, bool recurse); void delta(const struct sheet *a, const struct sheet *b, struct sheet *res_a, struct sheet *res_b, struct sheet *res_ab); |