Index: /developers/werner/fped/TODO
===================================================================
--- /developers/werner/fped/TODO	(revision 5327)
+++ /developers/werner/fped/TODO	(revision 5328)
@@ -22,2 +22,5 @@
 - syntax seems a little cryptic. too many dots and at signs.
 - add measurements
+- add continuous coordinate display
+- add user coordinates. hide if inactive ?
+- arc syntax is weird, with comma where we use spaces
Index: /developers/werner/fped/obj.c
===================================================================
--- /developers/werner/fped/obj.c	(revision 5327)
+++ /developers/werner/fped/obj.c	(revision 5328)
@@ -28,4 +28,5 @@
 static int generate_objects(struct frame *frame, struct coord base)
 {
+	struct coord vec_base;
 	struct vec *vec;
 	struct obj *obj;
@@ -39,8 +40,9 @@
 		if (y == UNDEF)
 			return 0;
-		vec->pos = vec->base ? vec->base->pos : base;
+		vec_base = vec->base ? vec->base->pos : base;
+		vec->pos = vec_base;
 		vec->pos.x += x;
 		vec->pos.y += y;
-		if (!inst_vec(vec, base))
+		if (!inst_vec(vec, vec_base))
 			return 0;
 	}
Index: /developers/werner/fped/qfn.fpd
===================================================================
--- /developers/werner/fped/qfn.fpd	(revision 5327)
+++ /developers/werner/fped/qfn.fpd	(revision 5328)
@@ -2,7 +2,7 @@
 
 .frame pad_up {
-	.vec @ -D/2, 0
+	c = .vec @ -D/2, 0
 	.vec . D, C
-	.pad "N/4+n" @ .
+	.pad "N/4+n" c .
 }
 
@@ -10,7 +10,7 @@
 
 .table
-    { P, Ax, Ay, By, C, D, SLx, SLy, SPx_tot, SPy_tot, SPx, SPy, Gx, Gy, Hx, Hy }
+    { P, Ax, Ay, Bx, By, C, D, SLx, SLy, SPx_tot, SPy_tot, SPx, SPy, Gx, Gy, Hx, Hy }
     { 0.5mm, 5mm, 5mm, 3.2mm, 3.2mm, 0.9mm, 0.24mm, 2.1mm, 2.1mm, 1.2mm,
-      0.45mm, 0.45mm, 4.3mm, 4.3mm, 5.25mm, 5.25mm }
+      1.2mm, 0.45mm, 0.45mm, 4.3mm, 4.3mm, 5.25mm, 5.25mm }
 
 h_x0y0 = .vec @ -Hx/2, -Hy/2
@@ -24,5 +24,5 @@
 n = 0, N/4-1
 
-.vec @ P*(n-N/4/2), -Ay/2
+.vec @ P*(n-(N/4-1)/2), -Ay/2
 .frame pad_up .
 
Index: /developers/werner/fped/gui_canvas.c
===================================================================
--- /developers/werner/fped/gui_canvas.c	(revision 5327)
+++ /developers/werner/fped/gui_canvas.c	(revision 5328)
@@ -23,5 +23,5 @@
 
 
-struct draw_ctx ctx;
+static struct draw_ctx ctx;
 
 
Index: /developers/werner/fped/gui_inst.c
===================================================================
--- /developers/werner/fped/gui_inst.c	(revision 5327)
+++ /developers/werner/fped/gui_inst.c	(revision 5328)
@@ -71,5 +71,4 @@
     int r1, int r2)
 {
-	center = translate(ctx, center);
 	draw_circle(ctx, gc, TRUE, center.x, center.y, r1);
 	draw_circle(ctx, gc, FALSE, center.x, center.y, r2);
@@ -118,8 +117,8 @@
 	struct coord to = translate(ctx, self->u.end);
 
-	draw_circle(ctx, gc_vec_bg, FALSE, to.x, to.y, VEC_EYE_R);
 	draw_arrow(ctx, gc_vec_bg, TRUE, from, to,
 	  VEC_ARROW_LEN, VEC_ARROW_ANGLE);
 	gdk_draw_line(DA, gc_vec_bg, from.x, from.y, to.x, to.y);
+	draw_circle(ctx, gc_vec_bg, FALSE, to.x, to.y, VEC_EYE_R);
 }
 
@@ -181,8 +180,8 @@
 void gui_draw_frame(struct inst *self, struct draw_ctx *ctx)
 {
-	struct coord pos = translate(ctx, self->base);
+	struct coord center = translate(ctx, self->base);
 	struct coord corner = { self->bbox.min.x, self->bbox.max.y };
 
-	draw_eye(ctx, gc_frame_bg, pos, FRAME_EYE_R1, FRAME_EYE_R2);
+	draw_eye(ctx, gc_frame_bg, center, FRAME_EYE_R1, FRAME_EYE_R2);
 	if (!self->u.frame.ref->name)
 		return;
