From eae1a35e4004f70c27db6aef6abd20338c089eae Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 4 Apr 2006 04:32:34 +0000 Subject: [PATCH] - fix discrete surf (for the 100000th time) - new Status N command in parser to force mesh status - create reverse discrete curves --- Mesh/DiscreteSurface.cpp | 7 +- Mesh/Read_Mesh.cpp | 3 +- Parser/Gmsh.tab.cpp | 442 ++++++++++++++++++++------------------- Parser/Gmsh.y | 5 +- Parser/Gmsh.yy.cpp | 4 +- doc/texinfo/gmsh.texi | 5 +- 6 files changed, 241 insertions(+), 225 deletions(-) diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp index 2e62d1ecc0..14a3ad922a 100644 --- a/Mesh/DiscreteSurface.cpp +++ b/Mesh/DiscreteSurface.cpp @@ -1,4 +1,4 @@ -// $Id: DiscreteSurface.cpp,v 1.38 2006-03-08 17:04:59 remacle Exp $ +// $Id: DiscreteSurface.cpp,v 1.39 2006-04-04 04:32:31 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -451,6 +451,11 @@ int MeshDiscreteSurface(Surface * s) } return 2; } + else if(s->Typ == MSH_SURF_DISCRETE) { + // nothing else to do: we assume that the surface is represented + // by a mesh that will not be modified + return 1; + } else return 0; } diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index c298e28691..42adc73243 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Read_Mesh.cpp,v 1.102 2006-03-29 01:45:13 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.103 2006-04-04 04:32:31 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -61,6 +61,7 @@ Curve *addElementaryCurve(Mesh * M, int Num) if(!(c = FindCurve(Num, M))) { c = Create_Curve(Num, MSH_SEGM_DISCRETE, 0, NULL, NULL, -1, -1, 0., 1.); Tree_Add(M->Curves, &c); + CreateReversedCurve(M, c); } return c; } diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 2f874c4921..ade0e04657 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -126,7 +126,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.263 2006-03-17 21:04:34 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.264 2006-04-04 04:32:31 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -519,26 +519,26 @@ static const short yyrline[] = { 0, 1497, 1517, 1523, 1528, 1533, 1540, 1542, 1543, 1546, 1551, 1555, 1571, 1587, 1603, 1623, 1638, 1644, 1650, 1661, 1671, 1681, 1695, 1713, 1727, 1736, 1742, 1753, 1766, 1811, 1826, - 1837, 1853, 1863, 1885, 1889, 1894, 1899, 1910, 1927, 1943, - 1969, 1996, 2028, 2035, 2040, 2046, 2050, 2058, 2067, 2075, - 2083, 2088, 2096, 2101, 2109, 2114, 2124, 2131, 2138, 2145, - 2152, 2159, 2166, 2173, 2180, 2187, 2192, 2199, 2204, 2211, - 2216, 2223, 2228, 2235, 2240, 2247, 2252, 2259, 2264, 2271, - 2276, 2283, 2288, 2298, 2302, 2307, 2334, 2358, 2366, 2385, - 2403, 2421, 2450, 2485, 2512, 2539, 2553, 2571, 2576, 2585, - 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2601, 2602, - 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, - 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, - 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, - 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, - 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, - 2654, 2659, 2664, 2665, 2666, 2667, 2668, 2669, 2673, 2686, - 2706, 2720, 2733, 2756, 2774, 2792, 2810, 2828, 2835, 2840, - 2844, 2848, 2852, 2858, 2863, 2867, 2871, 2877, 2881, 2885, - 2891, 2897, 2904, 2910, 2914, 2919, 2923, 2934, 2941, 2952, - 2972, 2982, 2992, 3002, 3019, 3038, 3062, 3090, 3096, 3100, - 3104, 3116, 3121, 3133, 3140, 3161, 3166, 3180, 3186, 3192, - 3197, 3205, 3213, 3227, 3241, 3245, 3264, 3286 + 1837, 1857, 1867, 1889, 1893, 1898, 1903, 1914, 1931, 1947, + 1973, 2000, 2032, 2039, 2044, 2050, 2054, 2062, 2071, 2079, + 2087, 2092, 2100, 2105, 2113, 2118, 2128, 2135, 2142, 2149, + 2156, 2163, 2170, 2177, 2184, 2191, 2196, 2203, 2208, 2215, + 2220, 2227, 2232, 2239, 2244, 2251, 2256, 2263, 2268, 2275, + 2280, 2287, 2292, 2302, 2306, 2311, 2338, 2362, 2370, 2389, + 2407, 2425, 2454, 2489, 2516, 2543, 2557, 2575, 2580, 2589, + 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2605, 2606, + 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, + 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, + 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, + 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, + 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, + 2658, 2663, 2668, 2669, 2670, 2671, 2672, 2673, 2677, 2690, + 2710, 2724, 2737, 2760, 2778, 2796, 2814, 2832, 2839, 2844, + 2848, 2852, 2856, 2862, 2867, 2871, 2875, 2881, 2885, 2889, + 2895, 2901, 2908, 2914, 2918, 2923, 2927, 2938, 2945, 2956, + 2976, 2986, 2996, 3006, 3023, 3042, 3066, 3094, 3100, 3104, + 3108, 3120, 3125, 3137, 3144, 3165, 3170, 3184, 3190, 3196, + 3201, 3209, 3217, 3231, 3245, 3249, 3268, 3290 }; #endif @@ -4512,6 +4512,10 @@ case 131: else if(!strcmp(yyvsp[-2].c, "Mesh")){ yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts"); } + else if(!strcmp(yyvsp[-2].c, "Status")){ + THEM->status = (int)yyvsp[-1].d; + printf("parser stat = %d\n", THEM->status); + } else{ yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c); } @@ -4519,7 +4523,7 @@ case 131: ; break;} case 132: -#line 1854 "Gmsh.y" +#line 1858 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -4531,7 +4535,7 @@ case 132: ; break;} case 133: -#line 1864 "Gmsh.y" +#line 1868 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews")) CombineViews(0, 1, CTX.post.combine_remove_orig); @@ -4555,27 +4559,27 @@ case 133: ; break;} case 134: -#line 1886 "Gmsh.y" +#line 1890 "Gmsh.y" { exit(0); ; break;} case 135: -#line 1890 "Gmsh.y" +#line 1894 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ; break;} case 136: -#line 1895 "Gmsh.y" +#line 1899 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 137: -#line 1900 "Gmsh.y" +#line 1904 "Gmsh.y" { #if defined(HAVE_FLTK) if(!CTX.batch) // we're in interactive mode @@ -4584,7 +4588,7 @@ case 137: ; break;} case 138: -#line 1913 "Gmsh.y" +#line 1917 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4601,7 +4605,7 @@ case 138: ; break;} case 139: -#line 1928 "Gmsh.y" +#line 1932 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4619,7 +4623,7 @@ case 139: ; break;} case 140: -#line 1944 "Gmsh.y" +#line 1948 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4647,7 +4651,7 @@ case 140: ; break;} case 141: -#line 1970 "Gmsh.y" +#line 1974 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4676,7 +4680,7 @@ case 141: ; break;} case 142: -#line 1997 "Gmsh.y" +#line 2001 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -4710,7 +4714,7 @@ case 142: ; break;} case 143: -#line 2029 "Gmsh.y" +#line 2033 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -4719,14 +4723,14 @@ case 143: ; break;} case 144: -#line 2036 "Gmsh.y" +#line 2040 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} case 145: -#line 2041 "Gmsh.y" +#line 2045 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); @@ -4734,18 +4738,18 @@ case 145: ; break;} case 146: -#line 2047 "Gmsh.y" +#line 2051 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 147: -#line 2051 "Gmsh.y" +#line 2055 "Gmsh.y" { ; break;} case 148: -#line 2060 "Gmsh.y" +#line 2064 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-1].l, @@ -4755,7 +4759,7 @@ case 148: ; break;} case 149: -#line 2068 "Gmsh.y" +#line 2072 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-1].l, @@ -4765,7 +4769,7 @@ case 149: ; break;} case 150: -#line 2076 "Gmsh.y" +#line 2080 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, @@ -4775,14 +4779,14 @@ case 150: ; break;} case 151: -#line 2084 "Gmsh.y" +#line 2088 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 152: -#line 2089 "Gmsh.y" +#line 2093 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -4792,14 +4796,14 @@ case 152: ; break;} case 153: -#line 2097 "Gmsh.y" +#line 2101 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 154: -#line 2102 "Gmsh.y" +#line 2106 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -4809,14 +4813,14 @@ case 154: ; break;} case 155: -#line 2110 "Gmsh.y" +#line 2114 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 156: -#line 2115 "Gmsh.y" +#line 2119 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -4826,7 +4830,7 @@ case 156: ; break;} case 157: -#line 2125 "Gmsh.y" +#line 2129 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -4835,7 +4839,7 @@ case 157: ; break;} case 158: -#line 2132 "Gmsh.y" +#line 2136 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -4844,7 +4848,7 @@ case 158: ; break;} case 159: -#line 2139 "Gmsh.y" +#line 2143 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -4853,7 +4857,7 @@ case 159: ; break;} case 160: -#line 2146 "Gmsh.y" +#line 2150 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4862,7 +4866,7 @@ case 160: ; break;} case 161: -#line 2153 "Gmsh.y" +#line 2157 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4871,7 +4875,7 @@ case 161: ; break;} case 162: -#line 2160 "Gmsh.y" +#line 2164 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -4880,7 +4884,7 @@ case 162: ; break;} case 163: -#line 2167 "Gmsh.y" +#line 2171 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -4889,7 +4893,7 @@ case 163: ; break;} case 164: -#line 2174 "Gmsh.y" +#line 2178 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -4898,7 +4902,7 @@ case 164: ; break;} case 165: -#line 2181 "Gmsh.y" +#line 2185 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -4907,14 +4911,14 @@ case 165: ; break;} case 166: -#line 2188 "Gmsh.y" +#line 2192 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 167: -#line 2193 "Gmsh.y" +#line 2197 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4923,14 +4927,14 @@ case 167: ; break;} case 168: -#line 2200 "Gmsh.y" +#line 2204 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 169: -#line 2205 "Gmsh.y" +#line 2209 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4939,14 +4943,14 @@ case 169: ; break;} case 170: -#line 2212 "Gmsh.y" +#line 2216 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 171: -#line 2217 "Gmsh.y" +#line 2221 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -4955,14 +4959,14 @@ case 171: ; break;} case 172: -#line 2224 "Gmsh.y" +#line 2228 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 173: -#line 2229 "Gmsh.y" +#line 2233 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -4971,14 +4975,14 @@ case 173: ; break;} case 174: -#line 2236 "Gmsh.y" +#line 2240 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 175: -#line 2241 "Gmsh.y" +#line 2245 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -4987,14 +4991,14 @@ case 175: ; break;} case 176: -#line 2248 "Gmsh.y" +#line 2252 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 177: -#line 2253 "Gmsh.y" +#line 2257 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5003,14 +5007,14 @@ case 177: ; break;} case 178: -#line 2260 "Gmsh.y" +#line 2264 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 179: -#line 2265 "Gmsh.y" +#line 2269 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5019,14 +5023,14 @@ case 179: ; break;} case 180: -#line 2272 "Gmsh.y" +#line 2276 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 181: -#line 2277 "Gmsh.y" +#line 2281 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5035,14 +5039,14 @@ case 181: ; break;} case 182: -#line 2284 "Gmsh.y" +#line 2288 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 183: -#line 2289 "Gmsh.y" +#line 2293 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5051,17 +5055,17 @@ case 183: ; break;} case 184: -#line 2300 "Gmsh.y" +#line 2304 "Gmsh.y" { ; break;} case 185: -#line 2303 "Gmsh.y" +#line 2307 "Gmsh.y" { ; break;} case 186: -#line 2309 "Gmsh.y" +#line 2313 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5089,7 +5093,7 @@ case 186: ; break;} case 187: -#line 2335 "Gmsh.y" +#line 2339 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5115,13 +5119,13 @@ case 187: ; break;} case 188: -#line 2359 "Gmsh.y" +#line 2363 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} case 189: -#line 2368 "Gmsh.y" +#line 2372 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5141,7 +5145,7 @@ case 189: ; break;} case 190: -#line 2386 "Gmsh.y" +#line 2390 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5161,7 +5165,7 @@ case 190: ; break;} case 191: -#line 2404 "Gmsh.y" +#line 2408 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5181,7 +5185,7 @@ case 191: ; break;} case 192: -#line 2422 "Gmsh.y" +#line 2426 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -5212,7 +5216,7 @@ case 192: ; break;} case 193: -#line 2451 "Gmsh.y" +#line 2455 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d, THEM); if(!s) @@ -5249,7 +5253,7 @@ case 193: ; break;} case 194: -#line 2486 "Gmsh.y" +#line 2490 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -5278,7 +5282,7 @@ case 194: ; break;} case 195: -#line 2513 "Gmsh.y" +#line 2517 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d, THEM); if(!v) @@ -5307,7 +5311,7 @@ case 195: ; break;} case 196: -#line 2540 "Gmsh.y" +#line 2544 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5323,7 +5327,7 @@ case 196: ; break;} case 197: -#line 2554 "Gmsh.y" +#line 2558 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5338,51 +5342,51 @@ case 197: ; break;} case 198: -#line 2573 "Gmsh.y" +#line 2577 "Gmsh.y" { ReplaceAllDuplicates(THEM); ; break;} case 199: -#line 2577 "Gmsh.y" +#line 2581 "Gmsh.y" { IntersectAllSegmentsTogether(); ; break;} case 200: -#line 2586 "Gmsh.y" +#line 2590 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 201: -#line 2587 "Gmsh.y" +#line 2591 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} case 202: -#line 2588 "Gmsh.y" +#line 2592 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} case 203: -#line 2589 "Gmsh.y" +#line 2593 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 204: -#line 2590 "Gmsh.y" +#line 2594 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} case 205: -#line 2591 "Gmsh.y" +#line 2595 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} case 206: -#line 2592 "Gmsh.y" +#line 2596 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} case 207: -#line 2593 "Gmsh.y" +#line 2597 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} case 208: -#line 2595 "Gmsh.y" +#line 2599 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5391,247 +5395,247 @@ case 208: ; break;} case 209: -#line 2601 "Gmsh.y" +#line 2605 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} case 210: -#line 2602 "Gmsh.y" +#line 2606 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} case 211: -#line 2603 "Gmsh.y" +#line 2607 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} case 212: -#line 2604 "Gmsh.y" +#line 2608 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} case 213: -#line 2605 "Gmsh.y" +#line 2609 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} case 214: -#line 2606 "Gmsh.y" +#line 2610 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} case 215: -#line 2607 "Gmsh.y" +#line 2611 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} case 216: -#line 2608 "Gmsh.y" +#line 2612 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} case 217: -#line 2609 "Gmsh.y" +#line 2613 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} case 218: -#line 2610 "Gmsh.y" +#line 2614 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} case 219: -#line 2611 "Gmsh.y" +#line 2615 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} case 220: -#line 2612 "Gmsh.y" +#line 2616 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 221: -#line 2613 "Gmsh.y" +#line 2617 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 222: -#line 2614 "Gmsh.y" +#line 2618 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 223: -#line 2615 "Gmsh.y" +#line 2619 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 224: -#line 2616 "Gmsh.y" +#line 2620 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 225: -#line 2617 "Gmsh.y" +#line 2621 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 226: -#line 2618 "Gmsh.y" +#line 2622 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 227: -#line 2619 "Gmsh.y" +#line 2623 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 228: -#line 2620 "Gmsh.y" +#line 2624 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 229: -#line 2621 "Gmsh.y" +#line 2625 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 230: -#line 2622 "Gmsh.y" +#line 2626 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 231: -#line 2623 "Gmsh.y" +#line 2627 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 232: -#line 2624 "Gmsh.y" +#line 2628 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 233: -#line 2625 "Gmsh.y" +#line 2629 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 234: -#line 2626 "Gmsh.y" +#line 2630 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 235: -#line 2627 "Gmsh.y" +#line 2631 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 236: -#line 2628 "Gmsh.y" +#line 2632 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 237: -#line 2629 "Gmsh.y" +#line 2633 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 238: -#line 2630 "Gmsh.y" +#line 2634 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 239: -#line 2631 "Gmsh.y" +#line 2635 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 240: -#line 2632 "Gmsh.y" +#line 2636 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 241: -#line 2634 "Gmsh.y" +#line 2638 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 242: -#line 2635 "Gmsh.y" +#line 2639 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 243: -#line 2636 "Gmsh.y" +#line 2640 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 244: -#line 2637 "Gmsh.y" +#line 2641 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 245: -#line 2638 "Gmsh.y" +#line 2642 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 246: -#line 2639 "Gmsh.y" +#line 2643 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 247: -#line 2640 "Gmsh.y" +#line 2644 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 248: -#line 2641 "Gmsh.y" +#line 2645 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 249: -#line 2642 "Gmsh.y" +#line 2646 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 250: -#line 2643 "Gmsh.y" +#line 2647 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 251: -#line 2644 "Gmsh.y" +#line 2648 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 252: -#line 2645 "Gmsh.y" +#line 2649 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 253: -#line 2646 "Gmsh.y" +#line 2650 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 254: -#line 2647 "Gmsh.y" +#line 2651 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 255: -#line 2648 "Gmsh.y" +#line 2652 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 256: -#line 2649 "Gmsh.y" +#line 2653 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 257: -#line 2650 "Gmsh.y" +#line 2654 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 258: -#line 2651 "Gmsh.y" +#line 2655 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 259: -#line 2652 "Gmsh.y" +#line 2656 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 260: -#line 2653 "Gmsh.y" +#line 2657 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 261: -#line 2654 "Gmsh.y" +#line 2658 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 262: -#line 2663 "Gmsh.y" +#line 2667 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 263: -#line 2664 "Gmsh.y" +#line 2668 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} case 264: -#line 2665 "Gmsh.y" +#line 2669 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} case 265: -#line 2666 "Gmsh.y" +#line 2670 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} case 266: -#line 2667 "Gmsh.y" +#line 2671 "Gmsh.y" { yyval.d = Get_GmshMajorVersion(); ; break;} case 267: -#line 2668 "Gmsh.y" +#line 2672 "Gmsh.y" { yyval.d = Get_GmshMinorVersion(); ; break;} case 268: -#line 2669 "Gmsh.y" +#line 2673 "Gmsh.y" { yyval.d = Get_GmshPatchVersion(); ; break;} case 269: -#line 2674 "Gmsh.y" +#line 2678 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -5646,7 +5650,7 @@ case 269: ; break;} case 270: -#line 2687 "Gmsh.y" +#line 2691 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -5668,7 +5672,7 @@ case 270: ; break;} case 271: -#line 2707 "Gmsh.y" +#line 2711 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -5684,7 +5688,7 @@ case 271: ; break;} case 272: -#line 2721 "Gmsh.y" +#line 2725 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -5699,7 +5703,7 @@ case 272: ; break;} case 273: -#line 2734 "Gmsh.y" +#line 2738 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -5721,7 +5725,7 @@ case 273: ; break;} case 274: -#line 2757 "Gmsh.y" +#line 2761 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5741,7 +5745,7 @@ case 274: ; break;} case 275: -#line 2775 "Gmsh.y" +#line 2779 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5761,7 +5765,7 @@ case 275: ; break;} case 276: -#line 2793 "Gmsh.y" +#line 2797 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5781,7 +5785,7 @@ case 276: ; break;} case 277: -#line 2811 "Gmsh.y" +#line 2815 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5801,124 +5805,124 @@ case 277: ; break;} case 278: -#line 2829 "Gmsh.y" +#line 2833 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} case 279: -#line 2837 "Gmsh.y" +#line 2841 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} case 280: -#line 2841 "Gmsh.y" +#line 2845 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} case 281: -#line 2845 "Gmsh.y" +#line 2849 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} case 282: -#line 2849 "Gmsh.y" +#line 2853 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} case 283: -#line 2853 "Gmsh.y" +#line 2857 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} case 284: -#line 2860 "Gmsh.y" +#line 2864 "Gmsh.y" { yyval.v[0] = yyvsp[-9].d; yyval.v[1] = yyvsp[-7].d; yyval.v[2] = yyvsp[-5].d; yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d; ; break;} case 285: -#line 2864 "Gmsh.y" +#line 2868 "Gmsh.y" { yyval.v[0] = yyvsp[-7].d; yyval.v[1] = yyvsp[-5].d; yyval.v[2] = yyvsp[-3].d; yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0; ; break;} case 286: -#line 2868 "Gmsh.y" +#line 2872 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} case 287: -#line 2872 "Gmsh.y" +#line 2876 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} case 288: -#line 2879 "Gmsh.y" +#line 2883 "Gmsh.y" { ; break;} case 289: -#line 2882 "Gmsh.y" +#line 2886 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 290: -#line 2886 "Gmsh.y" +#line 2890 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 291: -#line 2893 "Gmsh.y" +#line 2897 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} case 292: -#line 2898 "Gmsh.y" +#line 2902 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} case 293: -#line 2906 "Gmsh.y" +#line 2910 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 294: -#line 2911 "Gmsh.y" +#line 2915 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 295: -#line 2915 "Gmsh.y" +#line 2919 "Gmsh.y" { // creates an empty list yyval.l = List_Create(2, 1, sizeof(double)); ; break;} case 296: -#line 2920 "Gmsh.y" +#line 2924 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 297: -#line 2924 "Gmsh.y" +#line 2928 "Gmsh.y" { yyval.l = yyvsp[-1].l; double *pd; @@ -5929,7 +5933,7 @@ case 297: ; break;} case 298: -#line 2936 "Gmsh.y" +#line 2940 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) @@ -5937,7 +5941,7 @@ case 298: ; break;} case 299: -#line 2942 "Gmsh.y" +#line 2946 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){ @@ -5950,7 +5954,7 @@ case 299: ; break;} case 300: -#line 2953 "Gmsh.y" +#line 2957 "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 @@ -5972,7 +5976,7 @@ case 300: ; break;} case 301: -#line 2973 "Gmsh.y" +#line 2977 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -5984,7 +5988,7 @@ case 301: ; break;} case 302: -#line 2983 "Gmsh.y" +#line 2987 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -5996,7 +6000,7 @@ case 302: ; break;} case 303: -#line 2993 "Gmsh.y" +#line 2997 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6008,7 +6012,7 @@ case 303: ; break;} case 304: -#line 3003 "Gmsh.y" +#line 3007 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6027,7 +6031,7 @@ case 304: ; break;} case 305: -#line 3020 "Gmsh.y" +#line 3024 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6048,7 +6052,7 @@ case 305: ; break;} case 306: -#line 3039 "Gmsh.y" +#line 3043 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6074,7 +6078,7 @@ case 306: ; break;} case 307: -#line 3063 "Gmsh.y" +#line 3067 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6102,26 +6106,26 @@ case 307: ; break;} case 308: -#line 3092 "Gmsh.y" +#line 3096 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 309: -#line 3097 "Gmsh.y" +#line 3101 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 310: -#line 3101 "Gmsh.y" +#line 3105 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} case 311: -#line 3105 "Gmsh.y" +#line 3109 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6132,19 +6136,19 @@ case 311: ; break;} case 312: -#line 3118 "Gmsh.y" +#line 3122 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} case 313: -#line 3122 "Gmsh.y" +#line 3126 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} case 314: -#line 3134 "Gmsh.y" +#line 3138 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6153,7 +6157,7 @@ case 314: ; break;} case 315: -#line 3141 "Gmsh.y" +#line 3145 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6174,13 +6178,13 @@ case 315: ; break;} case 316: -#line 3163 "Gmsh.y" +#line 3167 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 317: -#line 3167 "Gmsh.y" +#line 3171 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6194,26 +6198,26 @@ case 317: ; break;} case 318: -#line 3182 "Gmsh.y" +#line 3186 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} case 319: -#line 3187 "Gmsh.y" +#line 3191 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} case 320: -#line 3194 "Gmsh.y" +#line 3198 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 321: -#line 3198 "Gmsh.y" +#line 3202 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6223,7 +6227,7 @@ case 321: ; break;} case 322: -#line 3206 "Gmsh.y" +#line 3210 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6233,7 +6237,7 @@ case 322: ; break;} case 323: -#line 3214 "Gmsh.y" +#line 3218 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6249,7 +6253,7 @@ case 323: ; break;} case 324: -#line 3228 "Gmsh.y" +#line 3232 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6265,13 +6269,13 @@ case 324: ; break;} case 325: -#line 3242 "Gmsh.y" +#line 3246 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} case 326: -#line 3246 "Gmsh.y" +#line 3250 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6292,7 +6296,7 @@ case 326: ; break;} case 327: -#line 3265 "Gmsh.y" +#line 3269 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6316,7 +6320,7 @@ case 327: ; break;} case 328: -#line 3287 "Gmsh.y" +#line 3291 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6561,7 +6565,7 @@ yyerrhandle: } return 1; } -#line 3310 "Gmsh.y" +#line 3314 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 556e9e352c..75db073c0d 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.226 2006-03-17 21:04:42 geuzaine Exp $ +// $Id: Gmsh.y,v 1.227 2006-04-04 04:32:34 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -1845,6 +1845,9 @@ Command : else if(!strcmp($1, "Mesh")){ yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts"); } + else if(!strcmp($1, "Status")){ + THEM->status = (int)$2; + } else{ yymsg(GERROR, "Unknown command '%s'", $1); } diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 8708dbfcda..99cf6aa99f 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.262 2006-03-17 21:04:43 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.263 2006-04-04 04:32:34 geuzaine Exp $ */ #define FLEX_SCANNER @@ -727,7 +727,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.262 2006-03-17 21:04:43 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.263 2006-04-04 04:32:34 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index 1592d86e1e..df0709a071 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: gmsh.texi,v 1.206 2006-03-22 12:37:46 geuzaine Exp $ +@c $Id: gmsh.texi,v 1.207 2006-04-04 04:32:34 geuzaine Exp $ @c @c Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle @c @@ -1322,6 +1322,9 @@ the path of the current file. @item Sleep @var{expression}; Suspends the execution of Gmsh during @var{expression} seconds. +@item Status @var{expression}; +Forces mesh status to @var{expression}. + @item System @var{char-expression}; Executes a system call. -- GitLab