diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index ade0e0465797d82294743817b400f2be2a9fab3b..a6553d5cb475ac3a47aef72b6d1a098c54d8004c 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.264 2006-04-04 04:32:31 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.265 2006-04-04 04:35:00 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,  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
+  1837,  1856,  1866,  1888,  1892,  1897,  1902,  1913,  1930,  1946,
+  1972,  1999,  2031,  2038,  2043,  2049,  2053,  2061,  2070,  2078,
+  2086,  2091,  2099,  2104,  2112,  2117,  2127,  2134,  2141,  2148,
+  2155,  2162,  2169,  2176,  2183,  2190,  2195,  2202,  2207,  2214,
+  2219,  2226,  2231,  2238,  2243,  2250,  2255,  2262,  2267,  2274,
+  2279,  2286,  2291,  2301,  2305,  2310,  2337,  2361,  2369,  2388,
+  2406,  2424,  2453,  2488,  2515,  2542,  2556,  2574,  2579,  2588,
+  2590,  2591,  2592,  2593,  2594,  2595,  2596,  2597,  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,  2633,  2634,  2635,
+  2637,  2638,  2639,  2640,  2641,  2642,  2643,  2644,  2645,  2646,
+  2647,  2648,  2649,  2650,  2651,  2652,  2653,  2654,  2655,  2656,
+  2657,  2662,  2667,  2668,  2669,  2670,  2671,  2672,  2676,  2689,
+  2709,  2723,  2736,  2759,  2777,  2795,  2813,  2831,  2838,  2843,
+  2847,  2851,  2855,  2861,  2866,  2870,  2874,  2880,  2884,  2888,
+  2894,  2900,  2907,  2913,  2917,  2922,  2926,  2937,  2944,  2955,
+  2975,  2985,  2995,  3005,  3022,  3041,  3065,  3093,  3099,  3103,
+  3107,  3119,  3124,  3136,  3143,  3164,  3169,  3183,  3189,  3195,
+  3200,  3208,  3216,  3230,  3244,  3248,  3267,  3289
 };
 #endif
 
@@ -4514,7 +4514,6 @@ case 131:
       }
       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);
@@ -4523,7 +4522,7 @@ case 131:
     ;
     break;}
 case 132:
-#line 1858 "Gmsh.y"
+#line 1857 "Gmsh.y"
 {
        try {
 	 GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0);
@@ -4535,7 +4534,7 @@ case 132:
      ;
     break;}
 case 133:
-#line 1868 "Gmsh.y"
+#line 1867 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews"))
 	CombineViews(0, 1, CTX.post.combine_remove_orig);
@@ -4559,27 +4558,27 @@ case 133:
     ;
     break;}
 case 134:
-#line 1890 "Gmsh.y"
+#line 1889 "Gmsh.y"
 {
       exit(0);
     ;
     break;}
 case 135:
-#line 1894 "Gmsh.y"
+#line 1893 "Gmsh.y"
 {
       CTX.forced_bbox = 0;
       SetBoundingBox();
     ;
     break;}
 case 136:
-#line 1899 "Gmsh.y"
+#line 1898 "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 1904 "Gmsh.y"
+#line 1903 "Gmsh.y"
 {
 #if defined(HAVE_FLTK)
       if(!CTX.batch) // we're in interactive mode
@@ -4588,7 +4587,7 @@ case 137:
     ;
     break;}
 case 138:
-#line 1917 "Gmsh.y"
+#line 1916 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -4605,7 +4604,7 @@ case 138:
     ;
     break;}
 case 139:
-#line 1932 "Gmsh.y"
+#line 1931 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -4623,7 +4622,7 @@ case 139:
     ;
     break;}
 case 140:
-#line 1948 "Gmsh.y"
+#line 1947 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -4651,7 +4650,7 @@ case 140:
     ;
     break;}
 case 141:
-#line 1974 "Gmsh.y"
+#line 1973 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -4680,7 +4679,7 @@ case 141:
     ;
     break;}
 case 142:
