Index: trunk/src_plugins/diag/diag.c =================================================================== --- trunk/src_plugins/diag/diag.c (revision 19505) +++ trunk/src_plugins/diag/diag.c (revision 19506) @@ -407,6 +407,7 @@ static const char pcb_acth_d1[] = "debug action for development"; static fgw_error_t pcb_act_d1(fgw_arg_t *res, int argc, fgw_arg_t *argv) { + CURRENT->meta.real.xform.bloat += PCB_MM_TO_COORD(0.1); PCB_ACT_IRES(0); return 0; } Index: trunk/src_plugins/dialogs/dlg_padstack.c =================================================================== --- trunk/src_plugins/dialogs/dlg_padstack.c (revision 19505) +++ trunk/src_plugins/dialogs/dlg_padstack.c (revision 19506) @@ -133,6 +133,9 @@ pcb_pstk_shape_t *shape = pcb_pstk_shape(pse->ps, pse_layer[n].mask, pse_layer[n].comb); if (shape != NULL) { switch(shape->shape) { + case PCB_PSSH_HSHADOW: + PCB_DAD_SET_VALUE(hid_ctx, pse->proto_shape[n], str_value, "hshadow"); + break; case PCB_PSSH_CIRC: PCB_DAD_SET_VALUE(hid_ctx, pse->proto_shape[n], str_value, "circle"); if ((shape->data.circ.x != 0) || (shape->data.circ.y != 0)) Index: trunk/src_plugins/lib_compat_help/pstk_compat.c =================================================================== --- trunk/src_plugins/lib_compat_help/pstk_compat.c (revision 19505) +++ trunk/src_plugins/lib_compat_help/pstk_compat.c (revision 19506) @@ -338,6 +338,8 @@ if (shp->data.poly.len == 8) return get_old_shape_octa(dia, shp); break; + case PCB_PSSH_HSHADOW: + break; } return PCB_PSTK_COMPAT_INVALID; } @@ -611,6 +613,8 @@ /* require all shapes to be concentric */ for(n = 1; n < tshp->len; n++) { switch(tshp->shape[0].shape) { + case PCB_PSSH_HSHADOW: + return pcb_false; case PCB_PSSH_LINE: if (tshp->shape[0].data.line.x1 != tshp->shape[n].data.line.x1) return pcb_false; @@ -667,6 +671,8 @@ *thickness = lt[coppern]; *mask = lt[maskn]; break; + case PCB_PSSH_HSHADOW: + break; } *clearance = (ps->Clearance > 0 ? ps->Clearance : tshp->shape[0].clearance) * 2; Index: trunk/src_plugins/puller/puller.c =================================================================== --- trunk/src_plugins/puller/puller.c (revision 19505) +++ trunk/src_plugins/puller/puller.c (revision 19506) @@ -742,6 +742,8 @@ double dist2 = pcb_distance2(cx, cy, x, y); return (dist2 <= max_dist2); } + case PCB_PSSH_HSHADOW: + return 0; } return 0; } @@ -1426,6 +1428,10 @@ if (shape == NULL) return 0; switch(shape->shape) { + case PCB_PSSH_HSHADOW: +#warning hshadow TODO: slot! + gp_point(ps->x, ps->y, 1, 0); + break; case PCB_PSSH_CIRC: gp_point(ps->x + shape->data.circ.x, ps->y + shape->data.circ.y, shape->data.circ.dia/2, 0); break; Index: trunk/src_plugins/query/query_access.c =================================================================== --- trunk/src_plugins/query/query_access.c (revision 19505) +++ trunk/src_plugins/query/query_access.c (revision 19506) @@ -620,6 +620,7 @@ case PCB_PSSH_POLY: PCB_QRY_RET_STR(res, "polygon"); case PCB_PSSH_LINE: PCB_QRY_RET_STR(res, "line"); case PCB_PSSH_CIRC: PCB_QRY_RET_STR(res, "circle"); + case PCB_PSSH_HSHADOW: PCB_QRY_RET_STR(res, "hshadow"); } } PCB_QRY_RET_STR(res, ""); Index: trunk/src_plugins/teardrops/teardrops.c =================================================================== --- trunk/src_plugins/teardrops/teardrops.c (revision 19505) +++ trunk/src_plugins/teardrops/teardrops.c (revision 19506) @@ -237,6 +237,13 @@ px = ps->x + shp->data.circ.x; py = ps->y + shp->data.circ.y; break; + + case PCB_PSSH_HSHADOW: +#warning hshadow TODO: slot! + thickness = 1; + px = ps->x; + py = ps->y; + break; } spot.X1 = px - 10;