diff --git a/dump.c b/dump.c index 3dd23a7..46f9515 100644 --- a/dump.c +++ b/dump.c @@ -45,27 +45,22 @@ static int n_vec_refs(const struct vec *vec) /* - * "need" operates in two modes: + * If "prev" is non-NULL, we're looking for objects that need to be put after + * the current vector (in "prev"). Only those objects need to be put there + * that have at least one base that isn't the frame's origin. * - * - if "prev" is non-NULL, we're looking for objects that need to be put after - * the current vector (in "prev"). Only those objects need to be put there - * that have at least one base that isn't the frame's origin or already has a - * name. - * - * - if "prev" is NULL, we're at the end of the frame. We have already used all - * the . references we could, so now we have to find out which objects - * haven't been dumped yet. "need" still returns the ones that had a need to - * be dumped. Again, that's those that have at least one possible "." base. - * Since this "." base will have been used by now, the object must have been - * dumped. + * We could also make an exception for manually named vectors, but we get + * better clustering without. */ static int need(const struct vec *base, const struct vec *prev) { if (!base) return 0; - if (base->name) +#if 0 + if (base->name && *base->name != '_') return 0; +#endif if (prev) return base == prev; return 1; @@ -79,10 +74,12 @@ static int need(const struct vec *base, const struct vec *prev) static int later(const struct vec *base, const struct vec *prev) { - while (prev) { + while (1) { + prev = prev->next; + if (!prev) + break; if (base == prev) return 1; - prev = prev->next; } return 0; } diff --git a/fbga.fpd b/fbga.fpd index f02c249..4d9b6f3 100644 --- a/fbga.fpd +++ b/fbga.fpd @@ -12,7 +12,7 @@ frame pad { __0: vec @(col*e-Px/2, row*-e-Py/2) __1: vec .(0mm, Py) __2: vec __0(Px, 0mm) - pad "$rname$cname" __1 __2 + pad "$rname$cname" __1 . } frame inner { diff --git a/gui_frame.c b/gui_frame.c index 08cb426..6d9f0ee 100644 --- a/gui_frame.c +++ b/gui_frame.c @@ -989,6 +989,7 @@ static GtkWidget *item_label(GtkWidget *tab, char *s, int col, int row, GtkWidget *label; label = label_in_box_new(s); + gtk_misc_set_padding(GTK_MISC(label), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_widget_modify_font(label, item_list_font); gtk_table_attach_defaults(GTK_TABLE(tab), box_of_label(label), diff --git a/sc89.fpd b/sc89.fpd index 3b02348..6cbc027 100644 --- a/sc89.fpd +++ b/sc89.fpd @@ -4,28 +4,28 @@ frame pad { _pad_0: vec @(-Px/2, -Py/2) _pad_1: vec .(Px, 0mm) _pad_2: vec _pad_0(0mm, Py) - pad "$pad" _pad_2 _pad_1 + pad "$pad" . _pad_1 } frame pad_ne { set pad = 2 _pad_ne_0: vec @(-Px/2, -Py/2) - frame pad _pad_ne_0 + frame pad . } frame pad_nw { set pad = 1 _pad_nw_0: vec @(Px/2, -Py/2) - frame pad _pad_nw_0 + frame pad . } frame pad_sc { set pad = 3 _pad_sc_0: vec @(0mm, Py/2) - frame pad _pad_sc_0 + frame pad . } frame outline { @@ -33,21 +33,21 @@ frame outline { __5: vec @(0mm, -Oy/2) __6: vec .(Ox/2, 0mm) __7: vec __5(-Ox/2, 0mm) + line . __6 5mil __8: vec __4(Ow/2, 0mm) __9: vec __4(-Ow/2, 0mm) + line . __8 5mil _outline_6: vec @(0mm, Oh) _outline_7: vec .(Ox/2, 0mm) + line . __6 5mil _outline_8: vec _outline_6(-Ox/2, 0mm) + line . __7 5mil _outline_9: vec _outline_6(Ow/2, 0mm) + line __8 . 5mil + line . _outline_7 5mil _outline_10: vec _outline_6(-Ow/2, 0mm) - line __7 __6 5mil - line _outline_7 __6 5mil - line _outline_8 __7 5mil - line _outline_8 _outline_10 5mil - line __9 _outline_10 5mil - line __9 __8 5mil - line __8 _outline_9 5mil - line _outline_9 _outline_7 5mil + line _outline_8 . 5mil + line __9 . 5mil } part "SC89" @@ -60,13 +60,13 @@ table { 2mm, 2.2mm, 0.6mm, 0.85mm } __0: vec @(0mm, Gy/2) +frame pad_sc . __1: vec @(0mm, -Gy/2) __2: vec .(Wx/2, 0mm) +frame pad_ne . __3: vec __1(-Wx/2, 0mm) +frame pad_nw . dummy: vec @(0.2mm, 0mm) -frame pad_sc __0 -frame pad_nw __3 -frame pad_ne __2 frame outline @ measx pad._pad_0 >> pad._pad_1 -0.6mm measy pad._pad_0 >> pad._pad_2 0.8mm