-#line 2001 "Gmsh.y"
+#line 2000 "Gmsh.y"
 {
       if(ImbricatedLoop <= 0){
 	yymsg(GERROR, "Invalid For/EndFor loop");
@@ -4714,7 +4713,7 @@ case 142:
     ;
     break;}
 case 143:
-#line 2033 "Gmsh.y"
+#line 2032 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno))
 	yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c);
@@ -4723,14 +4722,14 @@ case 143:
     ;
     break;}
 case 144:
-#line 2040 "Gmsh.y"
+#line 2039 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))
 	yymsg(GERROR, "Error while exiting function");
     ;
     break;}
 case 145:
-#line 2045 "Gmsh.y"
+#line 2044 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno))
 	yymsg(GERROR, "Unknown function %s", yyvsp[-1].c);
@@ -4738,18 +4737,18 @@ case 145:
     ;
     break;}
 case 146:
-#line 2051 "Gmsh.y"
+#line 2050 "Gmsh.y"
 {
       if(!yyvsp[-1].d) skip_until("If", "EndIf");
     ;
     break;}
 case 147:
-#line 2055 "Gmsh.y"
+#line 2054 "Gmsh.y"
 {
     ;
     break;}
 case 148:
-#line 2064 "Gmsh.y"
+#line 2063 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE, yyvsp[-1].l, 
@@ -4759,7 +4758,7 @@ case 148:
     ;
     break;}
 case 149:
-#line 2072 "Gmsh.y"
+#line 2071 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(ROTATE, yyvsp[-1].l, 
@@ -4769,7 +4768,7 @@ case 149:
     ;
     break;}
 case 150:
-#line 2080 "Gmsh.y"
+#line 2079 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, 
@@ -4779,14 +4778,14 @@ case 150:
     ;
     break;}
 case 151:
-#line 2088 "Gmsh.y"
+#line 2087 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 152:
-#line 2093 "Gmsh.y"
+#line 2092 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE, yyvsp[-3].l, 
@@ -4796,14 +4795,14 @@ case 152:
     ;
     break;}
 case 153:
-#line 2101 "Gmsh.y"
+#line 2100 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 154:
-#line 2106 "Gmsh.y"
+#line 2105 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(ROTATE, yyvsp[-3].l, 
@@ -4813,14 +4812,14 @@ case 154:
     ;
     break;}
 case 155:
-#line 2114 "Gmsh.y"
+#line 2113 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 156:
-#line 2119 "Gmsh.y"
+#line 2118 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, 
@@ -4830,7 +4829,7 @@ case 156:
     ;
     break;}
 case 157:
-#line 2129 "Gmsh.y"
+#line 2128 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, 
@@ -4839,7 +4838,7 @@ case 157:
     ;
     break;}
 case 158:
-#line 2136 "Gmsh.y"
+#line 2135 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, 
@@ -4848,7 +4847,7 @@ case 158:
     ;
     break;}
 case 159:
-#line 2143 "Gmsh.y"
+#line 2142 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, 
@@ -4857,7 +4856,7 @@ case 159:
     ;
     break;}
 case 160:
-#line 2150 "Gmsh.y"
+#line 2149 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, 
@@ -4866,7 +4865,7 @@ case 160:
     ;
     break;}
 case 161:
-#line 2157 "Gmsh.y"
+#line 2156 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, 
@@ -4875,7 +4874,7 @@ case 161:
     ;
     break;}
 case 162:
-#line 2164 "Gmsh.y"
+#line 2163 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, 
@@ -4884,7 +4883,7 @@ case 162:
     ;
     break;}
 case 163:
-#line 2171 "Gmsh.y"
+#line 2170 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, 
@@ -4893,7 +4892,7 @@ case 163:
     ;
     break;}
 case 164:
-#line 2178 "Gmsh.y"
+#line 2177 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, 
@@ -4902,7 +4901,7 @@ case 164:
     ;
     break;}
 case 165:
-#line 2185 "Gmsh.y"
+#line 2184 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, 
@@ -4911,14 +4910,14 @@ case 165:
     ;
     break;}
 case 166:
