diff --git a/eeshow/delta.c b/eeshow/delta.c index 74c1e1d..6e309ba 100644 --- a/eeshow/delta.c +++ b/eeshow/delta.c @@ -224,6 +224,7 @@ static bool obj_eq(const struct sch_obj *a, const struct sch_obj *b) return 1; case sch_obj_noconn: return 1; + case sch_obj_glabel: case sch_obj_text: if (a->u.text.fn != b->u.text.fn) return 0; diff --git a/eeshow/sch-parse.c b/eeshow/sch-parse.c index 922f9f9..33171bb 100644 --- a/eeshow/sch-parse.c +++ b/eeshow/sch-parse.c @@ -549,7 +549,8 @@ static bool parse_line(const struct file *file, void *user, const char *line) } *to = 0; obj->u.text.s = s; - submit_obj(ctx, sch_obj_text); + submit_obj(ctx, obj->u.text.fn == dwg_glabel ? + sch_obj_glabel : sch_obj_text); } return 1; case sch_wire: @@ -627,6 +628,7 @@ static void free_sheet(struct sheet *sch) for (obj = sch->objs; obj; obj = next) { next = obj->next; switch (obj->type) { + case sch_obj_glabel: case sch_obj_text: free((char *) obj->u.text.s); break; diff --git a/eeshow/sch-render.c b/eeshow/sch-render.c index cfc777c..f8920e1 100644 --- a/eeshow/sch-render.c +++ b/eeshow/sch-render.c @@ -148,6 +148,7 @@ void sch_render(const struct sheet *sheet) case sch_obj_noconn: dwg_noconn(obj->x, obj->y); break; + case sch_obj_glabel: case sch_obj_text: { const struct sch_text *text = &obj->u.text; diff --git a/eeshow/sch.h b/eeshow/sch.h index 8b7c94c..35b8af0 100644 --- a/eeshow/sch.h +++ b/eeshow/sch.h @@ -40,6 +40,7 @@ struct sch_obj { sch_obj_junction, sch_obj_noconn, sch_obj_text, + sch_obj_glabel, sch_obj_comp, sch_obj_sheet, } type;