Index: file.c =================================================================== --- file.c (revision 21612) +++ file.c (revision 21613) @@ -718,6 +718,7 @@ extern pcb_board_t *yyPCB; extern pcb_data_t *yyData; extern pcb_font_t *yyFont; +extern int yyElemFixLayers; void PreLoadElementPCB() { Index: parse_l.c =================================================================== --- parse_l.c (revision 21612) +++ parse_l.c (revision 21613) @@ -722,6 +722,7 @@ int *yyFontkitValid; int yy_parse_tags; pcb_bool yyFontReset; +int yyElemFixLayers = 0; static int parse_number (void); static void add_tag(char *line); @@ -733,7 +734,7 @@ static int Parse(FILE *Pipe, const char *Executable, const char *Path, const char *Filename); -#line 737 "parse_l.c" +#line 738 "parse_l.c" #define INITIAL 0 @@ -920,10 +921,10 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 108 "parse_l.l" +#line 109 "parse_l.l" -#line 927 "parse_l.c" +#line 928 "parse_l.c" if ( !(yy_init) ) { @@ -1018,227 +1019,227 @@ case 1: YY_RULE_SETUP -#line 110 "parse_l.l" +#line 111 "parse_l.l" { return(T_FILEVERSION); } YY_BREAK case 2: YY_RULE_SETUP -#line 111 "parse_l.l" +#line 112 "parse_l.l" { return(T_PCB); } YY_BREAK case 3: YY_RULE_SETUP -#line 112 "parse_l.l" +#line 113 "parse_l.l" { return(T_GRID); } YY_BREAK case 4: YY_RULE_SETUP -#line 113 "parse_l.l" +#line 114 "parse_l.l" { return(T_CURSOR); } YY_BREAK case 5: YY_RULE_SETUP -#line 114 "parse_l.l" +#line 115 "parse_l.l" { return(T_THERMAL); } YY_BREAK case 6: YY_RULE_SETUP -#line 115 "parse_l.l" +#line 116 "parse_l.l" { return(T_AREA); } YY_BREAK case 7: YY_RULE_SETUP -#line 116 "parse_l.l" +#line 117 "parse_l.l" { return(T_DRC); } YY_BREAK case 8: YY_RULE_SETUP -#line 117 "parse_l.l" +#line 118 "parse_l.l" { return(T_FLAGS); } YY_BREAK case 9: YY_RULE_SETUP -#line 118 "parse_l.l" +#line 119 "parse_l.l" { return(T_LAYER); } YY_BREAK case 10: YY_RULE_SETUP -#line 119 "parse_l.l" +#line 120 "parse_l.l" { return(T_PIN); } YY_BREAK case 11: YY_RULE_SETUP -#line 120 "parse_l.l" +#line 121 "parse_l.l" { return(T_PAD); } YY_BREAK case 12: YY_RULE_SETUP -#line 121 "parse_l.l" +#line 122 "parse_l.l" { return(T_VIA); } YY_BREAK case 13: YY_RULE_SETUP -#line 122 "parse_l.l" +#line 123 "parse_l.l" { return(T_LINE); } YY_BREAK case 14: YY_RULE_SETUP -#line 123 "parse_l.l" +#line 124 "parse_l.l" { return(T_RAT); } YY_BREAK case 15: YY_RULE_SETUP -#line 124 "parse_l.l" +#line 125 "parse_l.l" { return(T_RECTANGLE); } YY_BREAK case 16: YY_RULE_SETUP -#line 125 "parse_l.l" +#line 126 "parse_l.l" { return(T_TEXT); } YY_BREAK case 17: YY_RULE_SETUP -#line 126 "parse_l.l" +#line 127 "parse_l.l" { return(T_ELEMENTLINE); } YY_BREAK case 18: YY_RULE_SETUP -#line 127 "parse_l.l" +#line 128 "parse_l.l" { return(T_ELEMENTARC); } YY_BREAK case 19: YY_RULE_SETUP -#line 128 "parse_l.l" +#line 129 "parse_l.l" { return(T_ELEMENT); } YY_BREAK case 20: YY_RULE_SETUP -#line 129 "parse_l.l" +#line 130 "parse_l.l" { return(T_SYMBOLLINE); } YY_BREAK case 21: YY_RULE_SETUP -#line 130 "parse_l.l" +#line 131 "parse_l.l" { return(T_SYMBOL); } YY_BREAK case 22: YY_RULE_SETUP -#line 131 "parse_l.l" +#line 132 "parse_l.l" { return(T_MARK); } YY_BREAK case 23: YY_RULE_SETUP -#line 132 "parse_l.l" +#line 133 "parse_l.l" { return(T_GROUPS); } YY_BREAK case 24: YY_RULE_SETUP -#line 133 "parse_l.l" +#line 134 "parse_l.l" { return(T_STYLES); } YY_BREAK case 25: YY_RULE_SETUP -#line 134 "parse_l.l" +#line 135 "parse_l.l" { return(T_POLYGON); } YY_BREAK case 26: YY_RULE_SETUP -#line 135 "parse_l.l" +#line 136 "parse_l.l" { return(T_POLYGON_HOLE); } YY_BREAK case 27: YY_RULE_SETUP -#line 136 "parse_l.l" +#line 137 "parse_l.l" { return(T_ARC); } YY_BREAK case 28: YY_RULE_SETUP -#line 137 "parse_l.l" +#line 138 "parse_l.l" { return(T_NETLIST); } YY_BREAK case 29: YY_RULE_SETUP -#line 138 "parse_l.l" +#line 139 "parse_l.l" { return(T_NET); } YY_BREAK case 30: YY_RULE_SETUP -#line 139 "parse_l.l" +#line 140 "parse_l.l" { return(T_CONN); } YY_BREAK case 31: YY_RULE_SETUP -#line 140 "parse_l.l" +#line 141 "parse_l.l" { return(T_NETLISTPATCH); } YY_BREAK case 32: YY_RULE_SETUP -#line 141 "parse_l.l" +#line 142 "parse_l.l" { return(T_ADD_CONN); } YY_BREAK case 33: YY_RULE_SETUP -#line 142 "parse_l.l" +#line 143 "parse_l.l" { return(T_DEL_CONN); } YY_BREAK case 34: YY_RULE_SETUP -#line 143 "parse_l.l" +#line 144 "parse_l.l" { return(T_CHANGE_ATTRIB); } YY_BREAK case 35: YY_RULE_SETUP -#line 144 "parse_l.l" +#line 145 "parse_l.l" { return(T_ATTRIBUTE); } YY_BREAK case 36: YY_RULE_SETUP -#line 146 "parse_l.l" +#line 147 "parse_l.l" { return T_NM; } YY_BREAK case 37: YY_RULE_SETUP -#line 147 "parse_l.l" +#line 148 "parse_l.l" { return T_UM; } YY_BREAK case 38: YY_RULE_SETUP -#line 148 "parse_l.l" +#line 149 "parse_l.l" { return T_MM; } YY_BREAK case 39: YY_RULE_SETUP -#line 149 "parse_l.l" +#line 150 "parse_l.l" { return T_M; } YY_BREAK case 40: YY_RULE_SETUP -#line 150 "parse_l.l" +#line 151 "parse_l.l" { return T_KM; } YY_BREAK case 41: YY_RULE_SETUP -#line 151 "parse_l.l" +#line 152 "parse_l.l" { return T_UMIL; } YY_BREAK case 42: YY_RULE_SETUP -#line 152 "parse_l.l" +#line 153 "parse_l.l" { return T_CMIL; } YY_BREAK case 43: YY_RULE_SETUP -#line 153 "parse_l.l" +#line 154 "parse_l.l" { return T_MIL; } YY_BREAK case 44: YY_RULE_SETUP -#line 154 "parse_l.l" +#line 155 "parse_l.l" { return T_IN; } YY_BREAK case 45: YY_RULE_SETUP -#line 156 "parse_l.l" +#line 157 "parse_l.l" { pcb_lval.integer = (unsigned) *(pcb_text+1); return(CHAR_CONST); @@ -1246,17 +1247,17 @@ YY_BREAK case 46: YY_RULE_SETUP -#line 160 "parse_l.l" +#line 161 "parse_l.l" { return parse_number(); } YY_BREAK case 47: YY_RULE_SETUP -#line 161 "parse_l.l" +#line 162 "parse_l.l" { pcb_lval.integer = pcb_round (strtod (pcb_text, NULL)); return INTEGER; } YY_BREAK case 48: YY_RULE_SETUP -#line 163 "parse_l.l" +#line 164 "parse_l.l" { unsigned n; sscanf((char *) pcb_text, "%x", &n); pcb_lval.integer = n; @@ -1265,7 +1266,7 @@ YY_BREAK case 49: YY_RULE_SETUP -#line 168 "parse_l.l" +#line 169 "parse_l.l" { char *p1, *p2; @@ -1301,23 +1302,23 @@ YY_BREAK case 50: YY_RULE_SETUP -#line 200 "parse_l.l" +#line 201 "parse_l.l" { if (yy_parse_tags) { add_tag(pcb_text); }} YY_BREAK case 51: YY_RULE_SETUP -#line 201 "parse_l.l" +#line 202 "parse_l.l" {} YY_BREAK case 52: YY_RULE_SETUP -#line 202 "parse_l.l" +#line 203 "parse_l.l" {} YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 203 "parse_l.l" +#line 204 "parse_l.l" { #ifndef FLEX_SCANNER pcb_lineno++; @@ -1326,20 +1327,20 @@ YY_BREAK case 54: YY_RULE_SETUP -#line 208 "parse_l.l" +#line 209 "parse_l.l" {} YY_BREAK case 55: YY_RULE_SETUP -#line 209 "parse_l.l" +#line 210 "parse_l.l" { return(*pcb_text); } YY_BREAK case 56: YY_RULE_SETUP -#line 211 "parse_l.l" +#line 212 "parse_l.l" ECHO; YY_BREAK -#line 1343 "parse_l.c" +#line 1344 "parse_l.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2349,7 +2350,7 @@ #define YYTABLES_NAME "yytables" -#line 211 "parse_l.l" +#line 212 "parse_l.l" @@ -2472,6 +2473,7 @@ yyFontReset = pcb_false; yyFontkitValid = NULL; yysubc = NULL; + yyElemFixLayers = 1; if (f == NULL) @@ -2479,6 +2481,8 @@ ret = Parse(f, NULL,NULL,NULL); + yyElemFixLayers = 0; + pcb_fp_fclose(f, &st); return(ret); Index: parse_l.h =================================================================== --- parse_l.h (revision 21612) +++ parse_l.h (revision 21613) @@ -324,7 +324,7 @@ #undef YY_DECL #endif -#line 211 "parse_l.l" +#line 212 "parse_l.l" #line 331 "parse_l.h" Index: parse_l.l =================================================================== --- parse_l.l (revision 21612) +++ parse_l.l (revision 21613) @@ -82,6 +82,7 @@ int *yyFontkitValid; int yy_parse_tags; pcb_bool yyFontReset; +int yyElemFixLayers = 0; static int parse_number (void); static void add_tag(char *line); @@ -329,6 +330,7 @@ yyFontReset = pcb_false; yyFontkitValid = NULL; yysubc = NULL; + yyElemFixLayers = 1; if (f == NULL) @@ -336,6 +338,8 @@ ret = Parse(f, NULL,NULL,NULL); + yyElemFixLayers = 0; + pcb_fp_fclose(f, &st); return(ret); Index: parse_y.c =================================================================== --- parse_y.c (revision 21612) +++ parse_y.c (revision 21613) @@ -149,6 +149,7 @@ extern conf_role_t yy_settings_dest; extern pcb_flag_t yy_pcb_flags; extern int *yyFontkitValid; +extern int yyElemFixLayers; static char *layer_group_string; @@ -180,7 +181,7 @@ #include "parse_y.h" -#line 184 "parse_y.c" /* yacc.c:339 */ +#line 185 "parse_y.c" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -271,7 +272,7 @@ typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 116 "parse_y.y" /* yacc.c:355 */ +#line 117 "parse_y.y" /* yacc.c:355 */ int integer; double number; @@ -279,7 +280,7 @@ pcb_flag_t flagtype; PLMeasure measure; -#line 283 "parse_y.c" /* yacc.c:355 */ +#line 284 "parse_y.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -294,7 +295,7 @@ /* Copy the second part of user declarations. */ -#line 298 "parse_y.c" /* yacc.c:358 */ +#line 299 "parse_y.c" /* yacc.c:358 */ #ifdef short # undef short @@ -596,28 +597,28 @@ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 143, 143, 144, 145, 146, 150, 150, 224, 224, - 243, 243, 262, 263, 268, 268, 290, 292, 302, 309, - 316, 326, 327, 328, 331, 339, 354, 369, 373, 377, - 380, 382, 389, 391, 397, 399, 400, 401, 405, 415, - 426, 438, 442, 447, 451, 455, 459, 468, 477, 481, - 482, 486, 487, 491, 492, 492, 493, 494, 496, 496, - 503, 507, 508, 509, 510, 511, 516, 526, 537, 547, - 557, 573, 578, 588, 587, 618, 619, 623, 624, 628, - 629, 630, 631, 632, 633, 635, 640, 641, 642, 643, - 643, 644, 648, 657, 666, 677, 686, 695, 704, 714, - 732, 757, 756, 795, 797, 802, 801, 808, 810, 815, - 819, 826, 827, 828, 829, 830, 838, 837, 856, 855, - 874, 873, 894, 892, 916, 914, 939, 940, 944, 945, - 946, 947, 948, 950, 955, 960, 965, 970, 975, 980, - 980, 984, 985, 989, 990, 991, 992, 994, 1000, 1007, - 1012, 1017, 1017, 1023, 1036, 1048, 1059, 1075, 1094, 1109, - 1122, 1133, 1144, 1145, 1149, 1150, 1153, 1155, 1171, 1190, - 1191, 1194, 1196, 1197, 1202, 1209, 1215, 1216, 1220, 1225, - 1226, 1230, 1231, 1237, 1236, 1246, 1247, 1251, 1252, 1256, - 1273, 1274, 1278, 1283, 1284, 1288, 1289, 1304, 1305, 1306, - 1310, 1323, 1324, 1328, 1329, 1334, 1335, 1336, 1337, 1338, - 1339, 1340, 1341, 1342, 1343 + 0, 144, 144, 145, 146, 147, 151, 151, 225, 225, + 246, 246, 265, 266, 271, 271, 293, 295, 305, 312, + 319, 329, 330, 331, 334, 342, 357, 372, 376, 380, + 383, 385, 392, 394, 400, 402, 403, 404, 408, 418, + 429, 441, 445, 450, 454, 458, 462, 471, 480, 484, + 485, 489, 490, 494, 495, 495, 496, 497, 499, 499, + 506, 510, 511, 512, 513, 514, 519, 529, 540, 550, + 560, 576, 581, 591, 590, 621, 622, 626, 627, 631, + 632, 633, 634, 635, 636, 638, 643, 644, 645, 646, + 646, 647, 651, 660, 669, 680, 689, 698, 707, 717, + 735, 760, 759, 798, 800, 805, 804, 811, 813, 818, + 822, 829, 830, 831, 832, 833, 841, 840, 859, 858, + 877, 876, 897, 895, 919, 917, 942, 943, 947, 948, + 949, 950, 951, 953, 958, 963, 968, 973, 978, 983, + 983, 987, 988, 992, 993, 994, 995, 997, 1003, 1010, + 1015, 1020, 1020, 1026, 1039, 1051, 1062, 1078, 1097, 1112, + 1125, 1136, 1147, 1148, 1152, 1153, 1156, 1158, 1174, 1193, + 1194, 1197, 1199, 1200, 1205, 1212, 1218, 1219, 1223, 1228, + 1229, 1233, 1234, 1240, 1239, 1249, 1250, 1254, 1255, 1259, + 1276, 1277, 1281, 1286, 1287, 1291, 1292, 1307, 1308, 1309, + 1313, 1326, 1327, 1331, 1332, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1344, 1345, 1346 }; #endif @@ -1794,13 +1795,13 @@ switch (yyn) { case 5: -#line 146 "parse_y.y" /* yacc.c:1646 */ +#line 147 "parse_y.y" /* yacc.c:1646 */ { YYABORT; } -#line 1800 "parse_y.c" /* yacc.c:1646 */ +#line 1801 "parse_y.c" /* yacc.c:1646 */ break; case 6: -#line 150 "parse_y.y" /* yacc.c:1646 */ +#line 151 "parse_y.y" /* yacc.c:1646 */ { /* reset flags for 'used layers'; * init font and data pointers @@ -1823,11 +1824,11 @@ layer_group_string = NULL; old_fmt = 0; } -#line 1827 "parse_y.c" /* yacc.c:1646 */ +#line 1828 "parse_y.c" /* yacc.c:1646 */ break; case 7: -#line 186 "parse_y.y" /* yacc.c:1646 */ +#line 187 "parse_y.y" /* yacc.c:1646 */ { pcb_board_t *pcb_save = PCB; if ((yy_settings_dest != CFR_invalid) && (layer_group_string != NULL)) @@ -1865,36 +1866,38 @@ PCB_ENDALL_LOOP; PCB = pcb_save; } -#line 1869 "parse_y.c" /* yacc.c:1646 */ +#line 1870 "parse_y.c" /* yacc.c:1646 */ break; case 8: -#line 224 "parse_y.y" /* yacc.c:1646 */ +#line 225 "parse_y.y" /* yacc.c:1646 */ { PreLoadElementPCB (); layer_group_string = NULL; } -#line 1876 "parse_y.c" /* yacc.c:1646 */ +#line 1877 "parse_y.c" /* yacc.c:1646 */ break; case 9: -#line 227 "parse_y.y" /* yacc.c:1646 */ +#line 228 "parse_y.y" /* yacc.c:1646 */ { LayerFlag[0] = pcb_true; LayerFlag[1] = pcb_true; - yyData->LayerN = 2; - yyData->Layer[0].parent_type = PCB_PARENT_DATA; - yyData->Layer[0].parent.data = yyData; - yyData->Layer[0].is_bound = 1; - yyData->Layer[0].meta.bound.type = PCB_LYT_SILK | PCB_LYT_TOP; - yyData->Layer[1].parent_type = PCB_PARENT_DATA; - yyData->Layer[1].parent.data = yyData; - yyData->Layer[1].is_bound = 1; - yyData->Layer[1].meta.bound.type = PCB_LYT_SILK | PCB_LYT_BOTTOM; + if (yyElemFixLayers) { + yyData->LayerN = 2; + yyData->Layer[0].parent_type = PCB_PARENT_DATA; + yyData->Layer[0].parent.data = yyData; + yyData->Layer[0].is_bound = 1; + yyData->Layer[0].meta.bound.type = PCB_LYT_SILK | PCB_LYT_TOP; + yyData->Layer[1].parent_type = PCB_PARENT_DATA; + yyData->Layer[1].parent.data = yyData; + yyData->Layer[1].is_bound = 1; + yyData->Layer[1].meta.bound.type = PCB_LYT_SILK | PCB_LYT_BOTTOM; + } PostLoadElementPCB (); } -#line 1894 "parse_y.c" /* yacc.c:1646 */ +#line 1897 "parse_y.c" /* yacc.c:1646 */ break; case 10: -#line 243 "parse_y.y" /* yacc.c:1646 */ +#line 246 "parse_y.y" /* yacc.c:1646 */ { /* reset flags for 'used layers'; * init font and data pointers @@ -1910,11 +1913,11 @@ LayerFlag[i] = pcb_false; yyData->LayerN = 0; } -#line 1914 "parse_y.c" /* yacc.c:1646 */ +#line 1917 "parse_y.c" /* yacc.c:1646 */ break; case 14: -#line 268 "parse_y.y" /* yacc.c:1646 */ +#line 271 "parse_y.y" /* yacc.c:1646 */ { /* mark all symbols invalid */ int i; @@ -1930,20 +1933,20 @@ } *yyFontkitValid = pcb_false; } -#line 1934 "parse_y.c" /* yacc.c:1646 */ +#line 1937 "parse_y.c" /* yacc.c:1646 */ break; case 15: -#line 284 "parse_y.y" /* yacc.c:1646 */ +#line 287 "parse_y.y" /* yacc.c:1646 */ { *yyFontkitValid = pcb_true; pcb_font_set_info(yyFont); } -#line 1943 "parse_y.c" /* yacc.c:1646 */ +#line 1946 "parse_y.c" /* yacc.c:1646 */ break; case 17: -#line 293 "parse_y.y" /* yacc.c:1646 */ +#line 296 "parse_y.y" /* yacc.c:1646 */ { if (check_file_version ((yyvsp[-1].integer)) != 0) { @@ -1950,11 +1953,11 @@ YYABORT; } } -#line 1954 "parse_y.c" /* yacc.c:1646 */ +#line 1957 "parse_y.c" /* yacc.c:1646 */ break; case 18: -#line 303 "parse_y.y" /* yacc.c:1646 */ +#line 306 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Name = (yyvsp[-1].string); yyPCB->MaxWidth = PCB_MAX_COORD; @@ -1961,11 +1964,11 @@ yyPCB->MaxHeight = PCB_MAX_COORD; old_fmt = 1; } -#line 1965 "parse_y.c" /* yacc.c:1646 */ +#line 1968 "parse_y.c" /* yacc.c:1646 */ break; case 19: -#line 310 "parse_y.y" /* yacc.c:1646 */ +#line 313 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Name = (yyvsp[-3].string); yyPCB->MaxWidth = OU ((yyvsp[-2].measure)); @@ -1972,11 +1975,11 @@ yyPCB->MaxHeight = OU ((yyvsp[-1].measure)); old_fmt = 1; } -#line 1976 "parse_y.c" /* yacc.c:1646 */ +#line 1979 "parse_y.c" /* yacc.c:1646 */ break; case 20: -#line 317 "parse_y.y" /* yacc.c:1646 */ +#line 320 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Name = (yyvsp[-3].string); yyPCB->MaxWidth = NU ((yyvsp[-2].measure)); @@ -1983,21 +1986,21 @@ yyPCB->MaxHeight = NU ((yyvsp[-1].measure)); old_fmt = 0; } -#line 1987 "parse_y.c" /* yacc.c:1646 */ +#line 1990 "parse_y.c" /* yacc.c:1646 */ break; case 24: -#line 332 "parse_y.y" /* yacc.c:1646 */ +#line 335 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Grid = OU ((yyvsp[-3].measure)); yyPCB->GridOffsetX = OU ((yyvsp[-2].measure)); yyPCB->GridOffsetY = OU ((yyvsp[-1].measure)); } -#line 1997 "parse_y.c" /* yacc.c:1646 */ +#line 2000 "parse_y.c" /* yacc.c:1646 */ break; case 25: -#line 340 "parse_y.y" /* yacc.c:1646 */ +#line 343 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Grid = OU ((yyvsp[-4].measure)); yyPCB->GridOffsetX = OU ((yyvsp[-3].measure)); @@ -2009,11 +2012,11 @@ conf_set(yy_settings_dest, "editor/draw_grid", -1, "false", POL_OVERWRITE); } } -#line 2013 "parse_y.c" /* yacc.c:1646 */ +#line 2016 "parse_y.c" /* yacc.c:1646 */ break; case 26: -#line 355 "parse_y.y" /* yacc.c:1646 */ +#line 358 "parse_y.y" /* yacc.c:1646 */ { yyPCB->Grid = NU ((yyvsp[-4].measure)); yyPCB->GridOffsetX = NU ((yyvsp[-3].measure)); @@ -2025,44 +2028,44 @@ conf_set(yy_settings_dest, "editor/draw_grid", -1, "false", POL_OVERWRITE); } } -#line 2029 "parse_y.c" /* yacc.c:1646 */ +#line 2032 "parse_y.c" /* yacc.c:1646 */ break; case 27: -#line 370 "parse_y.y" /* yacc.c:1646 */ +#line 373 "parse_y.y" /* yacc.c:1646 */ { /* Not loading cursor position and zoom anymore */ } -#line 2037 "parse_y.c" /* yacc.c:1646 */ +#line 2040 "parse_y.c" /* yacc.c:1646 */ break; case 28: -#line 374 "parse_y.y" /* yacc.c:1646 */ +#line 377 "parse_y.y" /* yacc.c:1646 */ { /* Not loading cursor position and zoom anymore */ } -#line 2045 "parse_y.c" /* yacc.c:1646 */ +#line 2048 "parse_y.c" /* yacc.c:1646 */ break; case 31: -#line 383 "parse_y.y" /* yacc.c:1646 */ +#line 386 "parse_y.y" /* yacc.c:1646 */ { /* Read in cmil^2 for now; in future this should be a noop. */ load_meta_float("design/poly_isle_area", PCB_MIL_TO_COORD(PCB_MIL_TO_COORD ((yyvsp[-1].number)) / 100.0) / 100.0); } -#line 2054 "parse_y.c" /* yacc.c:1646 */ +#line 2057 "parse_y.c" /* yacc.c:1646 */ break; case 33: -#line 392 "parse_y.y" /* yacc.c:1646 */ +#line 395 "parse_y.y" /* yacc.c:1646 */ { yyPCB->ThermScale = (yyvsp[-1].number); } -#line 2062 "parse_y.c" /* yacc.c:1646 */ +#line 2065 "parse_y.c" /* yacc.c:1646 */ break; case 38: -#line 406 "parse_y.y" /* yacc.c:1646 */ +#line 409 "parse_y.y" /* yacc.c:1646 */ { load_meta_coord("design/bloat", NU((yyvsp[-3].measure))); load_meta_coord("design/shrink", NU((yyvsp[-2].measure))); @@ -2069,11 +2072,11 @@ load_meta_coord("design/min_wid", NU((yyvsp[-1].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-1].measure))); } -#line 2073 "parse_y.c" /* yacc.c:1646 */ +#line 2076 "parse_y.c" /* yacc.c:1646 */ break; case 39: -#line 416 "parse_y.y" /* yacc.c:1646 */ +#line 419 "parse_y.y" /* yacc.c:1646 */ { load_meta_coord("design/bloat", NU((yyvsp[-4].measure))); load_meta_coord("design/shrink", NU((yyvsp[-3].measure))); @@ -2081,11 +2084,11 @@ load_meta_coord("design/min_slk", NU((yyvsp[-1].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-2].measure))); } -#line 2085 "parse_y.c" /* yacc.c:1646 */ +#line 2088 "parse_y.c" /* yacc.c:1646 */ break; case 40: -#line 427 "parse_y.y" /* yacc.c:1646 */ +#line 430 "parse_y.y" /* yacc.c:1646 */ { load_meta_coord("design/bloat", NU((yyvsp[-6].measure))); load_meta_coord("design/shrink", NU((yyvsp[-5].measure))); @@ -2094,36 +2097,36 @@ load_meta_coord("design/min_drill", NU((yyvsp[-2].measure))); load_meta_coord("design/min_ring", NU((yyvsp[-1].measure))); } -#line 2098 "parse_y.c" /* yacc.c:1646 */ +#line 2101 "parse_y.c" /* yacc.c:1646 */ break; case 41: -#line 439 "parse_y.y" /* yacc.c:1646 */ +#line 442 "parse_y.y" /* yacc.c:1646 */ { yy_pcb_flags = pcb_flag_make((yyvsp[-1].integer) & PCB_FLAGS); } -#line 2106 "parse_y.c" /* yacc.c:1646 */ +#line 2109 "parse_y.c" /* yacc.c:1646 */ break; case 42: -#line 443 "parse_y.y" /* yacc.c:1646 */ +#line 446 "parse_y.y" /* yacc.c:1646 */ { yy_pcb_flags = pcb_strflg_board_s2f((yyvsp[-1].string), yyerror); free((yyvsp[-1].string)); } -#line 2115 "parse_y.c" /* yacc.c:1646 */ +#line 2118 "parse_y.c" /* yacc.c:1646 */ break; case 44: -#line 452 "parse_y.y" /* yacc.c:1646 */ +#line 455 "parse_y.y" /* yacc.c:1646 */ { layer_group_string = (yyvsp[-1].string); } -#line 2123 "parse_y.c" /* yacc.c:1646 */ +#line 2126 "parse_y.c" /* yacc.c:1646 */ break; case 46: -#line 460 "parse_y.y" /* yacc.c:1646 */ +#line 463 "parse_y.y" /* yacc.c:1646 */ { if (pcb_route_string_parse((yyvsp[-1].string), &yyPCB->RouteStyle, "mil")) { @@ -2132,11 +2135,11 @@ } free((yyvsp[-1].string)); } -#line 2136 "parse_y.c" /* yacc.c:1646 */ +#line 2139 "parse_y.c" /* yacc.c:1646 */ break; case 47: -#line 469 "parse_y.y" /* yacc.c:1646 */ +#line 472 "parse_y.y" /* yacc.c:1646 */ { if (pcb_route_string_parse(((yyvsp[-1].string) == NULL ? "" : (yyvsp[-1].string)), &yyPCB->RouteStyle, "cmil")) { @@ -2145,17 +2148,17 @@ } free((yyvsp[-1].string)); } -#line 2149 "parse_y.c" /* yacc.c:1646 */ +#line 2152 "parse_y.c" /* yacc.c:1646 */ break; case 54: -#line 492 "parse_y.y" /* yacc.c:1646 */ +#line 495 "parse_y.y" /* yacc.c:1646 */ { attr_list = & yyPCB->Attributes; } -#line 2155 "parse_y.c" /* yacc.c:1646 */ +#line 2158 "parse_y.c" /* yacc.c:1646 */ break; case 58: -#line 496 "parse_y.y" /* yacc.c:1646 */ +#line 499 "parse_y.y" /* yacc.c:1646 */ { /* clear pointer to force memory allocation by * the appropriate subroutine @@ -2162,57 +2165,57 @@ */ yysubc = NULL; } -#line 2166 "parse_y.c" /* yacc.c:1646 */ +#line 2169 "parse_y.c" /* yacc.c:1646 */ break; case 60: -#line 503 "parse_y.y" /* yacc.c:1646 */ +#line 506 "parse_y.y" /* yacc.c:1646 */ { YYABORT; } -#line 2172 "parse_y.c" /* yacc.c:1646 */ +#line 2175 "parse_y.c" /* yacc.c:1646 */ break; case 66: -#line 517 "parse_y.y" /* yacc.c:1646 */ +#line 520 "parse_y.y" /* yacc.c:1646 */ { 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 2182 "parse_y.c" /* yacc.c:1646 */ +#line 2185 "parse_y.c" /* yacc.c:1646 */ break; case 67: -#line 527 "parse_y.y" /* yacc.c:1646 */ +#line 530 "parse_y.y" /* yacc.c:1646 */ { 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 2192 "parse_y.c" /* yacc.c:1646 */ +#line 2195 "parse_y.c" /* yacc.c:1646 */ break; case 68: -#line 538 "parse_y.y" /* yacc.c:1646 */ +#line 541 "parse_y.y" /* yacc.c:1646 */ { 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 2202 "parse_y.c" /* yacc.c:1646 */ +#line 2205 "parse_y.c" /* yacc.c:1646 */ break; case 69: -#line 548 "parse_y.y" /* yacc.c:1646 */ +#line 551 "parse_y.y" /* yacc.c:1646 */ { 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 2212 "parse_y.c" /* yacc.c:1646 */ +#line 2215 "parse_y.c" /* yacc.c:1646 */ break; case 70: -#line 558 "parse_y.y" /* yacc.c:1646 */ +#line 561 "parse_y.y" /* yacc.c:1646 */ { pcb_coord_t hole = (OU((yyvsp[-3].measure)) * PCB_DEFAULT_DRILLINGHOLE); @@ -2225,29 +2228,29 @@ OU((yyvsp[-3].measure)) + 2*PCB_MASKFRAME, hole, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2229 "parse_y.c" /* yacc.c:1646 */ +#line 2232 "parse_y.c" /* yacc.c:1646 */ break; case 71: -#line 574 "parse_y.y" /* yacc.c:1646 */ +#line 577 "parse_y.y" /* yacc.c:1646 */ { 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)); } -#line 2238 "parse_y.c" /* yacc.c:1646 */ +#line 2241 "parse_y.c" /* yacc.c:1646 */ break; case 72: -#line 579 "parse_y.y" /* yacc.c:1646 */ +#line 582 "parse_y.y" /* yacc.c:1646 */ { 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))); } -#line 2247 "parse_y.c" /* yacc.c:1646 */ +#line 2250 "parse_y.c" /* yacc.c:1646 */ break; case 73: -#line 588 "parse_y.y" /* yacc.c:1646 */ +#line 591 "parse_y.y" /* yacc.c:1646 */ { if ((yyvsp[-4].integer) <= 0 || (yyvsp[-4].integer) > PCB_MAX_LAYER) { @@ -2274,44 +2277,44 @@ if ((yyvsp[-2].string) != NULL) free((yyvsp[-2].string)); } -#line 2278 "parse_y.c" /* yacc.c:1646 */ +#line 2281 "parse_y.c" /* yacc.c:1646 */ break; case 85: -#line 636 "parse_y.y" /* yacc.c:1646 */ +#line 639 "parse_y.y" /* yacc.c:1646 */ { 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 2287 "parse_y.c" /* yacc.c:1646 */ +#line 2290 "parse_y.c" /* yacc.c:1646 */ break; case 89: -#line 643 "parse_y.y" /* yacc.c:1646 */ +#line 646 "parse_y.y" /* yacc.c:1646 */ { attr_list = & Layer->Attributes; } -#line 2293 "parse_y.c" /* yacc.c:1646 */ +#line 2296 "parse_y.c" /* yacc.c:1646 */ break; case 92: -#line 649 "parse_y.y" /* yacc.c:1646 */ +#line 652 "parse_y.y" /* yacc.c:1646 */ { 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 2302 "parse_y.c" /* yacc.c:1646 */ +#line 2305 "parse_y.c" /* yacc.c:1646 */ break; case 93: -#line 658 "parse_y.y" /* yacc.c:1646 */ +#line 661 "parse_y.y" /* yacc.c:1646 */ { 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 2311 "parse_y.c" /* yacc.c:1646 */ +#line 2314 "parse_y.c" /* yacc.c:1646 */ break; case 94: -#line 667 "parse_y.y" /* yacc.c:1646 */ +#line 670 "parse_y.y" /* yacc.c:1646 */ { /* eliminate old-style rat-lines */ if ((IV ((yyvsp[-1].measure)) & PCB_FLAG_RAT) == 0) @@ -2318,48 +2321,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 2322 "parse_y.c" /* yacc.c:1646 */ +#line 2325 "parse_y.c" /* yacc.c:1646 */ break; case 95: -#line 678 "parse_y.y" /* yacc.c:1646 */ +#line 681 "parse_y.y" /* yacc.c:1646 */ { 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), pcb_true); } -#line 2331 "parse_y.c" /* yacc.c:1646 */ +#line 2334 "parse_y.c" /* yacc.c:1646 */ break; case 96: -#line 687 "parse_y.y" /* yacc.c:1646 */ +#line 690 "parse_y.y" /* yacc.c:1646 */ { 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)), pcb_true); } -#line 2340 "parse_y.c" /* yacc.c:1646 */ +#line 2343 "parse_y.c" /* yacc.c:1646 */ break; case 97: -#line 696 "parse_y.y" /* yacc.c:1646 */ +#line 699 "parse_y.y" /* yacc.c:1646 */ { 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)), pcb_true); } -#line 2349 "parse_y.c" /* yacc.c:1646 */ +#line 2352 "parse_y.c" /* yacc.c:1646 */ break; case 98: -#line 705 "parse_y.y" /* yacc.c:1646 */ +#line 708 "parse_y.y" /* yacc.c:1646 */ { /* use a default scale of 100% */ pcb_text_new(Layer,yyFont,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 2359 "parse_y.c" /* yacc.c:1646 */ +#line 2362 "parse_y.c" /* yacc.c:1646 */ break; case 99: -#line 715 "parse_y.y" /* yacc.c:1646 */ +#line 718 "parse_y.y" /* yacc.c:1646 */ { if ((yyvsp[-1].integer) & PCB_FLAG_ONSILK) { @@ -2374,11 +2377,11 @@ pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2378 "parse_y.c" /* yacc.c:1646 */ +#line 2381 "parse_y.c" /* yacc.c:1646 */ break; case 100: -#line 733 "parse_y.y" /* yacc.c:1646 */ +#line 736 "parse_y.y" /* yacc.c:1646 */ { /* FIXME: shouldn't know about .f */ /* I don't think this matters because anything with hi_format @@ -2398,19 +2401,19 @@ pcb_text_new(Layer, yyFont, NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), (yyvsp[-1].flagtype)); free ((yyvsp[-2].string)); } -#line 2402 "parse_y.c" /* yacc.c:1646 */ +#line 2405 "parse_y.c" /* yacc.c:1646 */ break; case 101: -#line 757 "parse_y.y" /* yacc.c:1646 */ +#line 760 "parse_y.y" /* yacc.c:1646 */ { Polygon = pcb_poly_new(Layer, 0, (yyvsp[-2].flagtype)); } -#line 2410 "parse_y.c" /* yacc.c:1646 */ +#line 2413 "parse_y.c" /* yacc.c:1646 */ break; case 102: -#line 762 "parse_y.y" /* yacc.c:1646 */ +#line 765 "parse_y.y" /* yacc.c:1646 */ { pcb_cardinal_t contour, contour_start, contour_end; pcb_bool bad_contour_found = pcb_false; @@ -2442,35 +2445,35 @@ pcb_r_insert_entry(Layer->polygon_tree, (pcb_box_t *) Polygon); } } -#line 2446 "parse_y.c" /* yacc.c:1646 */ +#line 2449 "parse_y.c" /* yacc.c:1646 */ break; case 105: -#line 802 "parse_y.y" /* yacc.c:1646 */ +#line 805 "parse_y.y" /* yacc.c:1646 */ { pcb_poly_hole_new(Polygon); } -#line 2454 "parse_y.c" /* yacc.c:1646 */ +#line 2457 "parse_y.c" /* yacc.c:1646 */ break; case 109: -#line 816 "parse_y.y" /* yacc.c:1646 */ +#line 819 "parse_y.y" /* yacc.c:1646 */ { pcb_poly_point_new(Polygon, OU ((yyvsp[-2].measure)), OU ((yyvsp[-1].measure))); } -#line 2462 "parse_y.c" /* yacc.c:1646 */ +#line 2465 "parse_y.c" /* yacc.c:1646 */ break; case 110: -#line 820 "parse_y.y" /* yacc.c:1646 */ +#line 823 "parse_y.y" /* yacc.c:1646 */ { pcb_poly_point_new(Polygon, NU ((yyvsp[-2].measure)), NU ((yyvsp[-1].measure))); } -#line 2470 "parse_y.c" /* yacc.c:1646 */ +#line 2473 "parse_y.c" /* yacc.c:1646 */ break; case 116: -#line 838 "parse_y.y" /* yacc.c:1646 */ +#line 841 "parse_y.y" /* yacc.c:1646 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyFont, 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(), pcb_false); @@ -2478,19 +2481,19 @@ free ((yyvsp[-5].string)); pin_num = 1; } -#line 2482 "parse_y.c" /* yacc.c:1646 */ +#line 2485 "parse_y.c" /* yacc.c:1646 */ break; case 117: -#line 846 "parse_y.y" /* yacc.c:1646 */ +#line 849 "parse_y.y" /* yacc.c:1646 */ { io_pcb_element_fin(yyData); } -#line 2490 "parse_y.c" /* yacc.c:1646 */ +#line 2493 "parse_y.c" /* yacc.c:1646 */ break; case 118: -#line 856 "parse_y.y" /* yacc.c:1646 */ +#line 859 "parse_y.y" /* yacc.c:1646 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyFont, 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)), pcb_false); @@ -2498,19 +2501,19 @@ free ((yyvsp[-7].string)); pin_num = 1; } -#line 2502 "parse_y.c" /* yacc.c:1646 */ +#line 2505 "parse_y.c" /* yacc.c:1646 */ break; case 119: -#line 864 "parse_y.y" /* yacc.c:1646 */ +#line 867 "parse_y.y" /* yacc.c:1646 */ { io_pcb_element_fin(yyData); } -#line 2510 "parse_y.c" /* yacc.c:1646 */ +#line 2513 "parse_y.c" /* yacc.c:1646 */ break; case 120: -#line 874 "parse_y.y" /* yacc.c:1646 */ +#line 877 "parse_y.y" /* yacc.c:1646 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyFont, 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)), pcb_false); @@ -2519,19 +2522,19 @@ free ((yyvsp[-7].string)); pin_num = 1; } -#line 2523 "parse_y.c" /* yacc.c:1646 */ +#line 2526 "parse_y.c" /* yacc.c:1646 */ break; case 121: -#line 883 "parse_y.y" /* yacc.c:1646 */ +#line 886 "parse_y.y" /* yacc.c:1646 */ { io_pcb_element_fin(yyData); } -#line 2531 "parse_y.c" /* yacc.c:1646 */ +#line 2534 "parse_y.c" /* yacc.c:1646 */ break; case 122: -#line 894 "parse_y.y" /* yacc.c:1646 */ +#line 897 "parse_y.y" /* yacc.c:1646 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyFont, 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)), @@ -2542,19 +2545,19 @@ free ((yyvsp[-10].string)); free ((yyvsp[-9].string)); } -#line 2546 "parse_y.c" /* yacc.c:1646 */ +#line 2549 "parse_y.c" /* yacc.c:1646 */ break; case 123: -#line 905 "parse_y.y" /* yacc.c:1646 */ +#line 908 "parse_y.y" /* yacc.c:1646 */ { io_pcb_element_fin(yyData); } -#line 2554 "parse_y.c" /* yacc.c:1646 */ +#line 2557 "parse_y.c" /* yacc.c:1646 */ break; case 124: -#line 916 "parse_y.y" /* yacc.c:1646 */ +#line 919 "parse_y.y" /* yacc.c:1646 */ { yysubc = io_pcb_element_new(yyData, yysubc, yyFont, (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)), @@ -2565,11 +2568,11 @@ free ((yyvsp[-10].string)); free ((yyvsp[-9].string)); } -#line 2569 "parse_y.c" /* yacc.c:1646 */ +#line 2572 "parse_y.c" /* yacc.c:1646 */ break; case 125: -#line 927 "parse_y.y" /* yacc.c:1646 */ +#line 930 "parse_y.y" /* yacc.c:1646 */ { if (pcb_subc_is_empty(yysubc)) { pcb_subc_free(yysubc); @@ -2579,111 +2582,111 @@ io_pcb_element_fin(yyData); } } -#line 2583 "parse_y.c" /* yacc.c:1646 */ +#line 2586 "parse_y.c" /* yacc.c:1646 */ break; case 133: -#line 951 "parse_y.y" /* yacc.c:1646 */ +#line 954 "parse_y.y" /* yacc.c:1646 */ { 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 2591 "parse_y.c" /* yacc.c:1646 */ +#line 2594 "parse_y.c" /* yacc.c:1646 */ break; case 134: -#line 956 "parse_y.y" /* yacc.c:1646 */ +#line 959 "parse_y.y" /* yacc.c:1646 */ { 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 2599 "parse_y.c" /* yacc.c:1646 */ +#line 2602 "parse_y.c" /* yacc.c:1646 */ break; case 135: -#line 961 "parse_y.y" /* yacc.c:1646 */ +#line 964 "parse_y.y" /* yacc.c:1646 */ { 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 2607 "parse_y.c" /* yacc.c:1646 */ +#line 2610 "parse_y.c" /* yacc.c:1646 */ break; case 136: -#line 966 "parse_y.y" /* yacc.c:1646 */ +#line 969 "parse_y.y" /* yacc.c:1646 */ { 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 2615 "parse_y.c" /* yacc.c:1646 */ +#line 2618 "parse_y.c" /* yacc.c:1646 */ break; case 137: -#line 971 "parse_y.y" /* yacc.c:1646 */ +#line 974 "parse_y.y" /* yacc.c:1646 */ { yysubc_ox = NU ((yyvsp[-2].measure)); yysubc_oy = NU ((yyvsp[-1].measure)); } -#line 2624 "parse_y.c" /* yacc.c:1646 */ +#line 2627 "parse_y.c" /* yacc.c:1646 */ break; case 138: -#line 976 "parse_y.y" /* yacc.c:1646 */ +#line 979 "parse_y.y" /* yacc.c:1646 */ { yysubc_ox = OU ((yyvsp[-2].measure)); yysubc_oy = OU ((yyvsp[-1].measure)); } -#line 2633 "parse_y.c" /* yacc.c:1646 */ +#line 2636 "parse_y.c" /* yacc.c:1646 */ break; case 139: -#line 980 "parse_y.y" /* yacc.c:1646 */ +#line 983 "parse_y.y" /* yacc.c:1646 */ { attr_list = & yysubc->Attributes; } -#line 2639 "parse_y.c" /* yacc.c:1646 */ +#line 2642 "parse_y.c" /* yacc.c:1646 */ break; case 147: -#line 995 "parse_y.y" /* yacc.c:1646 */ +#line 998 "parse_y.y" /* yacc.c:1646 */ { 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 2649 "parse_y.c" /* yacc.c:1646 */ +#line 2652 "parse_y.c" /* yacc.c:1646 */ break; case 148: -#line 1001 "parse_y.y" /* yacc.c:1646 */ +#line 1004 "parse_y.y" /* yacc.c:1646 */ { 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 2659 "parse_y.c" /* yacc.c:1646 */ +#line 2662 "parse_y.c" /* yacc.c:1646 */ break; case 149: -#line 1008 "parse_y.y" /* yacc.c:1646 */ +#line 1011 "parse_y.y" /* yacc.c:1646 */ { 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 2668 "parse_y.c" /* yacc.c:1646 */ +#line 2671 "parse_y.c" /* yacc.c:1646 */ break; case 150: -#line 1013 "parse_y.y" /* yacc.c:1646 */ +#line 1016 "parse_y.y" /* yacc.c:1646 */ { 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 2677 "parse_y.c" /* yacc.c:1646 */ +#line 2680 "parse_y.c" /* yacc.c:1646 */ break; case 151: -#line 1017 "parse_y.y" /* yacc.c:1646 */ +#line 1020 "parse_y.y" /* yacc.c:1646 */ { attr_list = & yysubc->Attributes; } -#line 2683 "parse_y.c" /* yacc.c:1646 */ +#line 2686 "parse_y.c" /* yacc.c:1646 */ break; case 153: -#line 1024 "parse_y.y" /* yacc.c:1646 */ +#line 1027 "parse_y.y" /* yacc.c:1646 */ { 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), @@ -2692,11 +2695,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2696 "parse_y.c" /* yacc.c:1646 */ +#line 2699 "parse_y.c" /* yacc.c:1646 */ break; case 154: -#line 1037 "parse_y.y" /* yacc.c:1646 */ +#line 1040 "parse_y.y" /* yacc.c:1646 */ { 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), @@ -2704,11 +2707,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2708 "parse_y.c" /* yacc.c:1646 */ +#line 2711 "parse_y.c" /* yacc.c:1646 */ break; case 155: -#line 1049 "parse_y.y" /* yacc.c:1646 */ +#line 1052 "parse_y.y" /* yacc.c:1646 */ { 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))); @@ -2715,11 +2718,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2719 "parse_y.c" /* yacc.c:1646 */ +#line 2722 "parse_y.c" /* yacc.c:1646 */ break; case 156: -#line 1060 "parse_y.y" /* yacc.c:1646 */ +#line 1063 "parse_y.y" /* yacc.c:1646 */ { char p_number[8]; @@ -2729,11 +2732,11 @@ free ((yyvsp[-2].string)); } -#line 2733 "parse_y.c" /* yacc.c:1646 */ +#line 2736 "parse_y.c" /* yacc.c:1646 */ break; case 157: -#line 1076 "parse_y.y" /* yacc.c:1646 */ +#line 1079 "parse_y.y" /* yacc.c:1646 */ { pcb_coord_t hole = OU ((yyvsp[-3].measure)) * PCB_DEFAULT_DRILLINGHOLE; char p_number[8]; @@ -2748,11 +2751,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 2752 "parse_y.c" /* yacc.c:1646 */ +#line 2755 "parse_y.c" /* yacc.c:1646 */ break; case 158: -#line 1095 "parse_y.y" /* yacc.c:1646 */ +#line 1098 "parse_y.y" /* yacc.c:1646 */ { pcb_pstk_t *pad = io_pcb_element_pad_new(yysubc, NU ((yyvsp[-10].measure)) + yysubc_ox, NU ((yyvsp[-9].measure)) + yysubc_oy, @@ -2763,11 +2766,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2767 "parse_y.c" /* yacc.c:1646 */ +#line 2770 "parse_y.c" /* yacc.c:1646 */ break; case 159: -#line 1110 "parse_y.y" /* yacc.c:1646 */ +#line 1113 "parse_y.y" /* yacc.c:1646 */ { io_pcb_element_pad_new(yysubc,OU ((yyvsp[-10].measure)) + yysubc_ox, OU ((yyvsp[-9].measure)) + yysubc_oy, OU ((yyvsp[-8].measure)) + yysubc_ox, @@ -2776,11 +2779,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2780 "parse_y.c" /* yacc.c:1646 */ +#line 2783 "parse_y.c" /* yacc.c:1646 */ break; case 160: -#line 1123 "parse_y.y" /* yacc.c:1646 */ +#line 1126 "parse_y.y" /* yacc.c:1646 */ { 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))); @@ -2787,11 +2790,11 @@ free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2791 "parse_y.c" /* yacc.c:1646 */ +#line 2794 "parse_y.c" /* yacc.c:1646 */ break; case 161: -#line 1134 "parse_y.y" /* yacc.c:1646 */ +#line 1137 "parse_y.y" /* yacc.c:1646 */ { char p_number[8]; @@ -2800,23 +2803,23 @@ OU ((yyvsp[-3].measure)) + 2*PCB_MASKFRAME, (yyvsp[-2].string),p_number, pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } -#line 2804 "parse_y.c" /* yacc.c:1646 */ +#line 2807 "parse_y.c" /* yacc.c:1646 */ break; case 162: -#line 1144 "parse_y.y" /* yacc.c:1646 */ +#line 1147 "parse_y.y" /* yacc.c:1646 */ { (yyval.flagtype) = pcb_flag_old((yyvsp[0].integer)); } -#line 2810 "parse_y.c" /* yacc.c:1646 */ +#line 2813 "parse_y.c" /* yacc.c:1646 */ break; case 163: -#line 1145 "parse_y.y" /* yacc.c:1646 */ +#line 1148 "parse_y.y" /* yacc.c:1646 */ { (yyval.flagtype) = pcb_strflg_s2f((yyvsp[0].string), yyerror, &yy_intconn, 1); free((yyvsp[0].string)); } -#line 2816 "parse_y.c" /* yacc.c:1646 */ +#line 2819 "parse_y.c" /* yacc.c:1646 */ break; case 167: -#line 1156 "parse_y.y" /* yacc.c:1646 */ +#line 1159 "parse_y.y" /* yacc.c:1646 */ { if ((yyvsp[-3].integer) <= 0 || (yyvsp[-3].integer) > PCB_MAX_FONTPOSITION) { @@ -2832,11 +2835,11 @@ Symbol->Valid = pcb_true; Symbol->Delta = NU ((yyvsp[-2].measure)); } -#line 2836 "parse_y.c" /* yacc.c:1646 */ +#line 2839 "parse_y.c" /* yacc.c:1646 */ break; case 168: -#line 1172 "parse_y.y" /* yacc.c:1646 */ +#line 1175 "parse_y.y" /* yacc.c:1646 */ { if ((yyvsp[-3].integer) <= 0 || (yyvsp[-3].integer) > PCB_MAX_FONTPOSITION) { @@ -2852,64 +2855,64 @@ Symbol->Valid = pcb_true; Symbol->Delta = OU ((yyvsp[-2].measure)); } -#line 2856 "parse_y.c" /* yacc.c:1646 */ +#line 2859 "parse_y.c" /* yacc.c:1646 */ break; case 174: -#line 1203 "parse_y.y" /* yacc.c:1646 */ +#line 1206 "parse_y.y" /* yacc.c:1646 */ { pcb_font_new_line_in_sym(Symbol, OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), OU ((yyvsp[-3].measure)), OU ((yyvsp[-2].measure)), OU ((yyvsp[-1].measure))); } -#line 2864 "parse_y.c" /* yacc.c:1646 */ +#line 2867 "parse_y.c" /* yacc.c:1646 */ break; case 175: -#line 1210 "parse_y.y" /* yacc.c:1646 */ +#line 1213 "parse_y.y" /* yacc.c:1646 */ { pcb_font_new_line_in_sym(Symbol, NU ((yyvsp[-5].measure)), NU ((yyvsp[-4].measure)), NU ((yyvsp[-3].measure)), NU ((yyvsp[-2].measure)), NU ((yyvsp[-1].measure))); } -#line 2872 "parse_y.c" /* yacc.c:1646 */ +#line 2875 "parse_y.c" /* yacc.c:1646 */ break; case 183: -#line 1237 "parse_y.y" /* yacc.c:1646 */ +#line 1240 "parse_y.y" /* yacc.c:1646 */ { Menu = pcb_lib_net_new((pcb_lib_t *)&yyPCB->NetlistLib, (yyvsp[-3].string), (yyvsp[-2].string)); free ((yyvsp[-3].string)); free ((yyvsp[-2].string)); } -#line 2882 "parse_y.c" /* yacc.c:1646 */ +#line 2885 "parse_y.c" /* yacc.c:1646 */ break; case 189: -#line 1257 "parse_y.y" /* yacc.c:1646 */ +#line 1260 "parse_y.y" /* yacc.c:1646 */ { pcb_lib_conn_new(Menu, (yyvsp[-1].string)); free ((yyvsp[-1].string)); } -#line 2891 "parse_y.c" /* yacc.c:1646 */ +#line 2894 "parse_y.c" /* yacc.c:1646 */ break; case 197: -#line 1304 "parse_y.y" /* yacc.c:1646 */ +#line 1307 "parse_y.y" /* yacc.c:1646 */ { pcb_ratspatch_append(yyPCB, RATP_ADD_CONN, (yyvsp[-2].string), (yyvsp[-1].string), NULL); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2897 "parse_y.c" /* yacc.c:1646 */ +#line 2900 "parse_y.c" /* yacc.c:1646 */ break; case 198: -#line 1305 "parse_y.y" /* yacc.c:1646 */ +#line 1308 "parse_y.y" /* yacc.c:1646 */ { pcb_ratspatch_append(yyPCB, RATP_DEL_CONN, (yyvsp[-2].string), (yyvsp[-1].string), NULL); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2903 "parse_y.c" /* yacc.c:1646 */ +#line 2906 "parse_y.c" /* yacc.c:1646 */ break; case 199: -#line 1306 "parse_y.y" /* yacc.c:1646 */ +#line 1309 "parse_y.y" /* yacc.c:1646 */ { pcb_ratspatch_append(yyPCB, RATP_CHANGE_ATTRIB, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string)); free((yyvsp[-3].string)); free((yyvsp[-2].string)); free((yyvsp[-1].string)); } -#line 2909 "parse_y.c" /* yacc.c:1646 */ +#line 2912 "parse_y.c" /* yacc.c:1646 */ break; case 200: -#line 1311 "parse_y.y" /* yacc.c:1646 */ +#line 1314 "parse_y.y" /* yacc.c:1646 */ { char *old_val, *key = (yyvsp[-2].string), *val = (yyvsp[-1].string) ? (yyvsp[-1].string) : (char *)""; old_val = pcb_attribute_get(attr_list, key); @@ -2920,95 +2923,95 @@ free(key); free(val); } -#line 2924 "parse_y.c" /* yacc.c:1646 */ +#line 2927 "parse_y.c" /* yacc.c:1646 */ break; case 201: -#line 1323 "parse_y.y" /* yacc.c:1646 */ +#line 1326 "parse_y.y" /* yacc.c:1646 */ { (yyval.string) = (yyvsp[0].string); } -#line 2930 "parse_y.c" /* yacc.c:1646 */ +#line 2933 "parse_y.c" /* yacc.c:1646 */ break; case 202: -#line 1324 "parse_y.y" /* yacc.c:1646 */ +#line 1327 "parse_y.y" /* yacc.c:1646 */ { (yyval.string) = 0; } -#line 2936 "parse_y.c" /* yacc.c:1646 */ +#line 2939 "parse_y.c" /* yacc.c:1646 */ break; case 203: -#line 1328 "parse_y.y" /* yacc.c:1646 */ +#line 1331 "parse_y.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[0].number); } -#line 2942 "parse_y.c" /* yacc.c:1646 */ +#line 2945 "parse_y.c" /* yacc.c:1646 */ break; case 204: -#line 1329 "parse_y.y" /* yacc.c:1646 */ +#line 1332 "parse_y.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[0].integer); } -#line 2948 "parse_y.c" /* yacc.c:1646 */ +#line 2951 "parse_y.c" /* yacc.c:1646 */ break; case 205: -#line 1334 "parse_y.y" /* yacc.c:1646 */ +#line 1337 "parse_y.y" /* yacc.c:1646 */ { do_measure(&(yyval.measure), (yyvsp[0].number), PCB_MIL_TO_COORD ((yyvsp[0].number)) / 100.0, 0); } -#line 2954 "parse_y.c" /* yacc.c:1646 */ +#line 2957 "parse_y.c" /* yacc.c:1646 */ break; case 206: -#line 1335 "parse_y.y" /* yacc.c:1646 */ +#line 1338 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MIL_TO_COORD ((yyvsp[-1].number)) / 100000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2960 "parse_y.c" /* yacc.c:1646 */ +#line 2963 "parse_y.c" /* yacc.c:1646 */ break; case 207: -#line 1336 "parse_y.y" /* yacc.c:1646 */ +#line 1339 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MIL_TO_COORD ((yyvsp[-1].number)) / 100.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2966 "parse_y.c" /* yacc.c:1646 */ +#line 2969 "parse_y.c" /* yacc.c:1646 */ break; case 208: -#line 1337 "parse_y.y" /* yacc.c:1646 */ +#line 1340 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MIL_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2972 "parse_y.c" /* yacc.c:1646 */ +#line 2975 "parse_y.c" /* yacc.c:1646 */ break; case 209: -#line 1338 "parse_y.y" /* yacc.c:1646 */ +#line 1341 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_INCH_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2978 "parse_y.c" /* yacc.c:1646 */ +#line 2981 "parse_y.c" /* yacc.c:1646 */ break; case 210: -#line 1339 "parse_y.y" /* yacc.c:1646 */ +#line 1342 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MM_TO_COORD ((yyvsp[-1].number)) / 1000000.0); pcb_io_pcb_usty_seen |= PCB_USTY_NANOMETER; } -#line 2984 "parse_y.c" /* yacc.c:1646 */ +#line 2987 "parse_y.c" /* yacc.c:1646 */ break; case 211: -#line 1340 "parse_y.y" /* yacc.c:1646 */ +#line 1343 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MM_TO_COORD ((yyvsp[-1].number)) / 1000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2990 "parse_y.c" /* yacc.c:1646 */ +#line 2993 "parse_y.c" /* yacc.c:1646 */ break; case 212: -#line 1341 "parse_y.y" /* yacc.c:1646 */ +#line 1344 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MM_TO_COORD ((yyvsp[-1].number))); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 2996 "parse_y.c" /* yacc.c:1646 */ +#line 2999 "parse_y.c" /* yacc.c:1646 */ break; case 213: -#line 1342 "parse_y.y" /* yacc.c:1646 */ +#line 1345 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MM_TO_COORD ((yyvsp[-1].number)) * 1000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3002 "parse_y.c" /* yacc.c:1646 */ +#line 3005 "parse_y.c" /* yacc.c:1646 */ break; case 214: -#line 1343 "parse_y.y" /* yacc.c:1646 */ +#line 1346 "parse_y.y" /* yacc.c:1646 */ { M ((yyval.measure), (yyvsp[-1].number), PCB_MM_TO_COORD ((yyvsp[-1].number)) * 1000000.0); pcb_io_pcb_usty_seen |= PCB_USTY_UNITS; } -#line 3008 "parse_y.c" /* yacc.c:1646 */ +#line 3011 "parse_y.c" /* yacc.c:1646 */ break; -#line 3012 "parse_y.c" /* yacc.c:1646 */ +#line 3015 "parse_y.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3236,7 +3239,7 @@ #endif return yyresult; } -#line 1346 "parse_y.y" /* yacc.c:1906 */ +#line 1349 "parse_y.y" /* yacc.c:1906 */ /* --------------------------------------------------------------------------- Index: parse_y.h =================================================================== --- parse_y.h (revision 21612) +++ parse_y.h (revision 21613) @@ -101,7 +101,7 @@ typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 116 "parse_y.y" /* yacc.c:1909 */ +#line 117 "parse_y.y" /* yacc.c:1909 */ int integer; double number; Index: parse_y.y =================================================================== --- parse_y.y (revision 21612) +++ parse_y.y (revision 21613) @@ -76,6 +76,7 @@ extern conf_role_t yy_settings_dest; extern pcb_flag_t yy_pcb_flags; extern int *yyFontkitValid; +extern int yyElemFixLayers; static char *layer_group_string; @@ -226,15 +227,17 @@ element { LayerFlag[0] = pcb_true; LayerFlag[1] = pcb_true; - yyData->LayerN = 2; - yyData->Layer[0].parent_type = PCB_PARENT_DATA; - yyData->Layer[0].parent.data = yyData; - yyData->Layer[0].is_bound = 1; - yyData->Layer[0].meta.bound.type = PCB_LYT_SILK | PCB_LYT_TOP; - yyData->Layer[1].parent_type = PCB_PARENT_DATA; - yyData->Layer[1].parent.data = yyData; - yyData->Layer[1].is_bound = 1; - yyData->Layer[1].meta.bound.type = PCB_LYT_SILK | PCB_LYT_BOTTOM; + if (yyElemFixLayers) { + yyData->LayerN = 2; + yyData->Layer[0].parent_type = PCB_PARENT_DATA; + yyData->Layer[0].parent.data = yyData; + yyData->Layer[0].is_bound = 1; + yyData->Layer[0].meta.bound.type = PCB_LYT_SILK | PCB_LYT_TOP; + yyData->Layer[1].parent_type = PCB_PARENT_DATA; + yyData->Layer[1].parent.data = yyData; + yyData->Layer[1].is_bound = 1; + yyData->Layer[1].meta.bound.type = PCB_LYT_SILK | PCB_LYT_BOTTOM; + } PostLoadElementPCB (); } ;