-#line 2192 "Gmsh.y"
+#line 2191 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 167:
-#line 2197 "Gmsh.y"
+#line 2196 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, 
@@ -4927,14 +4926,14 @@ case 167:
     ;
     break;}
 case 168:
-#line 2204 "Gmsh.y"
+#line 2203 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 169:
-#line 2209 "Gmsh.y"
+#line 2208 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, 
@@ -4943,14 +4942,14 @@ case 169:
     ;
     break;}
 case 170:
-#line 2216 "Gmsh.y"
+#line 2215 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 171:
-#line 2221 "Gmsh.y"
+#line 2220 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, 
@@ -4959,14 +4958,14 @@ case 171:
     ;
     break;}
 case 172:
-#line 2228 "Gmsh.y"
+#line 2227 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 173:
-#line 2233 "Gmsh.y"
+#line 2232 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, 
@@ -4975,14 +4974,14 @@ case 173:
     ;
     break;}
 case 174:
-#line 2240 "Gmsh.y"
+#line 2239 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 175:
-#line 2245 "Gmsh.y"
+#line 2244 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, 
@@ -4991,14 +4990,14 @@ case 175:
     ;
     break;}
 case 176:
-#line 2252 "Gmsh.y"
+#line 2251 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 177:
-#line 2257 "Gmsh.y"
+#line 2256 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, 
@@ -5007,14 +5006,14 @@ case 177:
     ;
     break;}
 case 178:
-#line 2264 "Gmsh.y"
+#line 2263 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 179:
-#line 2269 "Gmsh.y"
+#line 2268 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, 
@@ -5023,14 +5022,14 @@ case 179:
     ;
     break;}
 case 180:
-#line 2276 "Gmsh.y"
+#line 2275 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 181:
-#line 2281 "Gmsh.y"
+#line 2280 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, 
@@ -5039,14 +5038,14 @@ case 181:
     ;
     break;}
 case 182:
-#line 2288 "Gmsh.y"
+#line 2287 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 183:
-#line 2293 "Gmsh.y"
+#line 2292 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(Shape));
       ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, 
@@ -5055,17 +5054,17 @@ case 183:
     ;
     break;}
 case 184:
-#line 2304 "Gmsh.y"
+#line 2303 "Gmsh.y"
 {
     ;
     break;}
 case 185:
-#line 2307 "Gmsh.y"
+#line 2306 "Gmsh.y"
 {
     ;
     break;}
 case 186:
-#line 2313 "Gmsh.y"
+#line 2312 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -5093,7 +5092,7 @@ case 186:
     ;
     break;}
 case 187:
-#line 2339 "Gmsh.y"
+#line 2338 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -5119,13 +5118,13 @@ case 187:
     ;
     break;}
 case 188:
-#line 2363 "Gmsh.y"
+#line 2362 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
 case 189:
-#line 2372 "Gmsh.y"
+#line 2371 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -5145,7 +5144,7 @@ case 189:
     ;
     break;}
 case 190:
-#line 2390 "Gmsh.y"
+#line 2389 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -5165,7 +5164,7 @@ case 190:
     ;
     break;}
 case 191:
-#line 2408 "Gmsh.y"
+#line 2407 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -5185,7 +5184,7 @@ case 191:
     ;
     break;}
 case 192:
-#line 2426 "Gmsh.y"
+#line 2425 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -5216,7 +5215,7 @@ case 192:
     ;
     break;}
 case 193:
-#line 2455 "Gmsh.y"
+#line 2454 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-5].d, THEM);
       if(!s)
@@ -5253,7 +5252,7 @@ case 193:
     ;
     break;}
 case 194:
-#line 2490 "Gmsh.y"
+#line 2489 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -5282,7 +5281,7 @@ case 194:
     ;
     break;}
 case 195:
-#line 2517 "Gmsh.y"
+#line 2516 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d, THEM);
       if(!v)
@@ -5311,7 +5310,7 @@ case 195:
     ;
     break;}
 case 196:
-#line 2544 "Gmsh.y"
+#line 2543 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -5327,7 +5326,7 @@ case 196:
     ;
     break;}
 case 197:
