Index: trunk/config.h.in =================================================================== --- trunk/config.h.in (revision 38522) +++ trunk/config.h.in (revision 38523) @@ -60,9 +60,6 @@ print {\n\n/* Define to 1 if you have libxml2 installed. */\n} print_ternary ?libs/sul/libxml2/presents {#define PCB_HAVE_LIBXML2 1} {/* #undef PCB_HAVE_LIBXML2 */} -print {\n\n/* Define to 1 if you have libxml2 installed. */\n} -print_ternary ?/local/pcb/want_font2 {#define PCB_WANT_FONT2 1} {/* #undef PCB_WANT_FONT2 */} - print {\n\n/* Define to 1 if we are using the new polybool lib. */\n} print_ternary ?/local/pcb/want_polybool {#define PCB_WANT_POLYBOOL 1} {/* #undef PCB_WANT_POLYBOOL */} Index: trunk/doc/TODO =================================================================== --- trunk/doc/TODO (revision 38522) +++ trunk/doc/TODO (revision 38523) @@ -15,7 +15,6 @@ ? BUG: start new layout when in font v2 enabled pcb-rnd running font edit mode. Use {w f} to load a font, select font, enter font edit mode, Subsequent fontsave() saves in v1 format [report: Erich] -> can not reproduce -> saving in v1 alone is not a bug: the dialog box always offers you a version selection widget; a bug is when you select a format there and it saves in a different format - - non-bug: drc_query test breaks with font2: text bbox got fixed for unknown chars in font2 (font1 was buggy) [report: Igor2] + BUG: segfault in drc dialog: bug_files/drc1.txt [report: aron] + BUG: bbox used for subc boundary shouldn't include subc-aux vectors (maybe also should be the naked bbox) - this starts to matter below 0805, where the vectors are larger than the fp [report: aron] - FEATURE: attribute propagation from sch-rnd via tEDAx @@ -22,12 +21,10 @@ - device attribute in subcricuits - make a new bom template that includes that - librnd4.1: - - FEATURE: lihata board v9: - - remove PCB_WANT_FONT2, it's the default - - remove --enable-font2 and want_font2 from scconfig and config.h, it's the default + - FEATURE: lihata board v9 + - TODO("font2:") - maybe remove path_to_design_relative() in favor of librnd core/compat_fs.h - rebind Export(): use rnd_act_Export(), remove pcb_act_Export() - - DRC test in make test: the invchar test bbox changes because of a bugfix + FEATURE: bom export: template variable for the list separator (e.g. refdes output); it's space now but sometimes comma is needed [report: Majenko] -> use list_sep = {foo} in your template - DOC: pool node on how to use pixmap for breadboading Index: trunk/scconfig/Rev.h =================================================================== --- trunk/scconfig/Rev.h (revision 38522) +++ trunk/scconfig/Rev.h (revision 38523) @@ -1 +1 @@ -static const int myrev = 38522; +static const int myrev = 38523; Index: trunk/scconfig/Rev.tab =================================================================== --- trunk/scconfig/Rev.tab (revision 38522) +++ trunk/scconfig/Rev.tab (revision 38523) @@ -1,4 +1,4 @@ -38522 configure require librnd >=4.1.0 +38523 configure require librnd >=4.1.0 and enable font2 38351 configure font mode: preview dialog 38025 configure export_bom2: new bom plugin with templates 37808 configure gsch2pcb-rnd removal Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 38522) +++ trunk/scconfig/hooks.c (revision 38523) @@ -37,8 +37,6 @@ {"disable-byaccic", "/local/pcb/want_byaccic", arg_false, "$disable generating language files byaccic/ureglex"}, {"enable-polybool", "/local/pcb/want_polybool", arg_true, "$enable the new polygon clipping library"}, {"disable-polybool", "/local/pcb/want_polybool", arg_false, "$disable the new polygon clipping library"}, - {"enable-font2", "/local/pcb/want_font2", arg_true, "$enable the new font library in librnd; temporary; requires librnd >=4.1.0"}, - {"disable-font2", "/local/pcb/want_font2", arg_false, "$disable the new font library in librnd; temporary; requires librnd >=4.1.0"}, #undef plugin_def #undef plugin_header @@ -109,7 +107,6 @@ put("/local/pcb/want_byaccic", sfalse); put("/local/pcb/want_static", sfalse); put("/local/pcb/want_polybool", sfalse); - put("/local/pcb/want_font2", sfalse); put("/local/pcb/dot_pcb_rnd", ".pcb-rnd"); put("/local/pcb/librnd_prefix", TO_STR(LIBRND_PREFIX)); @@ -179,10 +176,6 @@ } } -/* TODO: remove this; for /local/pcb/want_font2 test */ -extern unsigned long librnd_ver_get(int *major, int *minor, int *patch); - - /* Runs when things should be detected for the target system */ int hook_detect_target() { @@ -197,15 +190,6 @@ if (rnd_hook_detect_sys() != 0) return 1; - if (istrue(get("/local/pcb/want_font2"))) { - int major, minor, patch; - librnd_ver_get(&major, &minor, &patch); - if ((major < 4) || (minor < 1)) { - fprintf(stderr, "configuration error: can't enable font2: requires librnd >=4.1.0\n(You have librnd %d.%d.%d)\n", major, minor, patch); - exit(1); - } - } - if (want_fuse) { require("libs/sul/fuse/*", 0, 0); if (!istrue(get("libs/sul/fuse/presents"))) { Index: trunk/src/Makefile.in =================================================================== --- trunk/src/Makefile.in (revision 38522) +++ trunk/src/Makefile.in (revision 38523) @@ -26,13 +26,6 @@ put /local/pcb/SO {.so} end -# TODO: when removing want_font2 also remove font2_suffix and just hardwire 2 -if /local/pcb/want_font2 then - put /local/pcb/font2_suffix {2} -else - put /local/pcb/font2_suffix {} -end - # These files are to be generated before make dep is run put /local/rnd/DEPDEPS { conf_core_fields.h conf_internal.c defpcb_internal.c buildin.c pcb_menu_default.c } @@ -304,7 +297,7 @@ pcb-rnd$(EXE): $(OBJS) $(OBJS_C99) $(EXEDEPS) $(LIBS_3RD) $(LIBRND_L)/librnd-hid$(SO) $(LIBRND_L)/librnd-poly$(SO) $(LIBRND_L)/librnd-3rd$(SO) $(CC) $(OBJS) $(OBJS_C99) -o pcb-rnd$(EXE) $(LIBS_PRE) \ - -lrnd-hid -lrnd-font@/local/pcb/font2_suffix@ $(POLYCLIP) -lrnd-core -lrnd-3rd \ + -lrnd-hid -lrnd-font2 $(POLYCLIP) -lrnd-core -lrnd-3rd \ $(LDFLAGS) $(LIBS) ### pcb-rnd infra ### Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 38522) +++ trunk/src/draw.c (revision 38523) @@ -1041,14 +1041,6 @@ return buff; } -/* TODO: remove this when font2 is removed and hardwire ,0; this is an extra - rendering options argument in the new API */ -#ifdef PCB_WANT_FONT2 -# define FONT2_TMP1 0, -#else -# define FONT2_TMP1 -#endif - /* vert flip magic: make sure the offset is in-line with the flip and our sick y coords for vertical */ #define PCB_TERM_LABEL_SETUP(label) \ rnd_bool flip_x = rnd_conf.editor.view.flip_x; \ @@ -1057,12 +1049,12 @@ rnd_coord_t w, h, dx, dy; \ double scl = scale/100.0; \ if (vert) { \ - h = rnd_font_string_width(font, FONT2_TMP1 scl, label); \ - w = rnd_font_string_height(font, FONT2_TMP1 scl, label); \ + h = rnd_font_string_width(font, 0, scl, label); \ + w = rnd_font_string_height(font, 0, scl, label); \ } \ else { \ - w = rnd_font_string_width(font, FONT2_TMP1 scl, label); \ - h = rnd_font_string_height(font, FONT2_TMP1 scl, label); \ + w = rnd_font_string_width(font, 0, scl, label); \ + h = rnd_font_string_height(font, 0, scl, label); \ } \ dx = w / 2; \ dy = h / 2; \ Index: trunk/src/font.c =================================================================== --- trunk/src/font.c (revision 38522) +++ trunk/src/font.c (revision 38523) @@ -35,11 +35,7 @@ #include #include -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif +#include #include "font.h" #include "board.h" Index: trunk/src/font.h =================================================================== --- trunk/src/font.h (revision 38522) +++ trunk/src/font.h (revision 38523) @@ -37,13 +37,8 @@ #include "obj_arc.h" #include "obj_arc_list.h" #include +#include -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif - struct pcb_font_s { /* complete set of symbols */ rnd_font_t rnd_font; /* temporary */ }; Index: trunk/src/font_act.c =================================================================== --- trunk/src/font_act.c (revision 38522) +++ trunk/src/font_act.c (revision 38523) @@ -124,11 +124,7 @@ fgw_error_t pcb_act_save_font_to(fgw_arg_t *res, int argc, fgw_arg_t *argv) { -#ifdef PCB_WANT_FONT2 const char *fmts[] = {"lihata font v2", "lihata font v1", NULL}; -#else - const char *fmts[] = {"lihata font v1", NULL}; -#endif const char *fname = NULL, *sid = NULL, *fmt; static char *default_file = NULL; rnd_font_id_t fid; Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 38522) +++ trunk/src/obj_text.c (revision 38523) @@ -56,12 +56,8 @@ #include "obj_line_draw.h" #include "obj_text_draw.h" #include "conf_core.h" +#include -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif TODO("ui_layer parent fix: remove this") @@ -306,13 +302,10 @@ #define text_mirror_bits(t) \ ((PCB_FLAG_TEST(PCB_FLAG_ONSOLDER, (t)) ? PCB_TXT_MIRROR_Y : 0) | ((t)->mirror_x ? PCB_TXT_MIRROR_X : 0)) -#ifdef PCB_WANT_FONT2 #define text_render_bits(t) \ (PCB_FLAG_TEST(PCB_FLAG_ENTITY, (t)) ? RND_FONT_ENTITY : 0) -#else -#define text_render_bits(t) 0 -#endif + pcb_text_t *pcb_text_dup(pcb_layer_t *dst, pcb_text_t *src) { pcb_text_t *t = pcb_text_new_scaled(dst, pcb_font(PCB, src->fid, 1), src->X, src->Y, src->rot, text_mirror_bits(src), src->Scale, src->scale_x, src->scale_y, src->thickness, src->TextString, src->Flags); @@ -451,12 +444,8 @@ if (rendered == NULL) return 0; -#ifdef PCB_WANT_FONT2 - TODO("the second arg 0 may need to benon-zero for &entyiy, depending on Text"); + TODO("font2: the second arg 0 may need to be non-zero for &entity, depending on Text"); ctr = rnd_font_invalid_chars(FontPtr, 0, rendered); -#else - ctr = rnd_font_invalid_chars(FontPtr, rendered); -#endif pcb_text_free_str(Text, rendered); @@ -1177,11 +1166,7 @@ /*** draw ***/ -#ifdef PCB_WANT_FONT2 -# define MAX_SIMPLE_POLY_POINTS RND_FONT2_MAX_SIMPLE_POLY_POINTS -#else -# define MAX_SIMPLE_POLY_POINTS 256 -#endif +#define MAX_SIMPLE_POLY_POINTS RND_FONT2_MAX_SIMPLE_POLY_POINTS void pcb_font_draw_atom(void *cb_ctx, const rnd_glyph_atom_t *a) { @@ -1321,15 +1306,11 @@ cb_ctx = &ucb; } -#ifdef PCB_WANT_FONT2 if (poly_thin) mirror |= RND_FONT_THIN_POLY; if (text_flags & PCB_FLAG_ENTITY) mirror |= RND_FONT_ENTITY; rnd_font_draw_string(font, string, x0, y0, scx, scy, rotdeg, mirror, thickness, min_line_width, tiny, rcb, cb_ctx); -#else - rnd_font_draw_string(font, string, x0, y0, scx, scy, rotdeg, mirror, thickness, min_line_width, poly_thin, tiny, rcb, cb_ctx); -#endif } Index: trunk/src/vtroutestyle.h =================================================================== --- trunk/src/vtroutestyle.h (revision 38522) +++ trunk/src/vtroutestyle.h (revision 38523) @@ -5,13 +5,8 @@ #include #include "attrib.h" #include -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif +#include - /* Elem=RouteStyle; init=0 */ #define PCB_RST_NAME_LEN 32 Index: trunk/src_plugins/fontmode/fontmode.c =================================================================== --- trunk/src_plugins/fontmode/fontmode.c (revision 38522) +++ trunk/src_plugins/fontmode/fontmode.c (revision 38523) @@ -176,13 +176,11 @@ } } -#ifdef PCB_WANT_FONT2 if ((s == 'i') || (s == 'q')) rnd_trace("delta1: %c w=%ld + %ld + %ld=%ld | adv: %d %ld + %ld = %ld\n", s, g->width, g->xdelta, ox, g->width + g->xdelta + ox, g->advance_valid, g->advance, ox, g->advance + ox); if (g->advance_valid) w = g->advance + ox; else -#endif w = g->width + g->xdelta + ox; pcb_line_new_merge(lwidth, w, miny + oy, w, maxy + oy, RND_MIL_TO_COORD(1), RND_MIL_TO_COORD(1), pcb_no_flags()); } @@ -286,7 +284,6 @@ ox = (s % 16 + 1) * CELL_SIZE; g = &font->glyph[s]; -#ifdef PCB_WANT_FONT2 g->advance = x1 - ox; g->advance_valid = 1; if (g->advance > 10) @@ -293,7 +290,7 @@ g->valid = 1; if ((s == 'i') || (s == 'q')) rnd_trace("delta2: %c w=%ld - %ld - %ld=%ld | adv: %ld - %ld = %ld\n", s, x1, ox, g->width, x1-ox-g->width, x1, ox, x1-ox); -#endif + x1 -= ox; g->xdelta = x1 - g->width; @@ -302,7 +299,6 @@ g->valid = 1; } -#ifdef PCB_WANT_FONT2 /* copy metadata */ if (orig_font != NULL) { rnd_font_copy_tables(font, orig_font); @@ -318,7 +314,6 @@ rnd_message(RND_MSG_ERROR, "Original font data not available, some metadata is lost\n(kerning, entities, baseline, tab/line size)\n"); rnd_message(RND_MSG_INFO, "Note: this typically happens if you save to board format\nfrom the font editor and load that board later\nPlease don't do that, it can't retain metadata.\n"); } -#endif rnd_font_normalize(font); } @@ -387,10 +382,8 @@ lwidth = make_layer(pcb, grp[2], "Width"); lgrid = make_layer(pcb, grp[3], "Grid"); -#ifdef PCB_WANT_FONT2 if (font->baseline > 0) lbaslin = make_layer(pcb, grp[3], "Baseline"); -#endif assert(pcb_layergrp_list(pcb, PCB_LYT_SILK, grp, 2) == 2); make_layer(pcb, grp[0], "Silk"); @@ -413,8 +406,6 @@ pcb_line_new_merge(lgrid, 0, y, pcb->hidlib.dwg.X2, y, RND_MIL_TO_COORD(1), RND_MIL_TO_COORD(1), pcb_no_flags()); } - -#ifdef PCB_WANT_FONT2 if (font->baseline > 0) { for (l = 0; l <= PCB_MAX_FONTPOSITION / 16 + 1; l++) { int y = (l + 1) * CELL_SIZE + font->baseline; @@ -421,7 +412,6 @@ pcb_line_new_merge(lbaslin, 0, y, pcb->hidlib.dwg.X2, y, RND_MIL_TO_COORD(0.25), RND_MIL_TO_COORD(1), pcb_no_flags()); } } -#endif RND_ACT_IRES(0); return 0; @@ -713,7 +703,6 @@ static const char pcb_acth_FontBaseline[] = "Change the baseline value and redraw. If there is no baseline, add baseline first."; static fgw_error_t pcb_act_FontBaseline(fgw_arg_t *res, int argc, fgw_arg_t *argv) { -#ifdef PCB_WANT_FONT2 pcb_board_t *pcb = PCB_ACT_BOARD; rnd_font_t *font = pcb_font(pcb, 0, 1); rnd_coord_t delta = 0; @@ -726,11 +715,6 @@ font->baseline = RND_MIL_TO_COORD(50); /* default value that works with the default font */ font->baseline += delta; return pcb_act_FontEdit(res, argc, argv); -#else - rnd_message(RND_MSG_ERROR, "FontBaseline() is not implemented until librnd 4.1.0 (font v2 support)\n"); - RND_ACT_IRES(-1); - return 0; -#endif } rnd_action_t fontmode_action_list[] = { Index: trunk/src_plugins/fontmode/preview.c =================================================================== --- trunk/src_plugins/fontmode/preview.c (revision 38522) +++ trunk/src_plugins/fontmode/preview.c (revision 38523) @@ -33,20 +33,16 @@ #include "font.h" #define RND_TIMED_CHG_TIMEOUT 1000 -#ifdef PCB_WANT_FONT2 #include -#endif typedef struct{ RND_DAD_DECL_NOINIT(dlg) int wprev, wpend; -#ifdef PCB_WANT_FONT2 int wbaseline, wtab_width, wline_height, wentt, wkernt; unsigned geo_changed:1; unsigned ent_changed:1; unsigned kern_changed:1; rnd_timed_chg_t timed_refresh; -#endif int active; /* already open - allow only one instance */ unsigned char *sample; rnd_font_t font; @@ -63,9 +59,7 @@ { fmprv_ctx_t *ctx = caller_data; -#ifdef PCB_WANT_FONT2 rnd_timed_chg_cancel(&ctx->timed_refresh); -#endif rnd_font_free(&ctx->font); RND_DAD_FREE(ctx->dlg); @@ -77,16 +71,13 @@ rnd_font_free(&ctx->font); memset(&ctx->font, 0, sizeof(ctx->font)); /* clear any cache */ editor2font(PCB, &ctx->font, fontedit_src); -#ifdef PCB_WANT_FONT2 + ctx->font.baseline = fontedit_src->baseline; ctx->font.line_height = fontedit_src->line_height; ctx->font.tab_width = fontedit_src->tab_width; rnd_font_copy_tables(&ctx->font, fontedit_src); -#endif - } -#ifdef PCB_WANT_FONT2 static void fmprv_pcb2preview_geo(fmprv_ctx_t *ctx) { rnd_hid_attr_val_t hv; @@ -197,9 +188,7 @@ rnd_gui->attr_dlg_set_value(ctx->dlg_hid_ctx, ctx->wkernt, &hv); free(cursor_path); } - } -#endif static void fmprv_pcb2preview(fmprv_ctx_t *ctx) @@ -211,7 +200,6 @@ fmprv_pcb2preview_sample(ctx); -#ifdef PCB_WANT_FONT2 if (ctx->geo_changed) fmprv_pcb2preview_geo(ctx); if (ctx->ent_changed) @@ -219,8 +207,6 @@ if (ctx->kern_changed) fmprv_pcb2preview_kerning(ctx); -#endif - rnd_gui->attr_dlg_widget_hide(ctx->dlg_hid_ctx, ctx->wpend, 1); rnd_dad_preview_zoomto(&ctx->dlg[ctx->wprev], NULL); /* redraw */ } @@ -236,11 +222,7 @@ fmprv_ctx_t *ctx = prv->user_ctx; rnd_xform_t xform = {0}; pcb_draw_info_t info = {0}; -#ifdef PCB_WANT_FONT2 rnd_font_render_opts_t opts = RND_FONT_HTAB | RND_FONT_ENTITY | RND_FONT_MULTI_LINE; -#else - int opts = 0; -#endif info.xform = &xform; pcb_draw_setup_default_gui_xform(&xform); @@ -248,28 +230,19 @@ rnd_render->set_color(pcb_draw_out.fgGC, rnd_color_black); -#ifdef PCB_WANT_FONT2 rnd_font_draw_string(&ctx->font, ctx->sample, 0, 0, 1.0, 1.0, 0.0, opts, 0, 0, RND_FONT_TINY_ACCURATE, pcb_font_draw_atom, &info); -#else - rnd_font_draw_string(&ctx->font, ctx->sample, 0, 0, - 1.0, 1.0, 0.0, - opts, 0, 0, 0, RND_FONT_TINY_ACCURATE, pcb_font_draw_atom, &info); -#endif } static void timed_refresh(fmprv_ctx_t *ctx) { -#ifdef PCB_WANT_FONT2 rnd_gui->attr_dlg_widget_hide(ctx->dlg_hid_ctx, ctx->wpend, 0); rnd_timed_chg_schedule(&ctx->timed_refresh); -#endif } static void refresh_cb(void *hid_ctx, void *caller_data, rnd_hid_attribute_t *attr) { -#ifdef PCB_WANT_FONT2 fmprv_ctx_t *ctx = caller_data; int widx = attr - ctx->dlg; @@ -289,10 +262,8 @@ return; timed_refresh(ctx); -#endif } -#ifdef PCB_WANT_FONT2 typedef struct { char *name; rnd_coord_t val; @@ -523,9 +494,7 @@ edit2_kern(ctx, ed2, r->cell[0]); } -#endif - static void sample_text_changed_cb(void *hid_ctx, void *caller_data, rnd_hid_attribute_t *atxt) { fmprv_ctx_t *ctx = caller_data; @@ -579,9 +548,7 @@ if (fmprv_ctx.sample == NULL) fmprv_ctx.sample = (unsigned char *)rnd_strdup("Sample string\nin multiple\nlines."); -#ifdef PCB_WANT_FONT2 rnd_timed_chg_init(&fmprv_ctx.timed_refresh, fmprv_pcb2preview_timed, &fmprv_ctx); -#endif RND_DAD_BEGIN_VPANE(fmprv_ctx.dlg, "vert_main"); RND_DAD_BEGIN_VBOX(fmprv_ctx.dlg); @@ -602,9 +569,6 @@ RND_DAD_BEGIN_TABLE(fmprv_ctx.dlg, 2); /* geometry */ RND_DAD_COMPFLAG(fmprv_ctx.dlg, RND_HATF_EXPFILL); -#ifndef PCB_WANT_FONT2 - RND_DAD_LABEL(fmprv_ctx.dlg, "Not supported in font v1"); -#else RND_DAD_LABEL(fmprv_ctx.dlg, "Baseline:"); RND_DAD_COORD(fmprv_ctx.dlg); fmprv_ctx.wbaseline = RND_DAD_CURRENT(fmprv_ctx.dlg); @@ -617,14 +581,10 @@ RND_DAD_COORD(fmprv_ctx.dlg); fmprv_ctx.wtab_width = RND_DAD_CURRENT(fmprv_ctx.dlg); RND_DAD_CHANGE_CB(fmprv_ctx.dlg, refresh_cb); -#endif RND_DAD_END(fmprv_ctx.dlg); RND_DAD_BEGIN_VBOX(fmprv_ctx.dlg); /* entities */ RND_DAD_COMPFLAG(fmprv_ctx.dlg, RND_HATF_EXPFILL); -#ifndef PCB_WANT_FONT2 - RND_DAD_LABEL(fmprv_ctx.dlg, "Not supported in font v1"); -#else RND_DAD_TREE(fmprv_ctx.dlg, 2, 0, ent_hdr); RND_DAD_COMPFLAG(fmprv_ctx.dlg, RND_HATF_EXPFILL | RND_HATF_SCROLL); fmprv_ctx.wentt = RND_DAD_CURRENT(fmprv_ctx.dlg); @@ -637,14 +597,10 @@ RND_DAD_END(fmprv_ctx.dlg); RND_DAD_LABEL(fmprv_ctx.dlg, "(Key format: case sensitive entity name without the &; wrapping)"); -#endif RND_DAD_END(fmprv_ctx.dlg); RND_DAD_BEGIN_VBOX(fmprv_ctx.dlg); /* kerning */ RND_DAD_COMPFLAG(fmprv_ctx.dlg, RND_HATF_EXPFILL); -#ifndef PCB_WANT_FONT2 - RND_DAD_LABEL(fmprv_ctx.dlg, "Not supported in font v1"); -#else RND_DAD_TREE(fmprv_ctx.dlg, 2, 0, kern_hdr); RND_DAD_COMPFLAG(fmprv_ctx.dlg, RND_HATF_EXPFILL | RND_HATF_SCROLL); fmprv_ctx.wkernt = RND_DAD_CURRENT(fmprv_ctx.dlg); @@ -655,7 +611,6 @@ RND_DAD_CHANGE_CB(fmprv_ctx.dlg, kern_edit_cb); RND_DAD_LABEL(fmprv_ctx.dlg, "(Key format: char1-char2, e.g. A-V or &6b-V or &6b-&a1 in &hh hex glyph\nindex form; multiple keys: space separated list like a-b c-d e-f)"); RND_DAD_END(fmprv_ctx.dlg); -#endif RND_DAD_END(fmprv_ctx.dlg); RND_DAD_END(fmprv_ctx.dlg); @@ -667,9 +622,7 @@ RND_DAD_NEW("font_mode_preview", fmprv_ctx.dlg, "Font editor: preview", &fmprv_ctx, rnd_false, fmprv_close_cb); -#ifdef PCB_WANT_FONT2 fmprv_ctx.geo_changed = fmprv_ctx.ent_changed = fmprv_ctx.kern_changed = 1; -#endif fmprv_pcb2preview(&fmprv_ctx); } Index: trunk/src_plugins/import_ttf/ttf.c =================================================================== --- trunk/src_plugins/import_ttf/ttf.c (revision 38522) +++ trunk/src_plugins/import_ttf/ttf.c (revision 38523) @@ -51,11 +51,7 @@ #include "menu_internal.c" -#ifdef PCB_WANT_FONT2 -# define MAX_SIMPLE_POLY_POINTS RND_FONT2_MAX_SIMPLE_POLY_POINTS -#else -# define MAX_SIMPLE_POLY_POINTS 256 -#endif +#define MAX_SIMPLE_POLY_POINTS RND_FONT2_MAX_SIMPLE_POLY_POINTS static void str_init(pcb_ttf_stroke_t *s) { Index: trunk/src_plugins/io_lihata/read.c =================================================================== --- trunk/src_plugins/io_lihata/read.c (revision 38522) +++ trunk/src_plugins/io_lihata/read.c (revision 38523) @@ -2195,11 +2195,7 @@ #define HASH_GET(hash, name) hash_get(hash, name, 0) #define RND_LHT_ERROR iolht_error -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif +#include #undef PARSE_COORD #undef PARSE_DOUBLE @@ -2234,12 +2230,10 @@ f = &fk->dflt; } -#ifdef PCB_WANT_FONT2 if (rctx->rdver >= 9) f->filever = 2; else f->filever = 1; -#endif if (rnd_font_lht_parse_font(f, n) != 0) return -1; Index: trunk/src_plugins/io_lihata/write.c =================================================================== --- trunk/src_plugins/io_lihata/write.c (revision 38522) +++ trunk/src_plugins/io_lihata/write.c (revision 38523) @@ -1439,7 +1439,6 @@ lht_dom_hash_put(ndt, build_textf("height", CFMT, g->height)); lht_dom_hash_put(ndt, build_textf("delta", CFMT, g->xdelta)); -#ifdef PCB_WANT_FONT2 if (g->advance_valid) { if (wrver >= 9) lht_dom_hash_put(ndt, build_textf("advance", CFMT, g->advance)); @@ -1446,7 +1445,6 @@ else pcb_io_incompat_save(NULL, NULL, "font", "lihata board before v9 did not have font glyph advance", "glyph width and delta are saved; there may be slight variations in glyph spacing (this error should be in the range of nanometers)"); } -#endif lst = lht_dom_node_alloc(LHT_LIST, "objects"); lht_dom_hash_put(ndt, lst); @@ -1461,7 +1459,6 @@ return ndt; } -#ifdef PCB_WANT_FONT2 static lht_node_t *build_entity_tbl(rnd_font_t *font) { lht_node_t *ntbl; @@ -1506,7 +1503,6 @@ gds_uninit(&tmp); return ntbl; } -#endif static lht_node_t *build_font_rnd(rnd_font_t *font) { @@ -1529,7 +1525,6 @@ if (font->name != NULL) lht_dom_hash_put(ndt, build_text("name", font->name)); -#ifdef PCB_WANT_FONT2 /* font v2 fields, avaliable from lihata board 9 */ if (wrver >= 9) { /* fields always saved */ @@ -1575,7 +1570,6 @@ if ((font->kerning_tbl_valid) && (font->kerning_tbl.used > 0)) pcb_io_incompat_save(NULL, NULL, "font", "lihata board before v9 did not have font kerning table", "Kerning table is lost, inter-glyph spacing will change when rendering this font"); } -#endif syms = lht_dom_node_alloc(LHT_HASH, "symbols"); lht_dom_hash_put(ndt, syms); Index: trunk/src_plugins/io_pcb/parse_y.c =================================================================== --- trunk/src_plugins/io_pcb/parse_y.c (revision 38522) +++ trunk/src_plugins/io_pcb/parse_y.c (revision 38523) @@ -126,11 +126,7 @@ #include #include "src_plugins/lib_compat_help/pstk_compat.h" #include "netlist.h" -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif +#include #include "rst_parse.c" @@ -199,7 +195,7 @@ #include "parse_y.h" -#line 203 "parse_y.c" /* yacc.c:337 */ +#line 199 "parse_y.c" /* yacc.c:337 */ # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -293,7 +289,7 @@ union YYSTYPE { -#line 131 "parse_y.y" /* yacc.c:352 */ +#line 127 "parse_y.y" /* yacc.c:352 */ int integer; double number; @@ -301,7 +297,7 @@ pcb_flag_t flagtype; PLMeasure measure; -#line 305 "parse_y.c" /* yacc.c:352 */ +#line 301 "parse_y.c" /* yacc.c:352 */ }; typedef union YYSTYPE YYSTYPE; @@ -609,28 +605,28 @@ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 158, 158, 159, 160, 161, 165, 165, 239, 239, - 264, 264, 283, 284, 289, 289, 309, 311, 321, 328, - 335, 345, 346, 347, 350, 358, 373, 388, 392, 396, - 399, 401, 408, 410, 418, 420, 421, 422, 426, 436, - 447, 459, 463, 468, 472, 476, 480, 489, 498, 502, - 503, 507, 508, 512, 513, 513, 514, 515, 517, 517, - 524, 528, 529, 530, 531, 532, 537, 547, 558, 568, - 578, 594, 599, 609, 608, 644, 645, 649, 650, 654, - 655, 656, 657, 658, 659, 661, 666, 667, 668, 669, - 669, 670, 674, 683, 692, 703, 712, 721, 730, 740, - 758, 788, 787, 826, 828, 833, 832, 839, 841, 846, - 850, 857, 858, 859, 860, 861, 869, 868, 887, 886, - 905, 904, 925, 923, 947, 945, 970, 971, 975, 976, - 977, 978, 979, 981, 986, 991, 996, 1001, 1006, 1011, - 1011, 1015, 1016, 1020, 1021, 1022, 1023, 1024, 1026, 1032, - 1039, 1044, 1049, 1049, 1055, 1068, 1080, 1091, 1107, 1126, - 1141, 1154, 1178, 1189, 1200, 1201, 1205, 1206, 1209, 1211, - 1227, 1246, 1247, 1250, 1252, 1253, 1258, 1265, 1271, 1272, - 1276, 1281, 1282, 1286, 1287, 1293, 1292, 1304, 1305, 1309, - 1310, 1314, 1331, 1332, 1336, 1341, 1342, 1346, 1347, 1362, - 1363, 1364, 1368, 1381, 1382, 1386, 1387, 1392, 1393, 1394, - 1395, 1396, 1397, 1398, 1399, 1400, 1401 + 0, 154, 154, 155, 156, 157, 161, 161, 235, 235, + 260, 260, 279, 280, 285, 285, 305, 307, 317, 324, + 331, 341, 342, 343, 346, 354, 369, 384, 388, 392, + 395, 397, 404, 406, 414, 416, 417, 418, 422, 432, + 443, 455, 459, 464, 468, 472, 476, 485, 494, 498, + 499, 503, 504, 508, 509, 509, 510, 511, 513, 513, + 520, 524, 525, 526, 527, 528, 533, 543, 554, 564, + 574, 590, 595, 605, 604, 640, 641, 645, 646, 650, + 651, 652, 653, 654, 655, 657, 662, 663, 664, 665, + 665, 666, 670, 679, 688, 699, 708, 717, 726, 736, + 754, 784, 783, 822, 824, 829, 828, 835, 837, 842, + 846, 853, 854, 855, 856, 857, 865, 864, 883, 882, + 901, 900, 921, 919, 943, 941, 966, 967, 971, 972, + 973, 974, 975, 977, 982, 987, 992, 997, 1002, 1007, + 1007, 1011, 1012, 1016, 1017, 1018, 1019, 1020, 1022, 1028, + 1035, 1040, 1045, 1045, 1051, 1064, 1076, 1087, 1103, 1122, + 1137, 1150, 1174, 1185, 1196, 1197, 1201, 1202, 1205, 1207, + 1223, 1242, 1243, 1246, 1248, 1249, 1254, 1261, 1267, 1268, + 1272, 1277, 1278, 1282, 1283, 1289, 1288, 1300, 1301, 1305, + 1306, 1310, 1327, 1328, 1332, 1337, 1338, 1342, 1343, 1358, + 1359, 1360, 1364, 1377, 1378, 1382, 1383, 1388, 1389, 1390, + 1391, 1392, 1393, 1394, 1395, 1396, 1397 }; #endif @@ -1818,13 +1814,13 @@ switch (yyn) { case 5: -#line 161 "parse_y.y" /* yacc.c:1652 */ +#line 157 "parse_y.y" /* yacc.c:1652 */ { YYABORT; } -#line 1824 "parse_y.c" /* yacc.c:1652 */ +#line 1820 "parse_y.c" /* yacc.c:1652 */ break; case 6: -#line 165 "parse_y.y" /* yacc.c:1652 */ +#line 161 "parse_y.y" /* yacc.c:1652 */ { /* reset flags for 'used layers'; * init font and data pointers @@ -1847,11 +1843,11 @@ layer_group_string = NULL; old_fmt = 0; } -#line 1851 "parse_y.c" /* yacc.c:1652 */ +#line 1847 "parse_y.c" /* yacc.c:1652 */ break; case 7: -#line 201 "parse_y.y" /* yacc.c:1652 */ +#line 197 "parse_y.y" /* yacc.c:1652 */ { pcb_board_t *pcb_save = PCB; if ((yy_settings_dest != RND_CFR_invalid) && (layer_group_string != NULL)) @@ -1889,18 +1885,18 @@ PCB_ENDALL_LOOP; PCB = pcb_save; } -#line 1893 "parse_y.c" /* yacc.c:1652 */ +#line 1889 "parse_y.c" /* yacc.c:1652 */ break; case 8: -#line 239 "parse_y.y" /* yacc.c:1652 */ +#line 235 "parse_y.y" /* yacc.c:1652 */ { PreLoadElementPCB (); layer_group_string = NULL; } -#line 1900 "parse_y.c" /* yacc.c:1652 */ +#line 1896 "parse_y.c" /* yacc.c:1652 */ break; case 9: -#line 242 "parse_y.y" /* yacc.c:1652 */ +#line 238 "parse_y.y" /* yacc.c:1652 */ { LayerFlag[0] = rnd_true; LayerFlag[1] = rnd_true; if (yyElemFixLayers) { @@ -1920,11 +1916,11 @@ } PostLoadElementPCB (); } -#line 1924 "parse_y.c" /* yacc.c:1652 */ +#line 1920 "parse_y.c" /* yacc.c:1652 */ break; case 10: -#line 264 "parse_y.y" /* yacc.c:1652 */ +#line 260 "parse_y.y" /* yacc.c:1652 */ { /* reset flags for 'used layers'; * init font and data pointers @@ -1940,11 +1936,11 @@ LayerFlag[i] = rnd_false; yyData->LayerN = 0; } -#line 1944 "parse_y.c" /* yacc.c:1652 */ +#line 1940 "parse_y.c" /* yacc.c:1652 */ break; case 14: -#line 289 "parse_y.y" /* yacc.c:1652 */ +#line 285 "parse_y.y" /* yacc.c:1652 */ { /* mark all symbols invalid */ if (!yyRndFont) @@ -1958,20 +1954,20 @@ } *yyFontkitValid = rnd_false; } -#line 1962 "parse_y.c" /* yacc.c:1652 */ +#line 1958 "parse_y.c" /* yacc.c:1652 */ break; case 15: -#line 303 "parse_y.y" /* yacc.c:1652 */ +#line 299 "parse_y.y" /* yacc.c:1652 */ { *yyFontkitValid = rnd_true; rnd_font_normalize_pcb_rnd(yyRndFont); } -#line 1971 "parse_y.c" /* yacc.c:1652 */ +#line 1967 "parse_y.c" /* yacc.c:1652 */ break; case 17: -#line 312 "parse_y.y" /* yacc.c:1652 */ +#line 308 "parse_y.y" /* yacc.c:1652 */ { if (check_file_version ((yyvsp[-1].integer)) != 0) { @@ -1978,11 +1974,11 @@ YYABORT; } } -#line 1982 "parse_y.c" /* yacc.c:1652 */ +#line 1978 "parse_y.c" /* yacc.c:1652 */ break; case 18: -#line 322 "parse_y.y" /* yacc.c:1652 */ +#line 318 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.name = (yyvsp[-1].string); yyPCB->hidlib.dwg.X2 = RND_MAX_COORD; @@ -1989,11 +1985,11 @@ yyPCB->hidlib.dwg.Y2 = RND_MAX_COORD; old_fmt = 1; } -#line 1993 "parse_y.c" /* yacc.c:1652 */ +#line 1989 "parse_y.c" /* yacc.c:1652 */ break; case 19: -#line 329 "parse_y.y" /* yacc.c:1652 */ +#line 325 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.name = (yyvsp[-3].string); yyPCB->hidlib.dwg.X2 = OU ((yyvsp[-2].measure)); @@ -2000,11 +1996,11 @@ yyPCB->hidlib.dwg.Y2 = OU ((yyvsp[-1].measure)); old_fmt = 1; } -#line 2004 "parse_y.c" /* yacc.c:1652 */ +#line 2000 "parse_y.c" /* yacc.c:1652 */ break; case 20: -#line 336 "parse_y.y" /* yacc.c:1652 */ +#line 332 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.name = (yyvsp[-3].string); yyPCB->hidlib.dwg.X2 = NU ((yyvsp[-2].measure)); @@ -2011,21 +2007,21 @@ yyPCB->hidlib.dwg.Y2 = NU ((yyvsp[-1].measure)); old_fmt = 0; } -#line 2015 "parse_y.c" /* yacc.c:1652 */ +#line 2011 "parse_y.c" /* yacc.c:1652 */ break; case 24: -#line 351 "parse_y.y" /* yacc.c:1652 */ +#line 347 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.grid = OU ((yyvsp[-3].measure)); yyPCB->hidlib.grid_ox = OU ((yyvsp[-2].measure)); yyPCB->hidlib.grid_oy = OU ((yyvsp[-1].measure)); } -#line 2025 "parse_y.c" /* yacc.c:1652 */ +#line 2021 "parse_y.c" /* yacc.c:1652 */ break; case 25: -#line 359 "parse_y.y" /* yacc.c:1652 */ +#line 355 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.grid = OU ((yyvsp[-4].measure)); yyPCB->hidlib.grid_ox = OU ((yyvsp[-3].measure)); @@ -2037,11 +2033,11 @@ rnd_conf_set(yy_settings_dest, "editor/draw_grid", -1, "false", RND_POL_OVERWRITE); } } -#line 2041 "parse_y.c" /* yacc.c:1652 */ +#line 2037 "parse_y.c" /* yacc.c:1652 */ break; case 26: -#line 374 "parse_y.y" /* yacc.c:1652 */ +#line 370 "parse_y.y" /* yacc.c:1652 */ { yyPCB->hidlib.grid = NU ((yyvsp[-4].measure)); yyPCB->hidlib.grid_ox = NU ((yyvsp[-3].measure)); @@ -2053,46 +2049,46 @@ rnd_conf_set(yy_settings_dest, "editor/draw_grid", -1, "false", RND_POL_OVERWRITE); } } -#line 2057 "parse_y.c" /* yacc.c:1652 */ +#line 2053 "parse_y.c" /* yacc.c:1652 */ break; case 27: -#line 389 "parse_y.y" /* yacc.c:1652 */ +#line 385 "parse_y.y" /* yacc.c:1652 */ { /* Not loading cursor position and zoom anymore */ } -#line 2065 "parse_y.c" /* yacc.c:1652 */ +#line 2061 "parse_y.c" /* yacc.c:1652 */ break; case 28: -#line 393 "parse_y.y" /* yacc.c:1652 */ +#line 389 "parse_y.y" /* yacc.c:1652 */ { /* Not loading cursor position and zoom anymore */ } -#line 2073 "parse_y.c" /* yacc.c:1652 */ +#line 2069 "parse_y.c" /* yacc.c:1652 */ break; case 31: -#line 402 "parse_y.y" /* yacc.c:1652 */ +#line 398 "parse_y.y" /* yacc.c:1652 */ { /* Read in cmil^2 for now; in future this should be a noop. */ load_meta_float("design/poly_isle_area", RND_MIL_TO_COORD(RND_MIL_TO_COORD ((yyvsp[-1].number)) / 100.0) / 100.0); } -#line 2082 "parse_y.c" /* yacc.c:1652 */ +#line 2078 "parse_y.c" /* yacc.c:1652 */ break; case 33: -#line 411 "parse_y.y" /* yacc.c:1652 */ +#line 407 "parse_y.y" /* yacc.c:1652 */ { yyPCB->ThermScale = (yyvsp[-1].number); if (yyPCB->ThermScale < 0.01) rnd_message(RND_MSG_ERROR, "Your ThermalScale is too small. This will probably cause problems in calculating thermals.\n"); } -#line 2092 "parse_y.c" /* yacc.c:1652 */ +#line 2088 "parse_y.c" /* yacc.c:1652 */ break; case 38: -#line 427 "parse_y.y" /* yacc.c:1652 */ +#line 423 "parse_y.y" /* yacc.c:1652 */ { load_meta_coord("design/bloat", NU((yyvsp[-3].measure))); load_meta_coord("design/shrink", NU((yyvsp[-2].measure))); @@ -2099,11 +2095,11 @@ load_meta_coord("design/min_wid", NU((yyvsp[-1].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-1].measure))); } -#line 2103 "parse_y.c" /* yacc.c:1652 */ +#line 2099 "parse_y.c" /* yacc.c:1652 */ break; case 39: -#line 437 "parse_y.y" /* yacc.c:1652 */ +#line 433 "parse_y.y" /* yacc.c:1652 */ { load_meta_coord("design/bloat", NU((yyvsp[-4].measure))); load_meta_coord("design/shrink", NU((yyvsp[-3].measure))); @@ -2111,11 +2107,11 @@ load_meta_coord("design/min_slk", NU((yyvsp[-1].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-2].measure))); } -#line 2115 "parse_y.c" /* yacc.c:1652 */ +#line 2111 "parse_y.c" /* yacc.c:1652 */ break; case 40: -#line 448 "parse_y.y" /* yacc.c:1652 */ +#line 444 "parse_y.y" /* yacc.c:1652 */ { load_meta_coord("design/bloat", NU((yyvsp[-6].measure))); load_meta_coord("design/shrink", NU((yyvsp[-5].measure))); @@ -2124,36 +2120,36 @@ load_meta_coord("design/min_drill", NU((yyvsp[-2].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-1].measure))); } -#line 2128 "parse_y.c" /* yacc.c:1652 */ +#line 2124 "parse_y.c" /* yacc.c:1652 */ break; case 41: -#line 460 "parse_y.y" /* yacc.c:1652 */ +#line 456 "parse_y.y" /* yacc.c:1652 */ { yy_pcb_flags = pcb_flag_make((yyvsp[-1].integer) & PCB_FLAGS); } -#line 2136 "parse_y.c" /* yacc.c:1652 */ +#line 2132 "parse_y.c" /* yacc.c:1652 */ break; case 42: -#line 464 "parse_y.y" /* yacc.c:1652 */ +#line 460 "parse_y.y" /* yacc.c:1652 */ { yy_pcb_flags = pcb_strflg_board_s2f((yyvsp[-1].string), yyerror); free((yyvsp[-1].string)); } -#line 2145 "parse_y.c" /* yacc.c:1652 */ +#line 2141 "parse_y.c" /* yacc.c:1652 */ break; case 44: -#line 473 "parse_y.y" /* yacc.c:1652 */ +#line 469 "parse_y.y" /* yacc.c:1652 */ { layer_group_string = (yyvsp[-1].string); } -#line 2153 "parse_y.c" /* yacc.c:1652 */ +#line 2149 "parse_y.c" /* yacc.c:1652 */ break; case 46: -#line 481 "parse_y.y" /* yacc.c:1652 */ +#line 477 "parse_y.y" /* yacc.c:1652 */ { if (pcb_route_string_parse(yyPCB->Data, (yyvsp[-1].string), &yyPCB->RouteStyle, "mil")) { @@ -2162,11 +2158,11 @@ } free((yyvsp[-1].string)); } -#line 2166 "parse_y.c" /* yacc.c:1652 */ +#line 2162 "parse_y.c" /* yacc.c:1652 */ break; case 47: -#line 490 "parse_y.y" /* yacc.c:1652 */ +#line 486 "parse_y.y" /* yacc.c:1652 */ { if (pcb_route_string_parse(yyPCB->Data, ((yyvsp[-1].string) == NULL ? "" : (yyvsp[-1].string)), &yyPCB->RouteStyle, "cmil")) { @@ -2175,17 +2171,17 @@ } free((yyvsp[-1].string)); } -#line 2179 "parse_y.c" /* yacc.c:1652 */ +#line 2175 "parse_y.c" /* yacc.c:1652 */ break; case 54: -#line 513 "parse_y.y" /* yacc.c:1652 */ +#line 509 "parse_y.y" /* yacc.c:1652 */ { attr_list = & yyPCB->Attributes; } -#line 2185 "parse_y.c" /* yacc.c:1652 */ +#line 2181 "parse_y.c" /* yacc.c:1652 */ break; case 58: -#line 517 "parse_y.y" /* yacc.c:1652 */ +#line 513 "parse_y.y" /* yacc.c:1652 */ { /* clear pointer to force memory allocation by * the appropriate subroutine @@ -2192,57 +2188,57 @@ */ yysubc = NULL; } -#line 2196 "parse_y.c" /* yacc.c:1652 */ +#line 2192 "parse_y.c" /* yacc.c:1652 */ break; case 60: -#line 524 "parse_y.y" /* yacc.c:1652 */ +#line 520 "parse_y.y" /* yacc.c:1652 */ { YYABORT; } -#line 2202 "parse_y.c" /* yacc.c:1652 */ +#line 2198 "parse_y.c" /* yacc.c:1652 */ break; case 66: -#line 538 "parse_y.y" /* yacc.c:1652 */ +#line 534 "parse_y.y" /* yacc.c:1652 */ { pcb_old_via_new(yyData, -1, NU ((yyvsp[-8].measure)), NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), (yyvsp[-2].string), (yyvsp[-1].flagtype)); free ((yyvsp[-2].string)); } -#line 2212 "parse_y.c" /* yacc.c:1652 */ +#line 2208 "parse_y.c" /* yacc.c:1652 */ break; case 67: -#line 548 "parse_y.y" /* yacc.c:1652 */ +#line 544 "parse_y.y" /* yacc.c:1652 */ { pcb_old_via_new(yyData, -1, OU ((yyvsp[-8].measure)), OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2222 "parse_y.c" /* yacc.c:1652 */ +#line 2218 "parse_y.c" /* yacc.c:1652 */ break; case 68: -#line 559 "parse_y.y" /* yacc.c:1652 */ +#line 555 "parse_y.y" /* yacc.c:1652 */ { pcb_old_via_new(yyData, -1, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-5].measure)) + OU((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2232 "parse_y.c" /* yacc.c:1652 */ +#line 2228 "parse_y.c" /* yacc.c:1652 */ break; case 69: -#line 569 "parse_y.y" /* yacc.c:1652 */ +#line 565 "parse_y.y" /* yacc.c:1652 */ { pcb_old_via_new(yyData, -1, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), 2*PCB_GROUNDPLANEFRAME, OU((yyvsp[-4].measure)) + 2*PCB_MASKFRAME, OU ((yyvsp[-3].measure)), (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2242 "parse_y.c" /* yacc.c:1652 */ +#line 2238 "parse_y.c" /* yacc.c:1652 */ break; case 70: -#line 579 "parse_y.y" /* yacc.c:1652 */ +#line 575 "parse_y.y" /* yacc.c:1652 */ { rnd_coord_t hole = (OU((yyvsp[-3].measure)) * PCB_DEFAULT_DRILLINGHOLE); @@ -2255,29 +2251,29 @@ OU((yyvsp[-3].measure)) + 2*PCB_MASKFRAME, hole, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2259 "parse_y.c" /* yacc.c:1652 */ +#line 2255 "parse_y.c" /* yacc.c:1652 */ break; case 71: -#line 595 "parse_y.y" /* yacc.c:1652 */ +#line 591 "parse_y.y" /* yacc.c:1652 */ { pcb_rat_new(yyData, -1, NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), (yyvsp[-5].integer), (yyvsp[-2].integer), conf_core.appearance.rat_thickness, (yyvsp[-1].flagtype), NULL, NULL); } -#line 2268 "parse_y.c" /* yacc.c:1652 */ +#line 2264 "parse_y.c" /* yacc.c:1652 */ break; case 72: -#line 600 "parse_y.y" /* yacc.c:1652 */ +#line 596 "parse_y.y" /* yacc.c:1652 */ { pcb_rat_new(yyData, -1, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), (yyvsp[-5].integer), (yyvsp[-2].integer), conf_core.appearance.rat_thickness, pcb_flag_old((yyvsp[-1].integer)), NULL, NULL); } -#line 2277 "parse_y.c" /* yacc.c:1652 */ +#line 2273 "parse_y.c" /* yacc.c:1652 */ break; case 73: -#line 609 "parse_y.y" /* yacc.c:1652 */ +#line 605 "parse_y.y" /* yacc.c:1652 */ { if ((yyvsp[-4].integer) <= 0 || (yyvsp[-4].integer) > PCB_MAX_LAYER) { @@ -2309,44 +2305,44 @@ if ((yyvsp[-2].string) != NULL) free((yyvsp[-2].string)); } -#line 2313 "parse_y.c" /* yacc.c:1652 */ +#line 2309 "parse_y.c" /* yacc.c:1652 */ break; case 85: -#line 662 "parse_y.y" /* yacc.c:1652 */ +#line 658 "parse_y.y" /* yacc.c:1652 */ { pcb_poly_new_from_rectangle(Layer, OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-5].measure)) + OU ((yyvsp[-3].measure)), OU ((yyvsp[-4].measure)) + OU ((yyvsp[-2].measure)), 0, pcb_flag_old((yyvsp[-1].integer))); } -#line 2322 "parse_y.c" /* yacc.c:1652 */ +#line 2318 "parse_y.c" /* yacc.c:1652 */ break; case 89: -#line 669 "parse_y.y" /* yacc.c:1652 */ +#line 665 "parse_y.y" /* yacc.c:1652 */ { attr_list = & Layer->Attributes; } -#line 2328 "parse_y.c" /* yacc.c:1652 */ +#line 2324 "parse_y.c" /* yacc.c:1652 */ break; case 92: -#line 675 "parse_y.y" /* yacc.c:1652 */ +#line 671 "parse_y.y" /* yacc.c:1652 */ { pcb_line_new(Layer, NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), NU ((yyvsp[-2].measure)), (yyvsp[-1].flagtype)); } -#line 2337 "parse_y.c" /* yacc.c:1652 */ +#line 2333 "parse_y.c" /* yacc.c:1652 */ break; case 93: -#line 684 "parse_y.y" /* yacc.c:1652 */ +#line 680 "parse_y.y" /* yacc.c:1652 */ { pcb_line_new(Layer, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), OU ((yyvsp[-2].measure)), pcb_flag_old((yyvsp[-1].integer))); } -#line 2346 "parse_y.c" /* yacc.c:1652 */ +#line 2342 "parse_y.c" /* yacc.c:1652 */ break; case 94: -#line 693 "parse_y.y" /* yacc.c:1652 */ +#line 689 "parse_y.y" /* yacc.c:1652 */ { /* eliminate old-style rat-lines */ if ((IV ((yyvsp[-1].measure)) & PCB_FLAG_RAT) == 0) @@ -2353,48 +2349,48 @@ pcb_line_new(Layer, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), OU ((yyvsp[-2].measure)), 200*PCB_GROUNDPLANEFRAME, pcb_flag_old(IV ((yyvsp[-1].measure)))); } -#line 2357 "parse_y.c" /* yacc.c:1652 */ +#line 2353 "parse_y.c" /* yacc.c:1652 */ break; case 95: -#line 704 "parse_y.y" /* yacc.c:1652 */ +#line 700 "parse_y.y" /* yacc.c:1652 */ { pcb_arc_new(Layer, NU ((yyvsp[-9].measure)), NU ((yyvsp[-8].measure)), NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), (yyvsp[-3].number), (yyvsp[-2].number), NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), (yyvsp[-1].flagtype), rnd_true); } -#line 2366 "parse_y.c" /* yacc.c:1652 */ +#line 2362 "parse_y.c" /* yacc.c:1652 */ break; case 96: -#line 713 "parse_y.y" /* yacc.c:1652 */ +#line 709 "parse_y.y" /* yacc.c:1652 */ { pcb_arc_new(Layer, OU ((yyvsp[-9].measure)), OU ((yyvsp[-8].measure)), OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), (yyvsp[-3].number), (yyvsp[-2].number), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), pcb_flag_old((yyvsp[-1].integer)), rnd_true); } -#line 2375 "parse_y.c" /* yacc.c:1652 */ +#line 2371 "parse_y.c" /* yacc.c:1652 */ break; case 97: -#line 722 "parse_y.y" /* yacc.c:1652 */ +#line 718 "parse_y.y" /* yacc.c:1652 */ { pcb_arc_new(Layer, OU ((yyvsp[-8].measure)), OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-6].measure)), IV ((yyvsp[-3].measure)), (yyvsp[-2].number), OU ((yyvsp[-4].measure)), 200*PCB_GROUNDPLANEFRAME, pcb_flag_old((yyvsp[-1].integer)), rnd_true); } -#line 2384 "parse_y.c" /* yacc.c:1652 */ +#line 2380 "parse_y.c" /* yacc.c:1652 */ break; case 98: -#line 731 "parse_y.y" /* yacc.c:1652 */ +#line 727 "parse_y.y" /* yacc.c:1652 */ { /* use a default scale of 100% */ pcb_text_new(Layer,yyRndFont,OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].number) * 90.0, 100, 0, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2394 "parse_y.c" /* yacc.c:1652 */ +#line 2390 "parse_y.c" /* yacc.c:1652 */ break; case 99: -#line 741 "parse_y.y" /* yacc.c:1652 */ +#line 737 "parse_y.y" /* yacc.c:1652 */ { if ((yyvsp[-1].integer) & PCB_FLAG_ONSILK) { @@ -2409,11 +2405,11 @@ pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2413 "parse_y.c" /* yacc.c:1652 */ +#line 2409 "parse_y.c" /* yacc.c:1652 */ break; case 100: -#line 759 "parse_y.y" /* yacc.c:1652 */ +#line 755 "parse_y.y" /* yacc.c:1652 */ { if ((yyvsp[-2].string) == NULL) { rnd_message(RND_MSG_ERROR, "Empty string in text object - not loading this text object to avoid invisible objects\n"); @@ -2438,19 +2434,19 @@ free ((yyvsp[-2].string)); } } -#line 2442 "parse_y.c" /* yacc.c:1652 */ +#line 2438 "parse_y.c" /* yacc.c:1652 */ break; case 101: -#line 788 "parse_y.y" /* yacc.c:1652 */ +#line 784 "parse_y.y" /* yacc.c:1652 */ { Polygon = pcb_poly_new(Layer, 0, (yyvsp[-2].flagtype)); } -#line 2450 "parse_y.c" /* yacc.c:1652 */ +#line 2446 "parse_y.c" /* yacc.c:1652 */ break; case 102: -#line 793 "parse_y.y" /* yacc.c:1652 */ +#line 789 "parse_y.y" /* yacc.c:1652 */ { rnd_cardinal_t contour, contour_start, contour_end; rnd_bool bad_contour_found = rnd_false; @@ -2482,35 +2478,35 @@ rnd_rtree_insert(Layer->polygon_tree, Polygon, (rnd_rtree_box_t *)Polygon); } } -#line 2486 "parse_y.c" /* yacc.c:1652 */ +#line 2482 "parse_y.c" /* yacc.c:1652 */ break; case 105: -#line 833 "parse_y.y" /* yacc.c:1652 */ +#line 829 "parse_y.y" /* yacc.c:1652 */ { pcb_poly_hole_new(Polygon); } -#line 2494 "parse_y.c" /* yacc.c:1652 */ +#line 2490 "parse_y.c" /* yacc.c:1652 */ break; case 109: -#line 847 "parse_y.y" /* yacc.c:1652 */ +#line 843 "parse_y.y" /* yacc.c:1652 */ { pcb_poly_point_new(Polygon, OU ((yyvsp[-2].measure)), OU ((yyvsp[-1].measure))); } -#line 2502 "parse_y.c" /* yacc.c:1652 */ +#line 2498 "parse_y.c" /* yacc.c:1652 */ break; case 110: -#line 851 "parse_y.y" /* yacc.c:1652 */ +#line 847 "parse_y.y" /* yacc.c:1652 */ { pcb_poly_point_new(Polygon, NU ((yyvsp[-2].measure)), NU ((yyvsp[-1].measure))); } -#line 2510 "parse_y.c" /* yacc.c:1652 */ +#line 2506 "parse_y.c" /* yacc.c:1652 */ break; case 116: -#line 869 "parse_y.y" /* yacc.c:1652 */ +#line 865 "parse_y.y" /* yacc.c:1652 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyRndFont, pcb_no_flags(), (yyvsp[-6].string), (yyvsp[-5].string), NULL, OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), (yyvsp[-2].integer), 100, pcb_no_flags(), rnd_false); @@ -2518,19 +2514,19 @@ free ((yyvsp[-5].string)); pin_num = 1; } -#line 2522 "parse_y.c" /* yacc.c:1652 */ +#line 2518 "parse_y.c" /* yacc.c:1652 */ break; case 117: -#line 877 "parse_y.y" /* yacc.c:1652 */ +#line 873 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_fin(yyData); } -#line 2530 "parse_y.c" /* yacc.c:1652 */ +#line 2526 "parse_y.c" /* yacc.c:1652 */ break; case 118: -#line 887 "parse_y.y" /* yacc.c:1652 */ +#line 883 "parse_y.y" /* yacc.c:1652 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyRndFont, pcb_flag_old((yyvsp[-9].integer)), (yyvsp[-8].string), (yyvsp[-7].string), NULL, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), IV ((yyvsp[-4].measure)), IV ((yyvsp[-3].measure)), pcb_flag_old((yyvsp[-2].integer)), rnd_false); @@ -2538,19 +2534,19 @@ free ((yyvsp[-7].string)); pin_num = 1; } -#line 2542 "parse_y.c" /* yacc.c:1652 */ +#line 2538 "parse_y.c" /* yacc.c:1652 */ break; case 119: -#line 895 "parse_y.y" /* yacc.c:1652 */ +#line 891 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_fin(yyData); } -#line 2550 "parse_y.c" /* yacc.c:1652 */ +#line 2546 "parse_y.c" /* yacc.c:1652 */ break; case 120: -#line 905 "parse_y.y" /* yacc.c:1652 */ +#line 901 "parse_y.y" /* yacc.c:1652 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyRndFont, pcb_flag_old((yyvsp[-10].integer)), (yyvsp[-9].string), (yyvsp[-8].string), (yyvsp[-7].string), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), IV ((yyvsp[-4].measure)), IV ((yyvsp[-3].measure)), pcb_flag_old((yyvsp[-2].integer)), rnd_false); @@ -2559,19 +2555,19 @@ free ((yyvsp[-7].string)); pin_num = 1; } -#line 2563 "parse_y.c" /* yacc.c:1652 */ +#line 2559 "parse_y.c" /* yacc.c:1652 */ break; case 121: -#line 914 "parse_y.y" /* yacc.c:1652 */ +#line 910 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_fin(yyData); } -#line 2571 "parse_y.c" /* yacc.c:1652 */ +#line 2567 "parse_y.c" /* yacc.c:1652 */ break; case 122: -#line 925 "parse_y.y" /* yacc.c:1652 */ +#line 921 "parse_y.y" /* yacc.c:1652 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyRndFont, pcb_flag_old((yyvsp[-12].integer)), (yyvsp[-11].string), (yyvsp[-10].string), (yyvsp[-9].string), OU ((yyvsp[-8].measure)) + OU ((yyvsp[-6].measure)), OU ((yyvsp[-7].measure)) + OU ((yyvsp[-5].measure)), @@ -2582,19 +2578,19 @@ free ((yyvsp[-10].string)); free ((yyvsp[-9].string)); } -#line 2586 "parse_y.c" /* yacc.c:1652 */ +#line 2582 "parse_y.c" /* yacc.c:1652 */ break; case 123: -#line 936 "parse_y.y" /* yacc.c:1652 */ +#line 932 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_fin(yyData); } -#line 2594 "parse_y.c" /* yacc.c:1652 */ +#line 2590 "parse_y.c" /* yacc.c:1652 */ break; case 124: -#line 947 "parse_y.y" /* yacc.c:1652 */ +#line 943 "parse_y.y" /* yacc.c:1652 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyRndFont, (yyvsp[-12].flagtype), (yyvsp[-11].string), (yyvsp[-10].string), (yyvsp[-9].string), NU ((yyvsp[-8].measure)) + NU ((yyvsp[-6].measure)), NU ((yyvsp[-7].measure)) + NU ((yyvsp[-5].measure)), @@ -2605,11 +2601,11 @@ free ((yyvsp[-10].string)); free ((yyvsp[-9].string)); } -#line 2609 "parse_y.c" /* yacc.c:1652 */ +#line 2605 "parse_y.c" /* yacc.c:1652 */ break; case 125: -#line 958 "parse_y.y" /* yacc.c:1652 */ +#line 954 "parse_y.y" /* yacc.c:1652 */ { if (pcb_subc_is_empty(yysubc)) { pcb_subc_free(yysubc); @@ -2619,111 +2615,111 @@ io_pcb_element_fin(yyData); } } -#line 2623 "parse_y.c" /* yacc.c:1652 */ +#line 2619 "parse_y.c" /* yacc.c:1652 */ break; case 133: -#line 982 "parse_y.y" /* yacc.c:1652 */ +#line 978 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_line_new(yysubc, NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), NU ((yyvsp[-2].measure)), NU ((yyvsp[-1].measure))); } -#line 2631 "parse_y.c" /* yacc.c:1652 */ +#line 2627 "parse_y.c" /* yacc.c:1652 */ break; case 134: -#line 987 "parse_y.y" /* yacc.c:1652 */ +#line 983 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_line_new(yysubc, OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), OU ((yyvsp[-2].measure)), OU ((yyvsp[-1].measure))); } -#line 2639 "parse_y.c" /* yacc.c:1652 */ +#line 2635 "parse_y.c" /* yacc.c:1652 */ break; case 135: -#line 992 "parse_y.y" /* yacc.c:1652 */ +#line 988 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_arc_new(yysubc, NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), (yyvsp[-3].number), (yyvsp[-2].number), NU ((yyvsp[-1].measure))); } -#line 2647 "parse_y.c" /* yacc.c:1652 */ +#line 2643 "parse_y.c" /* yacc.c:1652 */ break; case 136: -#line 997 "parse_y.y" /* yacc.c:1652 */ +#line 993 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_arc_new(yysubc, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].number), (yyvsp[-2].number), OU ((yyvsp[-1].measure))); } -#line 2655 "parse_y.c" /* yacc.c:1652 */ +#line 2651 "parse_y.c" /* yacc.c:1652 */ break; case 137: -#line 1002 "parse_y.y" /* yacc.c:1652 */ +#line 998 "parse_y.y" /* yacc.c:1652 */ { yysubc_ox = NU ((yyvsp[-2].measure)); yysubc_oy = NU ((yyvsp[-1].measure)); } -#line 2664 "parse_y.c" /* yacc.c:1652 */ +#line 2660 "parse_y.c" /* yacc.c:1652 */ break; case 138: -#line 1007 "parse_y.y" /* yacc.c:1652 */ +#line 1003 "parse_y.y" /* yacc.c:1652 */ { yysubc_ox = OU ((yyvsp[-2].measure)); yysubc_oy = OU ((yyvsp[-1].measure)); } -#line 2673 "parse_y.c" /* yacc.c:1652 */ +#line 2669 "parse_y.c" /* yacc.c:1652 */ break; case 139: -#line 1011 "parse_y.y" /* yacc.c:1652 */ +#line 1007 "parse_y.y" /* yacc.c:1652 */ { attr_list = & yysubc->Attributes; } -#line 2679 "parse_y.c" /* yacc.c:1652 */ +#line 2675 "parse_y.c" /* yacc.c:1652 */ break; case 148: -#line 1027 "parse_y.y" /* yacc.c:1652 */ +#line 1023 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_line_new(yysubc, NU ((yyvsp[-5].measure)) + yysubc_ox, NU ((yyvsp[-4].measure)) + yysubc_oy, NU ((yyvsp[-3].measure)) + yysubc_ox, NU ((yyvsp[-2].measure)) + yysubc_oy, NU ((yyvsp[-1].measure))); } -#line 2689 "parse_y.c" /* yacc.c:1652 */ +#line 2685 "parse_y.c" /* yacc.c:1652 */ break; case 149: -#line 1033 "parse_y.y" /* yacc.c:1652 */ +#line 1029 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_line_new(yysubc, OU ((yyvsp[-5].measure)) + yysubc_ox, OU ((yyvsp[-4].measure)) + yysubc_oy, OU ((yyvsp[-3].measure)) + yysubc_ox, OU ((yyvsp[-2].measure)) + yysubc_oy, OU ((yyvsp[-1].measure))); } -#line 2699 "parse_y.c" /* yacc.c:1652 */ +#line 2695 "parse_y.c" /* yacc.c:1652 */ break; case 150: -#line 1040 "parse_y.y" /* yacc.c:1652 */ +#line 1036 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_arc_new(yysubc, NU ((yyvsp[-7].measure)) + yysubc_ox, NU ((yyvsp[-6].measure)) + yysubc_oy, NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), (yyvsp[-3].number), (yyvsp[-2].number), NU ((yyvsp[-1].measure))); } -#line 2708 "parse_y.c" /* yacc.c:1652 */ +#line 2704 "parse_y.c" /* yacc.c:1652 */ break; case 151: -#line 1045 "parse_y.y" /* yacc.c:1652 */ +#line 1041 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_arc_new(yysubc, OU ((yyvsp[-7].measure)) + yysubc_ox, OU ((yyvsp[-6].measure)) + yysubc_oy, OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].number), (yyvsp[-2].number), OU ((yyvsp[-1].measure))); } -#line 2717 "parse_y.c" /* yacc.c:1652 */ +#line 2713 "parse_y.c" /* yacc.c:1652 */ break; case 152: -#line 1049 "parse_y.y" /* yacc.c:1652 */ +#line 1045 "parse_y.y" /* yacc.c:1652 */ { attr_list = & yysubc->Attributes; } -#line 2723 "parse_y.c" /* yacc.c:1652 */ +#line 2719 "parse_y.c" /* yacc.c:1652 */ break; case 154: -#line 1056 "parse_y.y" /* yacc.c:1652 */ +#line 1052 "parse_y.y" /* yacc.c:1652 */ { pcb_pstk_t *pin = io_pcb_element_pin_new(yysubc, NU ((yyvsp[-9].measure)) + yysubc_ox, NU ((yyvsp[-8].measure)) + yysubc_oy, NU ((yyvsp[-7].measure)), NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), (yyvsp[-3].string), @@ -2732,11 +2728,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2736 "parse_y.c" /* yacc.c:1652 */ +#line 2732 "parse_y.c" /* yacc.c:1652 */ break; case 155: -#line 1069 "parse_y.y" /* yacc.c:1652 */ +#line 1065 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_pin_new(yysubc, OU ((yyvsp[-9].measure)) + yysubc_ox, OU ((yyvsp[-8].measure)) + yysubc_oy, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].string), @@ -2744,11 +2740,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2748 "parse_y.c" /* yacc.c:1652 */ +#line 2744 "parse_y.c" /* yacc.c:1652 */ break; case 156: -#line 1081 "parse_y.y" /* yacc.c:1652 */ +#line 1077 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_pin_new(yysubc, OU ((yyvsp[-7].measure)), OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), 2*PCB_GROUNDPLANEFRAME, OU ((yyvsp[-5].measure)) + 2*PCB_MASKFRAME, OU ((yyvsp[-4].measure)), (yyvsp[-3].string), (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); @@ -2755,11 +2751,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2759 "parse_y.c" /* yacc.c:1652 */ +#line 2755 "parse_y.c" /* yacc.c:1652 */ break; case 157: -#line 1092 "parse_y.y" /* yacc.c:1652 */ +#line 1088 "parse_y.y" /* yacc.c:1652 */ { char p_number[8]; @@ -2769,11 +2765,11 @@ free ((yyvsp[-2].string)); } -#line 2773 "parse_y.c" /* yacc.c:1652 */ +#line 2769 "parse_y.c" /* yacc.c:1652 */ break; case 158: -#line 1108 "parse_y.y" /* yacc.c:1652 */ +#line 1104 "parse_y.y" /* yacc.c:1652 */ { rnd_coord_t hole = OU ((yyvsp[-3].measure)) * PCB_DEFAULT_DRILLINGHOLE; char p_number[8]; @@ -2788,11 +2784,11 @@ OU ((yyvsp[-3].measure)) + 2*PCB_MASKFRAME, hole, (yyvsp[-2].string), p_number, pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2792 "parse_y.c" /* yacc.c:1652 */ +#line 2788 "parse_y.c" /* yacc.c:1652 */ break; case 159: -#line 1127 "parse_y.y" /* yacc.c:1652 */ +#line 1123 "parse_y.y" /* yacc.c:1652 */ { pcb_pstk_t *pad = io_pcb_element_pad_new(yysubc, NU ((yyvsp[-10].measure)) + yysubc_ox, NU ((yyvsp[-9].measure)) + yysubc_oy, @@ -2803,11 +2799,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2807 "parse_y.c" /* yacc.c:1652 */ +#line 2803 "parse_y.c" /* yacc.c:1652 */ break; case 160: -#line 1142 "parse_y.y" /* yacc.c:1652 */ +#line 1138 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_pad_new(yysubc,OU ((yyvsp[-10].measure)) + yysubc_ox, OU ((yyvsp[-9].measure)) + yysubc_oy, OU ((yyvsp[-8].measure)) + yysubc_ox, @@ -2816,11 +2812,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2820 "parse_y.c" /* yacc.c:1652 */ +#line 2816 "parse_y.c" /* yacc.c:1652 */ break; case 161: -#line 1155 "parse_y.y" /* yacc.c:1652 */ +#line 1151 "parse_y.y" /* yacc.c:1652 */ { rnd_coord_t cx = OU((yyvsp[-9].measure)), cy = OU((yyvsp[-8].measure)), sx = OU((yyvsp[-7].measure)), sy = OU((yyvsp[-6].measure)); rnd_coord_t x1, y1, x2, y2; @@ -2840,11 +2836,11 @@ (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].flagtype)); free ((yyvsp[-2].string)); } -#line 2844 "parse_y.c" /* yacc.c:1652 */ +#line 2840 "parse_y.c" /* yacc.c:1652 */ break; case 162: -#line 1179 "parse_y.y" /* yacc.c:1652 */ +#line 1175 "parse_y.y" /* yacc.c:1652 */ { io_pcb_element_pad_new(yysubc,OU ((yyvsp[-8].measure)),OU ((yyvsp[-7].measure)),OU ((yyvsp[-6].measure)),OU ((yyvsp[-5].measure)),OU ((yyvsp[-4].measure)), 2*PCB_GROUNDPLANEFRAME, OU ((yyvsp[-4].measure)) + 2*PCB_MASKFRAME, (yyvsp[-3].string), (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); @@ -2851,11 +2847,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2855 "parse_y.c" /* yacc.c:1652 */ +#line 2851 "parse_y.c" /* yacc.c:1652 */ break; case 163: -#line 1190 "parse_y.y" /* yacc.c:1652 */ +#line 1186 "parse_y.y" /* yacc.c:1652 */ { char p_number[8]; @@ -2864,23 +2860,23 @@ OU ((yyvsp[-3].measure)) + 2*PCB_MASKFRAME, (yyvsp[-2].string),p_number, pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2868 "parse_y.c" /* yacc.c:1652 */ +#line 2864 "parse_y.c" /* yacc.c:1652 */ break; case 164: -#line 1200 "parse_y.y" /* yacc.c:1652 */ +#line 1196 "parse_y.y" /* yacc.c:1652 */ { (yyval.flagtype) = pcb_flag_old((yyvsp[0].integer)); } -#line 2874 "parse_y.c" /* yacc.c:1652 */ +#line 2870 "parse_y.c" /* yacc.c:1652 */ break; case 165: -#line 1201 "parse_y.y" /* yacc.c:1652 */ +#line 1197 "parse_y.y" /* yacc.c:1652 */ { (yyval.flagtype) = pcb_strflg_s2f((yyvsp[0].string), yyerror, &yy_intconn, 1); free((yyvsp[0].string)); } -#line 2880 "parse_y.c" /* yacc.c:1652 */ +#line 2876 "parse_y.c" /* yacc.c:1652 */ break; case 169: -#line 1212 "parse_y.y" /* yacc.c:1652 */ +#line 1208 "parse_y.y" /* yacc.c:1652 */ { if ((yyvsp[-3].integer) <= 0 || (yyvsp[-3].integer) > PCB_MAX_FONTPOSITION) { @@ -2896,11 +2892,11 @@ Glyph->valid = rnd_true; Glyph->xdelta = NU ((yyvsp[-2].measure)); } -#line 2900 "parse_y.c" /* yacc.c:1652 */ +#line 2896 "parse_y.c" /* yacc.c:1652 */ break; case 170: -#line 1228 "parse_y.y" /* yacc.c:1652 */ +#line 1224 "parse_y.y" /* yacc.c:1652 */ { if ((yyvsp[-3].integer) <= 0 || (yyvsp[-3].integer) > PCB_MAX_FONTPOSITION) { @@ -2916,27 +2912,27 @@ Glyph->valid = rnd_true; Glyph->xdelta = OU ((yyvsp[-2].measure)); } -#line 2920 "parse_y.c" /* yacc.c:1652 */ +#line 2916 "parse_y.c" /* yacc.c:1652 */ break; case 176: -#line 1259 "parse_y.y" /* yacc.c:1652 */ +#line 1255 "parse_y.y" /* yacc.c:1652 */ { rnd_font_new_line_in_glyph(Glyph, OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), OU ((yyvsp[-2].measure)), OU ((yyvsp[-1].measure))); } -#line 2928 "parse_y.c" /* yacc.c:1652 */ +#line 2924 "parse_y.c" /* yacc.c:1652 */ break; case 177: -#line 1266 "parse_y.y" /* yacc.c:1652 */ +#line 1262 "parse_y.y" /* yacc.c:1652 */ { rnd_font_new_line_in_glyph(Glyph, NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), NU ((yyvsp[-2].measure)), NU ((yyvsp[-1].measure))); } -#line 2936 "parse_y.c" /* yacc.c:1652 */ +#line 2932 "parse_y.c" /* yacc.c:1652 */ break; case 185: -#line 1293 "parse_y.y" /* yacc.c:1652 */ +#line 1289 "parse_y.y" /* yacc.c:1652 */ { currnet = pcb_net_get(yyPCB, &yyPCB->netlist[PCB_NETLIST_INPUT], (yyvsp[-3].string), PCB_NETA_ALLOC); if (((yyvsp[-2].string) != NULL) && (*(yyvsp[-2].string) != '\0')) @@ -2944,38 +2940,38 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2948 "parse_y.c" /* yacc.c:1652 */ +#line 2944 "parse_y.c" /* yacc.c:1652 */ break; case 191: -#line 1315 "parse_y.y" /* yacc.c:1652 */ +#line 1311 "parse_y.y" /* yacc.c:1652 */ { pcb_net_term_get_by_pinname(currnet, (yyvsp[-1].string), 1); free ((yyvsp[-1].string)); } -#line 2957 "parse_y.c" /* yacc.c:1652 */ +#line 2953 "parse_y.c" /* yacc.c:1652 */ break; case 199: -#line 1362 "parse_y.y" /* yacc.c:1652 */ +#line 1358 "parse_y.y" /* yacc.c:1652 */ { pcb_ratspatch_append(yyPCB, RATP_ADD_CONN, (yyvsp[-2].string), (yyvsp[-1].string), NULL, 0); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2963 "parse_y.c" /* yacc.c:1652 */ +#line 2959 "parse_y.c" /* yacc.c:1652 */ break; case 200: -#line 1363 "parse_y.y" /* yacc.c:1652 */ +#line 1359 "parse_y.y" /* yacc.c:1652 */ { pcb_ratspatch_append(yyPCB, RATP_DEL_CONN, (yyvsp[-2].string), (yyvsp[-1].string), NULL, 0); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2969 "parse_y.c" /* yacc.c:1652 */ +#line 2965 "parse_y.c" /* yacc.c:1652 */ break; case 201: -#line 1364 "parse_y.y" /* yacc.c:1652 */ +#line 1360 "parse_y.y" /* yacc.c:1652 */ { pcb_ratspatch_append(yyPCB, RATP_CHANGE_COMP_ATTRIB, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string), 0); free((yyvsp[-3].string)); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2975 "parse_y.c" /* yacc.c:1652 */ +#line 2971 "parse_y.c" /* yacc.c:1652 */ break; case 202: -#line 1369 "parse_y.y" /* yacc.c:1652 */ +#line 1365 "parse_y.y" /* yacc.c:1652 */ { char *old_val, *key = (yyvsp[-2].string), *val = (yyvsp[-1].string) ? (yyvsp[-1].string) : (char *)""; old_val = pcb_attribute_get(attr_list, key); @@ -2986,95 +2982,95 @@ free(key); if ((yyvsp[-1].string) != NULL) free(val); } -#line 2990 "parse_y.c" /* yacc.c:1652 */ +#line 2986 "parse_y.c" /* yacc.c:1652 */ break; case 203: -#line 1381 "parse_y.y" /* yacc.c:1652 */ +#line 1377 "parse_y.y" /* yacc.c:1652 */ { (yyval.string) = (yyvsp[0].string); } -#line 2996 "parse_y.c" /* yacc.c:1652 */ +#line 2992 "parse_y.c" /* yacc.c:1652 */ break; case 204: -#line 1382 "parse_y.y" /* yacc.c:1652 */ +#line 1378 "parse_y.y" /* yacc.c:1652 */ { (yyval.string) = 0; } -#line 3002 "parse_y.c" /* yacc.c:1652 */ +#line 2998 "parse_y.c" /* yacc.c:1652 */ break; case 205: -#line 1386 "parse_y.y" /* yacc.c:1652 */ +#line 1382 "parse_y.y" /* yacc.c:1652 */ { (yyval.number) = (yyvsp[0].number); } -#line 3008 "parse_y.c" /* yacc.c:1652 */ +#line 3004 "parse_y.c" /* yacc.c:1652 */ break; case 206: -#line 1387 "parse_y.y" /* yacc.c:1652 */ +#line 1383 "parse_y.y" /* yacc.c:1652 */ { (yyval.number) = (yyvsp[0].integer); } -#line 3014 "parse_y.c" /* yacc.c:1652 */ +#line 3010 "parse_y.c" /* yacc.c:1652 */ break; case 207: -#line 1392 "parse_y.y" /* yacc.c:1652 */ +#line 1388 "parse_y.y" /* yacc.c:1652 */ { do_measure(&(yyval.measure), (yyvsp[0].number), RND_MIL_TO_COORD ((yyvsp[0].number)) / 100.0, 0); } -#line 3020 "parse_y.c" /* yacc.c:1652 */ +#line 3016 "parse_y.c" /* yacc.c:1652 */ break; case 208: -#line 1393 "parse_y.y" /* yacc.c:1652 */ +#line 1389 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MIL_TO_COORD ((yyvsp[-1].number)) / 100000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3026 "parse_y.c" /* yacc.c:1652 */ +#line 3022 "parse_y.c" /* yacc.c:1652 */ break; case 209: -#line 1394 "parse_y.y" /* yacc.c:1652 */ +#line 1390 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MIL_TO_COORD ((yyvsp[-1].number)) / 100.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3032 "parse_y.c" /* yacc.c:1652 */ +#line 3028 "parse_y.c" /* yacc.c:1652 */ break; case 210: -#line 1395 "parse_y.y" /* yacc.c:1652 */ +#line 1391 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MIL_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3038 "parse_y.c" /* yacc.c:1652 */ +#line 3034 "parse_y.c" /* yacc.c:1652 */ break; case 211: -#line 1396 "parse_y.y" /* yacc.c:1652 */ +#line 1392 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_INCH_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3044 "parse_y.c" /* yacc.c:1652 */ +#line 3040 "parse_y.c" /* yacc.c:1652 */ break; case 212: -#line 1397 "parse_y.y" /* yacc.c:1652 */ +#line 1393 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MM_TO_COORD ((yyvsp[-1].number)) / 1000000.0); pcb_io_pcb_usty_seen |= PCB_USTY_NANOMETER; } -#line 3050 "parse_y.c" /* yacc.c:1652 */ +#line 3046 "parse_y.c" /* yacc.c:1652 */ break; case 213: -#line 1398 "parse_y.y" /* yacc.c:1652 */ +#line 1394 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MM_TO_COORD ((yyvsp[-1].number)) / 1000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3056 "parse_y.c" /* yacc.c:1652 */ +#line 3052 "parse_y.c" /* yacc.c:1652 */ break; case 214: -#line 1399 "parse_y.y" /* yacc.c:1652 */ +#line 1395 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MM_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3062 "parse_y.c" /* yacc.c:1652 */ +#line 3058 "parse_y.c" /* yacc.c:1652 */ break; case 215: -#line 1400 "parse_y.y" /* yacc.c:1652 */ +#line 1396 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MM_TO_COORD ((yyvsp[-1].number)) * 1000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3068 "parse_y.c" /* yacc.c:1652 */ +#line 3064 "parse_y.c" /* yacc.c:1652 */ break; case 216: -#line 1401 "parse_y.y" /* yacc.c:1652 */ +#line 1397 "parse_y.y" /* yacc.c:1652 */ { M ((yyval.measure), (yyvsp[-1].number), RND_MM_TO_COORD ((yyvsp[-1].number)) * 1000000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3074 "parse_y.c" /* yacc.c:1652 */ +#line 3070 "parse_y.c" /* yacc.c:1652 */ break; -#line 3078 "parse_y.c" /* yacc.c:1652 */ +#line 3074 "parse_y.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3305,7 +3301,7 @@ #endif return yyresult; } -#line 1404 "parse_y.y" /* yacc.c:1918 */ +#line 1400 "parse_y.y" /* yacc.c:1918 */ /* --------------------------------------------------------------------------- Index: trunk/src_plugins/io_pcb/parse_y.h =================================================================== --- trunk/src_plugins/io_pcb/parse_y.h (revision 38522) +++ trunk/src_plugins/io_pcb/parse_y.h (revision 38523) @@ -105,7 +105,7 @@ union YYSTYPE { -#line 131 "parse_y.y" /* yacc.c:1921 */ +#line 127 "parse_y.y" /* yacc.c:1921 */ int integer; double number; Index: trunk/src_plugins/io_pcb/parse_y.y =================================================================== --- trunk/src_plugins/io_pcb/parse_y.y (revision 38522) +++ trunk/src_plugins/io_pcb/parse_y.y (revision 38523) @@ -49,11 +49,7 @@ #include #include "src_plugins/lib_compat_help/pstk_compat.h" #include "netlist.h" -#ifdef PCB_WANT_FONT2 -# include -#else -# include -#endif +#include #include "rst_parse.c" Index: trunk/tests/drc_query/invchar.ref =================================================================== --- trunk/tests/drc_query/invchar.ref (revision 38522) +++ trunk/tests/drc_query/invchar.ref (revision 38523) @@ -1,8 +1,8 @@ x: text_char: Invalid character in text -within (-15.50, 253.12, 469.50, 351.88) mil +within (-21.75, 253.12, 525.75, 351.88) mil Text object contains character(s) that will not render with the given font Details: Number of invalid characters:1 x: text_char: Invalid character in text -within (-17.63, 326.25, 488.63, 443.75) mil +within (-23.88, 326.25, 544.88, 443.75) mil Text object contains character(s) that will not render with the given font Details: Number of invalid characters:1