From 994aa8a2908503d1345c467b827c21bc012168b8 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Fri, 30 Jan 2009 16:43:48 +0000 Subject: [PATCH] get string option would NEVER work! Ugly fix until will replace all const char* with std::strings in the options --- Common/Gmsh.cpp | 3 +- Common/Options.cpp | 4 +- Common/Options.h | 3 +- Parser/Gmsh.tab.cpp | 662 ++++++++++++++++++++++---------------------- Parser/Gmsh.y | 22 +- 5 files changed, 350 insertions(+), 344 deletions(-) diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp index 4868a115d1..eecd0c5b40 100644 --- a/Common/Gmsh.cpp +++ b/Common/Gmsh.cpp @@ -65,7 +65,8 @@ int GmshSetMessageHandler(GmshMessage *callback) int GmshSetOption(std::string category, std::string name, std::string value, int index) { - if(StringOption(GMSH_SET, category.c_str(), index, name.c_str(), value.c_str())) + std::string dummy; + if(StringOption(GMSH_SET, category.c_str(), index, name.c_str(), value.c_str(), dummy)) return 1; return 0; } diff --git a/Common/Options.cpp b/Common/Options.cpp index 5c18e1456a..facb1518ef 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -51,7 +51,7 @@ Context_T CTX; // General routines for string options bool StringOption(int action, const char *category, int num, - const char *name, const char *val) + const char *name, const char *val, std::string &out) { StringXString *s = 0; if(!strcmp(category, "General")) @@ -80,7 +80,7 @@ bool StringOption(int action, const char *category, int num, return false; } - s[i].function(num, action, val); + out = s[i].function(num, action, val); return true; } diff --git a/Common/Options.h b/Common/Options.h index 3e9d961dfc..0659b552c5 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -6,6 +6,7 @@ #ifndef _OPTIONS_H_ #define _OPTIONS_H_ +#include <string> #include "ColorTable.h" #define GMSH_SET (1<<0) @@ -803,7 +804,7 @@ void Print_Options(int num, int level, int diff, int help, const char *filename) void Print_OptionsDoc(); bool StringOption(int action, const char *category, int num, - const char *name, const char *val); + const char *name, const char *val, std::string &out); bool NumberOption(int action, const char *category, int num, const char *name, double &val); bool ColorOption(int action, const char *category, int num, diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index d1554999ca..9e1b843065 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -975,35 +975,35 @@ static const yytype_uint16 yyrline[] = 458, 311, 476, 483, 494, 493, 512, 519, 530, 529, 547, 563, 586, 585, 599, 600, 601, 602, 603, 607, 608, 615, 637, 664, 704, 714, 722, 730, 742, 751, - 756, 764, 782, 800, 809, 821, 826, 834, 854, 877, - 884, 890, 910, 931, 957, 969, 986, 990, 1000, 1003, - 1016, 1019, 1029, 1052, 1068, 1090, 1108, 1126, 1156, 1186, - 1206, 1224, 1242, 1268, 1285, 1304, 1322, 1361, 1367, 1373, - 1380, 1405, 1430, 1446, 1462, 1493, 1511, 1528, 1549, 1554, - 1559, 1564, 1569, 1589, 1595, 1606, 1607, 1612, 1615, 1619, - 1642, 1665, 1688, 1716, 1725, 1729, 1744, 1771, 1788, 1802, - 1808, 1814, 1823, 1837, 1885, 1903, 1918, 1937, 1949, 1973, - 1977, 1982, 1987, 1998, 2015, 2032, 2051, 2070, 2098, 2106, - 2112, 2119, 2123, 2132, 2140, 2148, 2157, 2156, 2169, 2168, - 2181, 2180, 2193, 2192, 2205, 2212, 2219, 2226, 2233, 2240, - 2247, 2254, 2261, 2269, 2268, 2280, 2279, 2291, 2290, 2302, - 2301, 2313, 2312, 2324, 2323, 2335, 2334, 2346, 2345, 2357, - 2356, 2371, 2374, 2380, 2389, 2409, 2432, 2436, 2460, 2463, - 2479, 2482, 2495, 2498, 2504, 2507, 2514, 2568, 2638, 2643, - 2710, 2753, 2779, 2802, 2825, 2828, 2837, 2841, 2857, 2858, - 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2872, 2873, 2874, - 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, - 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, - 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2905, - 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, - 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, - 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2944, 2957, 2969, - 2984, 2994, 3004, 3022, 3027, 3032, 3042, 3052, 3060, 3064, - 3068, 3072, 3076, 3083, 3087, 3091, 3095, 3102, 3107, 3114, - 3119, 3123, 3128, 3132, 3140, 3151, 3155, 3167, 3175, 3183, - 3190, 3201, 3221, 3231, 3241, 3251, 3271, 3276, 3280, 3284, - 3296, 3300, 3312, 3319, 3329, 3333, 3348, 3353, 3360, 3364, - 3377, 3385, 3396, 3400, 3408, 3416, 3430, 3444, 3448 + 757, 766, 784, 802, 811, 823, 828, 836, 856, 879, + 886, 892, 912, 933, 959, 971, 988, 992, 1002, 1005, + 1018, 1021, 1031, 1054, 1070, 1092, 1110, 1128, 1158, 1188, + 1208, 1226, 1244, 1270, 1287, 1306, 1324, 1363, 1369, 1375, + 1382, 1407, 1432, 1448, 1464, 1495, 1513, 1530, 1551, 1556, + 1561, 1566, 1571, 1591, 1597, 1608, 1609, 1614, 1617, 1621, + 1644, 1667, 1690, 1718, 1727, 1731, 1746, 1773, 1790, 1804, + 1810, 1816, 1825, 1839, 1887, 1905, 1920, 1939, 1951, 1975, + 1979, 1984, 1989, 2000, 2017, 2034, 2053, 2072, 2100, 2108, + 2114, 2121, 2125, 2134, 2142, 2150, 2159, 2158, 2171, 2170, + 2183, 2182, 2195, 2194, 2207, 2214, 2221, 2228, 2235, 2242, + 2249, 2256, 2263, 2271, 2270, 2282, 2281, 2293, 2292, 2304, + 2303, 2315, 2314, 2326, 2325, 2337, 2336, 2348, 2347, 2359, + 2358, 2373, 2376, 2382, 2391, 2411, 2434, 2438, 2462, 2465, + 2481, 2484, 2497, 2500, 2506, 2509, 2516, 2570, 2640, 2645, + 2712, 2755, 2781, 2804, 2827, 2830, 2839, 2843, 2859, 2860, + 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2874, 2875, 2876, + 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, + 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, + 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2907, + 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, + 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, + 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2946, 2959, 2971, + 2986, 2996, 3006, 3024, 3029, 3034, 3044, 3054, 3062, 3066, + 3070, 3074, 3078, 3085, 3089, 3093, 3097, 3104, 3109, 3116, + 3121, 3125, 3130, 3134, 3142, 3153, 3157, 3169, 3177, 3185, + 3192, 3203, 3223, 3233, 3243, 3253, 3273, 3278, 3282, 3286, + 3298, 3302, 3314, 3321, 3331, 3335, 3350, 3355, 3362, 3366, + 3379, 3387, 3398, 3402, 3410, 3418, 3432, 3446, 3450 }; #endif @@ -4375,21 +4375,23 @@ yyreduce: case 69: #line 752 "Gmsh.y" { - StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); + std::string dummy; + StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c), dummy); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c)); ;} break; case 70: -#line 757 "Gmsh.y" +#line 758 "Gmsh.y" { - StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].c)); + std::string dummy; + StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].c), dummy); Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c)); ;} break; case 71: -#line 765 "Gmsh.y" +#line 767 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -4410,7 +4412,7 @@ yyreduce: break; case 72: -#line 783 "Gmsh.y" +#line 785 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -4431,7 +4433,7 @@ yyreduce: break; case 73: -#line 801 "Gmsh.y" +#line 803 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -4443,7 +4445,7 @@ yyreduce: break; case 74: -#line 810 "Gmsh.y" +#line 812 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -4455,7 +4457,7 @@ yyreduce: break; case 75: -#line 822 "Gmsh.y" +#line 824 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); @@ -4463,7 +4465,7 @@ yyreduce: break; case 76: -#line 827 "Gmsh.y" +#line 829 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); @@ -4471,7 +4473,7 @@ yyreduce: break; case 77: -#line 835 "Gmsh.y" +#line 837 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -4494,7 +4496,7 @@ yyreduce: break; case 78: -#line 855 "Gmsh.y" +#line 857 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -4517,7 +4519,7 @@ yyreduce: break; case 79: -#line 878 "Gmsh.y" +#line 880 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (5)].c),"Background")) GModel::current()->getFields()->background_field = (int)(yyvsp[(4) - (5)].d); @@ -4527,7 +4529,7 @@ yyreduce: break; case 80: -#line 885 "Gmsh.y" +#line 887 "Gmsh.y" { if(!GModel::current()->getFields()->new_field((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)); @@ -4536,7 +4538,7 @@ yyreduce: break; case 81: -#line 891 "Gmsh.y" +#line 893 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4559,7 +4561,7 @@ yyreduce: break; case 82: -#line 911 "Gmsh.y" +#line 913 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4583,7 +4585,7 @@ yyreduce: break; case 83: -#line 932 "Gmsh.y" +#line 934 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); if(field){ @@ -4609,7 +4611,7 @@ yyreduce: break; case 84: -#line 958 "Gmsh.y" +#line 960 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4624,7 +4626,7 @@ yyreduce: break; case 85: -#line 970 "Gmsh.y" +#line 972 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4639,14 +4641,14 @@ yyreduce: break; case 86: -#line 987 "Gmsh.y" +#line 989 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 87: -#line 991 "Gmsh.y" +#line 993 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -4655,14 +4657,14 @@ yyreduce: break; case 88: -#line 1000 "Gmsh.y" +#line 1002 "Gmsh.y" { (yyval.l) = 0; ;} break; case 89: -#line 1004 "Gmsh.y" +#line 1006 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -4675,21 +4677,21 @@ yyreduce: break; case 90: -#line 1016 "Gmsh.y" +#line 1018 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 91: -#line 1020 "Gmsh.y" +#line 1022 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 92: -#line 1030 "Gmsh.y" +#line 1032 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -4715,7 +4717,7 @@ yyreduce: break; case 93: -#line 1053 "Gmsh.y" +#line 1055 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -4734,7 +4736,7 @@ yyreduce: break; case 94: -#line 1069 "Gmsh.y" +#line 1071 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -4756,7 +4758,7 @@ yyreduce: break; case 95: -#line 1091 "Gmsh.y" +#line 1093 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4777,7 +4779,7 @@ yyreduce: break; case 96: -#line 1109 "Gmsh.y" +#line 1111 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4798,7 +4800,7 @@ yyreduce: break; case 97: -#line 1127 "Gmsh.y" +#line 1129 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4831,7 +4833,7 @@ yyreduce: break; case 98: -#line 1157 "Gmsh.y" +#line 1159 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4864,7 +4866,7 @@ yyreduce: break; case 99: -#line 1188 "Gmsh.y" +#line 1190 "Gmsh.y" { int num = (int)(yyvsp[(3) - (17)].d); if(FindCurve(num)){ @@ -4886,7 +4888,7 @@ yyreduce: break; case 100: -#line 1207 "Gmsh.y" +#line 1209 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4907,7 +4909,7 @@ yyreduce: break; case 101: -#line 1225 "Gmsh.y" +#line 1227 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4928,7 +4930,7 @@ yyreduce: break; case 102: -#line 1243 "Gmsh.y" +#line 1245 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ @@ -4957,7 +4959,7 @@ yyreduce: break; case 103: -#line 1269 "Gmsh.y" +#line 1271 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -4977,7 +4979,7 @@ yyreduce: break; case 104: -#line 1286 "Gmsh.y" +#line 1288 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -4996,7 +4998,7 @@ yyreduce: break; case 105: -#line 1305 "Gmsh.y" +#line 1307 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5017,7 +5019,7 @@ yyreduce: break; case 106: -#line 1323 "Gmsh.y" +#line 1325 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -5059,7 +5061,7 @@ yyreduce: break; case 107: -#line 1362 "Gmsh.y" +#line 1364 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5068,7 +5070,7 @@ yyreduce: break; case 108: -#line 1368 "Gmsh.y" +#line 1370 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5077,7 +5079,7 @@ yyreduce: break; case 109: -#line 1374 "Gmsh.y" +#line 1376 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -5087,7 +5089,7 @@ yyreduce: break; case 110: -#line 1381 "Gmsh.y" +#line 1383 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5115,7 +5117,7 @@ yyreduce: break; case 111: -#line 1406 "Gmsh.y" +#line 1408 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5143,7 +5145,7 @@ yyreduce: break; case 112: -#line 1431 "Gmsh.y" +#line 1433 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5162,7 +5164,7 @@ yyreduce: break; case 113: -#line 1447 "Gmsh.y" +#line 1449 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5181,7 +5183,7 @@ yyreduce: break; case 114: -#line 1463 "Gmsh.y" +#line 1465 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5211,7 +5213,7 @@ yyreduce: break; case 115: -#line 1494 "Gmsh.y" +#line 1496 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5232,7 +5234,7 @@ yyreduce: break; case 116: -#line 1512 "Gmsh.y" +#line 1514 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5252,7 +5254,7 @@ yyreduce: break; case 117: -#line 1529 "Gmsh.y" +#line 1531 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5271,7 +5273,7 @@ yyreduce: break; case 118: -#line 1550 "Gmsh.y" +#line 1552 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); @@ -5279,7 +5281,7 @@ yyreduce: break; case 119: -#line 1555 "Gmsh.y" +#line 1557 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); @@ -5287,7 +5289,7 @@ yyreduce: break; case 120: -#line 1560 "Gmsh.y" +#line 1562 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); @@ -5295,7 +5297,7 @@ yyreduce: break; case 121: -#line 1565 "Gmsh.y" +#line 1567 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); @@ -5303,7 +5305,7 @@ yyreduce: break; case 122: -#line 1570 "Gmsh.y" +#line 1572 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5326,7 +5328,7 @@ yyreduce: break; case 123: -#line 1590 "Gmsh.y" +#line 1592 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5335,7 +5337,7 @@ yyreduce: break; case 124: -#line 1596 "Gmsh.y" +#line 1598 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5346,31 +5348,31 @@ yyreduce: break; case 125: -#line 1606 "Gmsh.y" +#line 1608 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 126: -#line 1607 "Gmsh.y" +#line 1609 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 127: -#line 1612 "Gmsh.y" +#line 1614 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; case 128: -#line 1616 "Gmsh.y" +#line 1618 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; case 129: -#line 1620 "Gmsh.y" +#line 1622 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5396,7 +5398,7 @@ yyreduce: break; case 130: -#line 1643 "Gmsh.y" +#line 1645 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5422,7 +5424,7 @@ yyreduce: break; case 131: -#line 1666 "Gmsh.y" +#line 1668 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5448,7 +5450,7 @@ yyreduce: break; case 132: -#line 1689 "Gmsh.y" +#line 1691 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5474,7 +5476,7 @@ yyreduce: break; case 133: -#line 1717 "Gmsh.y" +#line 1719 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5486,14 +5488,14 @@ yyreduce: break; case 134: -#line 1726 "Gmsh.y" +#line 1728 "Gmsh.y" { GModel::current()->getFields()->delete_field((int)(yyvsp[(4) - (6)].d)); ;} break; case 135: -#line 1730 "Gmsh.y" +#line 1732 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -5511,7 +5513,7 @@ yyreduce: break; case 136: -#line 1745 "Gmsh.y" +#line 1747 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ for(unsigned int i = 0; i < GModel::list.size(); i++){ @@ -5541,7 +5543,7 @@ yyreduce: break; case 137: -#line 1772 "Gmsh.y" +#line 1774 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -5556,7 +5558,7 @@ yyreduce: break; case 138: -#line 1789 "Gmsh.y" +#line 1791 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -5568,7 +5570,7 @@ yyreduce: break; case 139: -#line 1803 "Gmsh.y" +#line 1805 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -5577,7 +5579,7 @@ yyreduce: break; case 140: -#line 1809 "Gmsh.y" +#line 1811 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -5586,7 +5588,7 @@ yyreduce: break; case 141: -#line 1815 "Gmsh.y" +#line 1817 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5598,7 +5600,7 @@ yyreduce: break; case 142: -#line 1824 "Gmsh.y" +#line 1826 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5610,7 +5612,7 @@ yyreduce: break; case 143: -#line 1838 "Gmsh.y" +#line 1840 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -5661,7 +5663,7 @@ yyreduce: break; case 144: -#line 1886 "Gmsh.y" +#line 1888 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -5682,7 +5684,7 @@ yyreduce: break; case 145: -#line 1904 "Gmsh.y" +#line 1906 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -5700,7 +5702,7 @@ yyreduce: break; case 146: -#line 1919 "Gmsh.y" +#line 1921 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -5722,7 +5724,7 @@ yyreduce: break; case 147: -#line 1938 "Gmsh.y" +#line 1940 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -5737,7 +5739,7 @@ yyreduce: break; case 148: -#line 1950 "Gmsh.y" +#line 1952 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -5764,14 +5766,14 @@ yyreduce: break; case 149: -#line 1974 "Gmsh.y" +#line 1976 "Gmsh.y" { exit(0); ;} break; case 150: -#line 1978 "Gmsh.y" +#line 1980 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); @@ -5779,7 +5781,7 @@ yyreduce: break; case 151: -#line 1983 "Gmsh.y" +#line 1985 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -5787,7 +5789,7 @@ yyreduce: break; case 152: -#line 1988 "Gmsh.y" +#line 1990 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -5796,7 +5798,7 @@ yyreduce: break; case 153: -#line 1999 "Gmsh.y" +#line 2001 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -5816,7 +5818,7 @@ yyreduce: break; case 154: -#line 2016 "Gmsh.y" +#line 2018 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -5836,7 +5838,7 @@ yyreduce: break; case 155: -#line 2033 "Gmsh.y" +#line 2035 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -5858,7 +5860,7 @@ yyreduce: break; case 156: -#line 2052 "Gmsh.y" +#line 2054 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -5880,7 +5882,7 @@ yyreduce: break; case 157: -#line 2071 "Gmsh.y" +#line 2073 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -5911,7 +5913,7 @@ yyreduce: break; case 158: -#line 2099 "Gmsh.y" +#line 2101 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5922,7 +5924,7 @@ yyreduce: break; case 159: -#line 2107 "Gmsh.y" +#line 2109 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5931,7 +5933,7 @@ yyreduce: break; case 160: -#line 2113 "Gmsh.y" +#line 2115 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5941,20 +5943,20 @@ yyreduce: break; case 161: -#line 2120 "Gmsh.y" +#line 2122 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; case 162: -#line 2124 "Gmsh.y" +#line 2126 "Gmsh.y" { ;} break; case 163: -#line 2133 "Gmsh.y" +#line 2135 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -5965,7 +5967,7 @@ yyreduce: break; case 164: -#line 2141 "Gmsh.y" +#line 2143 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -5976,7 +5978,7 @@ yyreduce: break; case 165: -#line 2149 "Gmsh.y" +#line 2151 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -5987,14 +5989,14 @@ yyreduce: break; case 166: -#line 2157 "Gmsh.y" +#line 2159 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 167: -#line 2161 "Gmsh.y" +#line 2163 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6005,14 +6007,14 @@ yyreduce: break; case 168: -#line 2169 "Gmsh.y" +#line 2171 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 169: -#line 2173 "Gmsh.y" +#line 2175 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6023,14 +6025,14 @@ yyreduce: break; case 170: -#line 2181 "Gmsh.y" +#line 2183 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 171: -#line 2185 "Gmsh.y" +#line 2187 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6041,14 +6043,14 @@ yyreduce: break; case 172: -#line 2193 "Gmsh.y" +#line 2195 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 173: -#line 2197 "Gmsh.y" +#line 2199 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6058,7 +6060,7 @@ yyreduce: break; case 174: -#line 2206 "Gmsh.y" +#line 2208 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6068,7 +6070,7 @@ yyreduce: break; case 175: -#line 2213 "Gmsh.y" +#line 2215 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6078,7 +6080,7 @@ yyreduce: break; case 176: -#line 2220 "Gmsh.y" +#line 2222 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6088,7 +6090,7 @@ yyreduce: break; case 177: -#line 2227 "Gmsh.y" +#line 2229 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6098,7 +6100,7 @@ yyreduce: break; case 178: -#line 2234 "Gmsh.y" +#line 2236 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6108,7 +6110,7 @@ yyreduce: break; case 179: -#line 2241 "Gmsh.y" +#line 2243 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6118,7 +6120,7 @@ yyreduce: break; case 180: -#line 2248 "Gmsh.y" +#line 2250 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6128,7 +6130,7 @@ yyreduce: break; case 181: -#line 2255 "Gmsh.y" +#line 2257 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6138,7 +6140,7 @@ yyreduce: break; case 182: -#line 2262 "Gmsh.y" +#line 2264 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6148,14 +6150,14 @@ yyreduce: break; case 183: -#line 2269 "Gmsh.y" +#line 2271 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 184: -#line 2273 "Gmsh.y" +#line 2275 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6165,14 +6167,14 @@ yyreduce: break; case 185: -#line 2280 "Gmsh.y" +#line 2282 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 186: -#line 2284 "Gmsh.y" +#line 2286 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6182,14 +6184,14 @@ yyreduce: break; case 187: -#line 2291 "Gmsh.y" +#line 2293 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 188: -#line 2295 "Gmsh.y" +#line 2297 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6199,14 +6201,14 @@ yyreduce: break; case 189: -#line 2302 "Gmsh.y" +#line 2304 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 190: -#line 2306 "Gmsh.y" +#line 2308 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6216,14 +6218,14 @@ yyreduce: break; case 191: -#line 2313 "Gmsh.y" +#line 2315 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 192: -#line 2317 "Gmsh.y" +#line 2319 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6233,14 +6235,14 @@ yyreduce: break; case 193: -#line 2324 "Gmsh.y" +#line 2326 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 194: -#line 2328 "Gmsh.y" +#line 2330 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6250,14 +6252,14 @@ yyreduce: break; case 195: -#line 2335 "Gmsh.y" +#line 2337 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 196: -#line 2339 "Gmsh.y" +#line 2341 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6267,14 +6269,14 @@ yyreduce: break; case 197: -#line 2346 "Gmsh.y" +#line 2348 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 198: -#line 2350 "Gmsh.y" +#line 2352 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6284,14 +6286,14 @@ yyreduce: break; case 199: -#line 2357 "Gmsh.y" +#line 2359 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 200: -#line 2361 "Gmsh.y" +#line 2363 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6301,19 +6303,19 @@ yyreduce: break; case 201: -#line 2372 "Gmsh.y" +#line 2374 "Gmsh.y" { ;} break; case 202: -#line 2375 "Gmsh.y" +#line 2377 "Gmsh.y" { ;} break; case 203: -#line 2381 "Gmsh.y" +#line 2383 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6325,7 +6327,7 @@ yyreduce: break; case 204: -#line 2390 "Gmsh.y" +#line 2392 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6348,7 +6350,7 @@ yyreduce: break; case 205: -#line 2410 "Gmsh.y" +#line 2412 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -6374,14 +6376,14 @@ yyreduce: break; case 206: -#line 2433 "Gmsh.y" +#line 2435 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 207: -#line 2437 "Gmsh.y" +#line 2439 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6403,14 +6405,14 @@ yyreduce: break; case 208: -#line 2460 "Gmsh.y" +#line 2462 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 209: -#line 2464 "Gmsh.y" +#line 2466 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -6426,14 +6428,14 @@ yyreduce: break; case 210: -#line 2479 "Gmsh.y" +#line 2481 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 211: -#line 2483 "Gmsh.y" +#line 2485 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -6446,35 +6448,35 @@ yyreduce: break; case 212: -#line 2495 "Gmsh.y" +#line 2497 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 213: -#line 2499 "Gmsh.y" +#line 2501 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 214: -#line 2504 "Gmsh.y" +#line 2506 "Gmsh.y" { (yyval.i) = 45; ;} break; case 215: -#line 2508 "Gmsh.y" +#line 2510 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 216: -#line 2515 "Gmsh.y" +#line 2517 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -6531,7 +6533,7 @@ yyreduce: break; case 217: -#line 2569 "Gmsh.y" +#line 2571 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -6604,7 +6606,7 @@ yyreduce: break; case 218: -#line 2639 "Gmsh.y" +#line 2641 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); @@ -6612,7 +6614,7 @@ yyreduce: break; case 219: -#line 2644 "Gmsh.y" +#line 2646 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -6682,7 +6684,7 @@ yyreduce: break; case 220: -#line 2711 "Gmsh.y" +#line 2713 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -6728,7 +6730,7 @@ yyreduce: break; case 221: -#line 2754 "Gmsh.y" +#line 2756 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6751,7 +6753,7 @@ yyreduce: break; case 222: -#line 2780 "Gmsh.y" +#line 2782 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6777,7 +6779,7 @@ yyreduce: break; case 223: -#line 2803 "Gmsh.y" +#line 2805 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6803,26 +6805,26 @@ yyreduce: break; case 224: -#line 2826 "Gmsh.y" +#line 2828 "Gmsh.y" { ;} break; case 225: -#line 2829 "Gmsh.y" +#line 2831 "Gmsh.y" { ;} break; case 226: -#line 2838 "Gmsh.y" +#line 2840 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 227: -#line 2842 "Gmsh.y" +#line 2844 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -6835,47 +6837,47 @@ yyreduce: break; case 228: -#line 2857 "Gmsh.y" +#line 2859 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 229: -#line 2858 "Gmsh.y" +#line 2860 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 230: -#line 2859 "Gmsh.y" +#line 2861 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 231: -#line 2860 "Gmsh.y" +#line 2862 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 232: -#line 2861 "Gmsh.y" +#line 2863 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 233: -#line 2862 "Gmsh.y" +#line 2864 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 234: -#line 2863 "Gmsh.y" +#line 2865 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 235: -#line 2864 "Gmsh.y" +#line 2866 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 236: -#line 2866 "Gmsh.y" +#line 2868 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6885,307 +6887,307 @@ yyreduce: break; case 237: -#line 2872 "Gmsh.y" +#line 2874 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 238: -#line 2873 "Gmsh.y" +#line 2875 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 239: -#line 2874 "Gmsh.y" +#line 2876 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 240: -#line 2875 "Gmsh.y" +#line 2877 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 241: -#line 2876 "Gmsh.y" +#line 2878 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 242: -#line 2877 "Gmsh.y" +#line 2879 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 243: -#line 2878 "Gmsh.y" +#line 2880 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 244: -#line 2879 "Gmsh.y" +#line 2881 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 245: -#line 2880 "Gmsh.y" +#line 2882 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 246: -#line 2881 "Gmsh.y" +#line 2883 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 247: -#line 2882 "Gmsh.y" +#line 2884 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 248: -#line 2883 "Gmsh.y" +#line 2885 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 249: -#line 2884 "Gmsh.y" +#line 2886 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 250: -#line 2885 "Gmsh.y" +#line 2887 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 251: -#line 2886 "Gmsh.y" +#line 2888 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 252: -#line 2887 "Gmsh.y" +#line 2889 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 253: -#line 2888 "Gmsh.y" +#line 2890 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 254: -#line 2889 "Gmsh.y" +#line 2891 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 255: -#line 2890 "Gmsh.y" +#line 2892 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 256: -#line 2891 "Gmsh.y" +#line 2893 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 257: -#line 2892 "Gmsh.y" +#line 2894 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 258: -#line 2893 "Gmsh.y" +#line 2895 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 259: -#line 2894 "Gmsh.y" +#line 2896 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 260: -#line 2895 "Gmsh.y" +#line 2897 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 261: -#line 2896 "Gmsh.y" +#line 2898 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 262: -#line 2897 "Gmsh.y" +#line 2899 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 263: -#line 2898 "Gmsh.y" +#line 2900 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 264: -#line 2899 "Gmsh.y" +#line 2901 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 265: -#line 2900 "Gmsh.y" +#line 2902 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 266: -#line 2901 "Gmsh.y" +#line 2903 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 267: -#line 2902 "Gmsh.y" +#line 2904 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 268: -#line 2903 "Gmsh.y" +#line 2905 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 269: -#line 2905 "Gmsh.y" +#line 2907 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 270: -#line 2906 "Gmsh.y" +#line 2908 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 271: -#line 2907 "Gmsh.y" +#line 2909 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 272: -#line 2908 "Gmsh.y" +#line 2910 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 273: -#line 2909 "Gmsh.y" +#line 2911 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 274: -#line 2910 "Gmsh.y" +#line 2912 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 275: -#line 2911 "Gmsh.y" +#line 2913 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 276: -#line 2912 "Gmsh.y" +#line 2914 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 2913 "Gmsh.y" +#line 2915 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 2914 "Gmsh.y" +#line 2916 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 2915 "Gmsh.y" +#line 2917 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 280: -#line 2916 "Gmsh.y" +#line 2918 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 2917 "Gmsh.y" +#line 2919 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 2918 "Gmsh.y" +#line 2920 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 2919 "Gmsh.y" +#line 2921 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 2920 "Gmsh.y" +#line 2922 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 285: -#line 2921 "Gmsh.y" +#line 2923 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 2922 "Gmsh.y" +#line 2924 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 287: -#line 2923 "Gmsh.y" +#line 2925 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 288: -#line 2924 "Gmsh.y" +#line 2926 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 289: -#line 2925 "Gmsh.y" +#line 2927 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 290: -#line 2934 "Gmsh.y" +#line 2936 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 291: -#line 2935 "Gmsh.y" +#line 2937 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 292: -#line 2936 "Gmsh.y" +#line 2938 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 293: -#line 2937 "Gmsh.y" +#line 2939 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 294: -#line 2938 "Gmsh.y" +#line 2940 "Gmsh.y" { (yyval.d) = Get_GmshMajorVersion(); ;} break; case 295: -#line 2939 "Gmsh.y" +#line 2941 "Gmsh.y" { (yyval.d) = Get_GmshMinorVersion(); ;} break; case 296: -#line 2940 "Gmsh.y" +#line 2942 "Gmsh.y" { (yyval.d) = Get_GmshPatchVersion(); ;} break; case 297: -#line 2945 "Gmsh.y" +#line 2947 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7198,7 +7200,7 @@ yyreduce: break; case 298: -#line 2958 "Gmsh.y" +#line 2960 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7213,7 +7215,7 @@ yyreduce: break; case 299: -#line 2970 "Gmsh.y" +#line 2972 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7231,7 +7233,7 @@ yyreduce: break; case 300: -#line 2985 "Gmsh.y" +#line 2987 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7244,7 +7246,7 @@ yyreduce: break; case 301: -#line 2995 "Gmsh.y" +#line 2997 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7257,7 +7259,7 @@ yyreduce: break; case 302: -#line 3005 "Gmsh.y" +#line 3007 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7275,7 +7277,7 @@ yyreduce: break; case 303: -#line 3023 "Gmsh.y" +#line 3025 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -7283,7 +7285,7 @@ yyreduce: break; case 304: -#line 3028 "Gmsh.y" +#line 3030 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -7291,7 +7293,7 @@ yyreduce: break; case 305: -#line 3033 "Gmsh.y" +#line 3035 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7304,7 +7306,7 @@ yyreduce: break; case 306: -#line 3043 "Gmsh.y" +#line 3045 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7317,7 +7319,7 @@ yyreduce: break; case 307: -#line 3053 "Gmsh.y" +#line 3055 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -7325,70 +7327,70 @@ yyreduce: break; case 308: -#line 3061 "Gmsh.y" +#line 3063 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 309: -#line 3065 "Gmsh.y" +#line 3067 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 310: -#line 3069 "Gmsh.y" +#line 3071 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 311: -#line 3073 "Gmsh.y" +#line 3075 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 312: -#line 3077 "Gmsh.y" +#line 3079 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 313: -#line 3084 "Gmsh.y" +#line 3086 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 314: -#line 3088 "Gmsh.y" +#line 3090 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 315: -#line 3092 "Gmsh.y" +#line 3094 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 316: -#line 3096 "Gmsh.y" +#line 3098 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 317: -#line 3103 "Gmsh.y" +#line 3105 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -7396,14 +7398,14 @@ yyreduce: break; case 318: -#line 3108 "Gmsh.y" +#line 3110 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 319: -#line 3115 "Gmsh.y" +#line 3117 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -7411,14 +7413,14 @@ yyreduce: break; case 320: -#line 3120 "Gmsh.y" +#line 3122 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 321: -#line 3124 "Gmsh.y" +#line 3126 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -7426,14 +7428,14 @@ yyreduce: break; case 322: -#line 3129 "Gmsh.y" +#line 3131 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 323: -#line 3133 "Gmsh.y" +#line 3135 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7444,7 +7446,7 @@ yyreduce: break; case 324: -#line 3141 "Gmsh.y" +#line 3143 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7455,14 +7457,14 @@ yyreduce: break; case 325: -#line 3152 "Gmsh.y" +#line 3154 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 326: -#line 3156 "Gmsh.y" +#line 3158 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -7474,7 +7476,7 @@ yyreduce: break; case 327: -#line 3168 "Gmsh.y" +#line 3170 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7485,7 +7487,7 @@ yyreduce: break; case 328: -#line 3176 "Gmsh.y" +#line 3178 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7496,7 +7498,7 @@ yyreduce: break; case 329: -#line 3184 "Gmsh.y" +#line 3186 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -7506,7 +7508,7 @@ yyreduce: break; case 330: -#line 3191 "Gmsh.y" +#line 3193 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -7520,7 +7522,7 @@ yyreduce: break; case 331: -#line 3202 "Gmsh.y" +#line 3204 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -7543,7 +7545,7 @@ yyreduce: break; case 332: -#line 3222 "Gmsh.y" +#line 3224 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7556,7 +7558,7 @@ yyreduce: break; case 333: -#line 3232 "Gmsh.y" +#line 3234 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7569,7 +7571,7 @@ yyreduce: break; case 334: -#line 3242 "Gmsh.y" +#line 3244 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -7582,7 +7584,7 @@ yyreduce: break; case 335: -#line 3252 "Gmsh.y" +#line 3254 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -7602,7 +7604,7 @@ yyreduce: break; case 336: -#line 3272 "Gmsh.y" +#line 3274 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -7610,21 +7612,21 @@ yyreduce: break; case 337: -#line 3277 "Gmsh.y" +#line 3279 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 338: -#line 3281 "Gmsh.y" +#line 3283 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 339: -#line 3285 "Gmsh.y" +#line 3287 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7636,21 +7638,21 @@ yyreduce: break; case 340: -#line 3297 "Gmsh.y" +#line 3299 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 341: -#line 3301 "Gmsh.y" +#line 3303 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 342: -#line 3313 "Gmsh.y" +#line 3315 "Gmsh.y" { int flag; (yyval.u) = Get_ColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7660,7 +7662,7 @@ yyreduce: break; case 343: -#line 3320 "Gmsh.y" +#line 3322 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -7670,14 +7672,14 @@ yyreduce: break; case 344: -#line 3330 "Gmsh.y" +#line 3332 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 345: -#line 3334 "Gmsh.y" +#line 3336 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7692,7 +7694,7 @@ yyreduce: break; case 346: -#line 3349 "Gmsh.y" +#line 3351 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -7700,21 +7702,21 @@ yyreduce: break; case 347: -#line 3354 "Gmsh.y" +#line 3356 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 348: -#line 3361 "Gmsh.y" +#line 3363 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 349: -#line 3365 "Gmsh.y" +#line 3367 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7730,36 +7732,36 @@ yyreduce: break; case 350: -#line 3378 "Gmsh.y" +#line 3380 "Gmsh.y" { - const char *val = ""; - StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), val); - (yyval.c) = (char*)Malloc((strlen(val) + 1) * sizeof(char)); - strcpy((yyval.c), val); + std::string out; + StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), "", out); + (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char)); + strcpy((yyval.c), out.c_str()); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); ;} break; case 351: -#line 3386 "Gmsh.y" +#line 3388 "Gmsh.y" { - const char *val = ""; - StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), val); - (yyval.c) = (char*)Malloc((strlen(val) + 1) * sizeof(char)); - strcpy((yyval.c), val); + std::string out; + StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), "", out); + (yyval.c) = (char*)Malloc((out.size() + 1) * sizeof(char)); + strcpy((yyval.c), out.c_str()); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); ;} break; case 352: -#line 3397 "Gmsh.y" +#line 3399 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 353: -#line 3401 "Gmsh.y" +#line 3403 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -7770,7 +7772,7 @@ yyreduce: break; case 354: -#line 3409 "Gmsh.y" +#line 3411 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -7781,7 +7783,7 @@ yyreduce: break; case 355: -#line 3417 "Gmsh.y" +#line 3419 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7798,7 +7800,7 @@ yyreduce: break; case 356: -#line 3431 "Gmsh.y" +#line 3433 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7815,14 +7817,14 @@ yyreduce: break; case 357: -#line 3445 "Gmsh.y" +#line 3447 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 358: -#line 3449 "Gmsh.y" +#line 3451 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7845,7 +7847,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 7849 "Gmsh.tab.cpp" +#line 7851 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8059,7 +8061,7 @@ yyreturn: } -#line 3469 "Gmsh.y" +#line 3471 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 84027d72cc..f0e52196a8 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -750,12 +750,14 @@ Affectation : | tSTRING '.' tSTRING tAFFECT StringExpr tEND { - StringOption(GMSH_SET|GMSH_GUI, $1, 0, $3, $5); + std::string dummy; + StringOption(GMSH_SET|GMSH_GUI, $1, 0, $3, $5, dummy); Free($1); Free($3); } | tSTRING '[' FExpr ']' '.' tSTRING tAFFECT StringExpr tEND { - StringOption(GMSH_SET|GMSH_GUI, $1, (int)$3, $6, $8); + std::string dummy; + StringOption(GMSH_SET|GMSH_GUI, $1, (int)$3, $6, $8, dummy); Free($1); Free($6); } @@ -3376,18 +3378,18 @@ StringExprVar : } | tSTRING '.' tSTRING { - const char *val = ""; - StringOption(GMSH_GET, $1, 0, $3, val); - $$ = (char*)Malloc((strlen(val) + 1) * sizeof(char)); - strcpy($$, val); + std::string out; + StringOption(GMSH_GET, $1, 0, $3, "", out); + $$ = (char*)Malloc((out.size() + 1) * sizeof(char)); + strcpy($$, out.c_str()); Free($1); Free($3); } | tSTRING '[' FExpr ']' '.' tSTRING { - const char *val = ""; - StringOption(GMSH_GET, $1, (int)$3, $6, val); - $$ = (char*)Malloc((strlen(val) + 1) * sizeof(char)); - strcpy($$, val); + std::string out; + StringOption(GMSH_GET, $1, (int)$3, $6, "", out); + $$ = (char*)Malloc((out.size() + 1) * sizeof(char)); + strcpy($$, out.c_str()); Free($1); Free($6); } ; -- GitLab