-#line 2558 "Gmsh.y"
+#line 2557 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	double d;
@@ -5342,51 +5341,51 @@ case 197:
     ;
     break;}
 case 198:
-#line 2577 "Gmsh.y"
+#line 2576 "Gmsh.y"
 { 
       ReplaceAllDuplicates(THEM);
     ;
     break;}
 case 199:
-#line 2581 "Gmsh.y"
+#line 2580 "Gmsh.y"
 { 
       IntersectAllSegmentsTogether();
     ;
     break;}
 case 200:
-#line 2590 "Gmsh.y"
+#line 2589 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
 case 201:
-#line 2591 "Gmsh.y"
+#line 2590 "Gmsh.y"
 { yyval.d = yyvsp[-1].d;           ;
     break;}
 case 202:
-#line 2592 "Gmsh.y"
+#line 2591 "Gmsh.y"
 { yyval.d = -yyvsp[0].d;          ;
     break;}
 case 203:
-#line 2593 "Gmsh.y"
+#line 2592 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
 case 204:
-#line 2594 "Gmsh.y"
+#line 2593 "Gmsh.y"
 { yyval.d = !yyvsp[0].d;          ;
     break;}
 case 205:
-#line 2595 "Gmsh.y"
+#line 2594 "Gmsh.y"
 { yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;
     break;}
 case 206:
-#line 2596 "Gmsh.y"
+#line 2595 "Gmsh.y"
 { yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;
     break;}
 case 207:
-#line 2597 "Gmsh.y"
+#line 2596 "Gmsh.y"
 { yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;
     break;}
 case 208:
-#line 2599 "Gmsh.y"
+#line 2598 "Gmsh.y"
 { 
       if(!yyvsp[0].d)
 	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
@@ -5395,247 +5394,247 @@ case 208:
     ;
     break;}
 case 209:
-#line 2605 "Gmsh.y"
+#line 2604 "Gmsh.y"
 { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;
     break;}
 case 210:
-#line 2606 "Gmsh.y"
+#line 2605 "Gmsh.y"
 { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;
     break;}
 case 211:
-#line 2607 "Gmsh.y"
+#line 2606 "Gmsh.y"
 { yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;
     break;}
 case 212:
-#line 2608 "Gmsh.y"
+#line 2607 "Gmsh.y"
 { yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;
     break;}
 case 213:
-#line 2609 "Gmsh.y"
+#line 2608 "Gmsh.y"
 { yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;
     break;}
 case 214:
-#line 2610 "Gmsh.y"
+#line 2609 "Gmsh.y"
 { yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;
     break;}
 case 215:
-#line 2611 "Gmsh.y"
+#line 2610 "Gmsh.y"
 { yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;
     break;}
 case 216:
-#line 2612 "Gmsh.y"
+#line 2611 "Gmsh.y"
 { yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;
     break;}
 case 217:
-#line 2613 "Gmsh.y"
+#line 2612 "Gmsh.y"
 { yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;
     break;}
 case 218:
-#line 2614 "Gmsh.y"
+#line 2613 "Gmsh.y"
 { yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;
     break;}
 case 219:
-#line 2615 "Gmsh.y"
+#line 2614 "Gmsh.y"
 { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;
     break;}
 case 220:
-#line 2616 "Gmsh.y"
+#line 2615 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
 case 221:
-#line 2617 "Gmsh.y"
+#line 2616 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
 case 222:
-#line 2618 "Gmsh.y"
+#line 2617 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
 case 223:
-#line 2619 "Gmsh.y"
+#line 2618 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
 case 224:
-#line 2620 "Gmsh.y"
+#line 2619 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
 case 225:
-#line 2621 "Gmsh.y"
+#line 2620 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
 case 226:
-#line 2622 "Gmsh.y"
+#line 2621 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
 case 227:
-#line 2623 "Gmsh.y"
+#line 2622 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
 case 228:
-#line 2624 "Gmsh.y"
+#line 2623 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
 case 229:
-#line 2625 "Gmsh.y"
+#line 2624 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
 case 230:
-#line 2626 "Gmsh.y"
+#line 2625 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
 case 231:
-#line 2627 "Gmsh.y"
+#line 2626 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
 case 232:
-#line 2628 "Gmsh.y"
+#line 2627 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
 case 233:
-#line 2629 "Gmsh.y"
+#line 2628 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
 case 234:
-#line 2630 "Gmsh.y"
+#line 2629 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
 case 235:
-#line 2631 "Gmsh.y"
+#line 2630 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
 case 236:
-#line 2632 "Gmsh.y"
+#line 2631 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
 case 237:
-#line 2633 "Gmsh.y"
+#line 2632 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 238:
-#line 2634 "Gmsh.y"
+#line 2633 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 239:
-#line 2635 "Gmsh.y"
+#line 2634 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
 case 240:
-#line 2636 "Gmsh.y"
+#line 2635 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
 case 241:
-#line 2638 "Gmsh.y"
+#line 2637 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
 case 242:
-#line 2639 "Gmsh.y"
+#line 2638 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
 case 243:
-#line 2640 "Gmsh.y"
+#line 2639 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
 case 244:
-#line 2641 "Gmsh.y"
+#line 2640 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
 case 245:
-#line 2642 "Gmsh.y"
+#line 2641 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
 case 246:
-#line 2643 "Gmsh.y"
+#line 2642 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
 case 247:
-#line 2644 "Gmsh.y"
+#line 2643 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
 case 248:
-#line 2645 "Gmsh.y"
+#line 2644 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
 case 249:
-#line 2646 "Gmsh.y"
+#line 2645 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
 case 250:
-#line 2647 "Gmsh.y"
+#line 2646 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
 case 251:
-#line 2648 "Gmsh.y"
+#line 2647 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
 case 252:
-#line 2649 "Gmsh.y"
+#line 2648 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
 case 253:
-#line 2650 "Gmsh.y"
+#line 2649 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
 case 254:
-#line 2651 "Gmsh.y"
+#line 2650 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
 case 255:
-#line 2652 "Gmsh.y"
+#line 2651 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
 case 256:
-#line 2653 "Gmsh.y"
+#line 2652 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
 case 257:
-#line 2654 "Gmsh.y"
+#line 2653 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
 case 258:
-#line 2655 "Gmsh.y"
+#line 2654 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 259:
-#line 2656 "Gmsh.y"
+#line 2655 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 260:
-#line 2657 "Gmsh.y"
+#line 2656 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
 case 261:
-#line 2658 "Gmsh.y"
+#line 2657 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
 case 262:
-#line 2667 "Gmsh.y"
+#line 2666 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
 case 263:
-#line 2668 "Gmsh.y"
+#line 2667 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
 case 264:
-#line 2669 "Gmsh.y"
+#line 2668 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->rank(); ;
     break;}
 case 265:
-#line 2670 "Gmsh.y"
+#line 2669 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->size(); ;
     break;}
 case 266:
-#line 2671 "Gmsh.y"
+#line 2670 "Gmsh.y"
 { yyval.d = Get_GmshMajorVersion(); ;
     break;}
 case 267:
-#line 2672 "Gmsh.y"
+#line 2671 "Gmsh.y"
 { yyval.d = Get_GmshMinorVersion(); ;
     break;}
 case 268:
-#line 2673 "Gmsh.y"
+#line 2672 "Gmsh.y"
 { yyval.d = Get_GmshPatchVersion(); ;
     break;}
 case 269:
-#line 2678 "Gmsh.y"
+#line 2677 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[0].c;
@@ -5650,7 +5649,7 @@ case 269:
     ;
     break;}
 case 270:
-#line 2691 "Gmsh.y"
+#line 2690 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
@@ -5672,7 +5671,7 @@ case 270:
     ;
     break;}
 case 271:
-#line 2711 "Gmsh.y"
+#line 2710 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -5688,7 +5687,7 @@ case 271:
     ;
     break;}
 case 272:
-#line 2725 "Gmsh.y"
+#line 2724 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-1].c;
@@ -5703,7 +5702,7 @@ case 272:
     ;
     break;}
 case 273:
-#line 2738 "Gmsh.y"
+#line 2737 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-4].c;
@@ -5725,7 +5724,7 @@ case 273:
     ;
     break;}
 case 274:
-#line 2761 "Gmsh.y"
+#line 2760 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -5745,7 +5744,7 @@ case 274:
     ;
     break;}
 case 275:
-#line 2779 "Gmsh.y"
+#line 2778 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -5765,7 +5764,7 @@ case 275:
     ;
     break;}
 case 276:
-#line 2797 "Gmsh.y"
+#line 2796 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -5785,7 +5784,7 @@ case 276:
     ;
     break;}
 case 277:
-#line 2815 "Gmsh.y"
+#line 2814 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -5805,124 +5804,124 @@ case 277:
     ;
     break;}
 case 278:
-#line 2833 "Gmsh.y"
+#line 2832 "Gmsh.y"
 { 
       yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d);
       Free(yyvsp[-3].c);
     ;
     break;}
 case 279:
-#line 2841 "Gmsh.y"
+#line 2840 "Gmsh.y"
 {
       memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
     ;
     break;}
 case 280:
-#line 2845 "Gmsh.y"
+#line 2844 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
     ;
     break;}
 case 281:
-#line 2849 "Gmsh.y"
+#line 2848 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
     ;
     break;}
 case 282:
-#line 2853 "Gmsh.y"
+#line 2852 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
     ;
     break;}
 case 283:
-#line 2857 "Gmsh.y"
+#line 2856 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i];
     ;
     break;}
 case 284:
-#line 2864 "Gmsh.y"
+#line 2863 "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 2868 "Gmsh.y"
+#line 2867 "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 2872 "Gmsh.y"
+#line 2871 "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 2876 "Gmsh.y"
+#line 2875 "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 2883 "Gmsh.y"
+#line 2882 "Gmsh.y"
 {
     ;
     break;}
 case 289:
-#line 2886 "Gmsh.y"
+#line 2885 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 290:
-#line 2890 "Gmsh.y"
+#line 2889 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 291:
-#line 2897 "Gmsh.y"
+#line 2896 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(List_T*));
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
 case 292:
-#line 2902 "Gmsh.y"
+#line 2901 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
 case 293:
-#line 2910 "Gmsh.y"
+#line 2909 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 294:
-#line 2915 "Gmsh.y"
+#line 2914 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
 case 295:
-#line 2919 "Gmsh.y"
+#line 2918 "Gmsh.y"
 {
       // creates an empty list
       yyval.l = List_Create(2, 1, sizeof(double));
     ;
     break;}
 case 296:
-#line 2924 "Gmsh.y"
+#line 2923 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 297:
-#line 2928 "Gmsh.y"
+#line 2927 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
       double *pd;
@@ -5933,7 +5932,7 @@ case 297:
     ;
     break;}
 case 298:
-#line 2940 "Gmsh.y"
+#line 2939 "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.)) 
@@ -5941,7 +5940,7 @@ case 298:
     ;
     break;}
 case 299:
-#line 2946 "Gmsh.y"
+#line 2945 "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)){
@@ -5954,7 +5953,7 @@ case 299:
    ;
     break;}
 case 300:
-#line 2957 "Gmsh.y"
+#line 2956 "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
@@ -5976,7 +5975,7 @@ case 300:
     ;
     break;}
 case 301:
-#line 2977 "Gmsh.y"
+#line 2976 "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++){
@@ -5988,7 +5987,7 @@ case 301:
     ;
     break;}
 case 302:
-#line 2987 "Gmsh.y"
+#line 2986 "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++){
@@ -6000,7 +5999,7 @@ case 302:
     ;
     break;}
 case 303:
-#line 2997 "Gmsh.y"
+#line 2996 "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++){
@@ -6012,7 +6011,7 @@ case 303:
     ;
     break;}
 case 304:
-#line 3007 "Gmsh.y"
+#line 3006 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -6031,7 +6030,7 @@ case 304:
     ;
     break;}
 case 305:
-#line 3024 "Gmsh.y"
+#line 3023 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -6052,7 +6051,7 @@ case 305:
     ;
     break;}
 case 306:
-#line 3043 "Gmsh.y"
+#line 3042 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -6078,7 +6077,7 @@ case 306:
     ;
     break;}
 case 307:
-#line 3067 "Gmsh.y"
+#line 3066 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -6106,26 +6105,26 @@ case 307:
     ;
     break;}
 case 308:
-#line 3096 "Gmsh.y"
+#line 3095 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 309:
-#line 3101 "Gmsh.y"
+#line 3100 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
 case 310:
-#line 3105 "Gmsh.y"
+#line 3104 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 311:
-#line 3109 "Gmsh.y"
+#line 3108 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	double d;
@@ -6136,19 +6135,19 @@ case 311:
     ;
     break;}
 case 312:
-#line 3122 "Gmsh.y"
+#line 3121 "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 3126 "Gmsh.y"
+#line 3125 "Gmsh.y"
 {
       yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
     ;
     break;}
 case 314:
-#line 3138 "Gmsh.y"
+#line 3137 "Gmsh.y"
 {
       int flag;
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
@@ -6157,7 +6156,7 @@ case 314:
     ;
     break;}
 case 315:
-#line 3145 "Gmsh.y"
+#line 3144 "Gmsh.y"
 {
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
@@ -6178,13 +6177,13 @@ case 315:
     ;
     break;}
 case 316:
-#line 3167 "Gmsh.y"
+#line 3166 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 317:
-#line 3171 "Gmsh.y"
+#line 3170 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
@@ -6198,26 +6197,26 @@ case 317:
     ;
     break;}
 case 318:
-#line 3186 "Gmsh.y"
+#line 3185 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
 case 319:
-#line 3191 "Gmsh.y"
+#line 3190 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
 case 320:
-#line 3198 "Gmsh.y"
+#line 3197 "Gmsh.y"
 {
       yyval.c = yyvsp[0].c;
     ;
     break;}
 case 321:
-#line 3202 "Gmsh.y"
+#line 3201 "Gmsh.y"
 {
       yyval.c = (char *)Malloc(32*sizeof(char));
       time_t now;
@@ -6227,7 +6226,7 @@ case 321:
     ;
     break;}
 case 322:
-#line 3210 "Gmsh.y"
+#line 3209 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char));
       strcpy(yyval.c, yyvsp[-3].c);
@@ -6237,7 +6236,7 @@ case 322:
     ;
     break;}
 case 323:
-#line 3218 "Gmsh.y"
+#line 3217 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
@@ -6253,7 +6252,7 @@ case 323:
     ;
     break;}
 case 324:
-#line 3232 "Gmsh.y"
+#line 3231 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
@@ -6269,13 +6268,13 @@ case 324:
     ;
     break;}
 case 325:
-#line 3246 "Gmsh.y"
+#line 3245 "Gmsh.y"
 {
       yyval.c = yyvsp[-1].c;
     ;
     break;}
 case 326:
-#line 3250 "Gmsh.y"
+#line 3249 "Gmsh.y"
 {
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring);
@@ -6296,7 +6295,7 @@ case 326:
     ;
     break;}
 case 327:
-#line 3269 "Gmsh.y"
+#line 3268 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -6320,7 +6319,7 @@ case 327:
     ;
     break;}
 case 328:
-#line 3291 "Gmsh.y"
+#line 3290 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -6565,7 +6564,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 3314 "Gmsh.y"
+#line 3313 "Gmsh.y"
 
 
 void DeleteSymbol(void *a, void *b){
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 99cf6aa99feff113f756e6e037ba1dc8e77228bc..5d29ad4c72afaee3f04c25449bc95c6310fc4b0c 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.263 2006-04-04 04:32:34 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.264 2006-04-04 04:35:00 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.263 2006-04-04 04:32:34 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.264 2006-04-04 04:35:00 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //