diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 6b560eab98f7b886f9a8e3a1181d936dc2fb660e..2bf394e74dc8a4eef539a17a61fb040a74a14105 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -195,7 +195,7 @@
 
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.220 2004-12-30 01:36:14 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.221 2004-12-30 01:48:53 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -263,17 +263,13 @@ static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS];
 static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3];
 static char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS];
 
-#if defined(HAVE_FLTK)
-void UpdateViewsInGUI();
-#endif
-
 void yyerror(char *s);
 void yymsg(int type, char *fmt, ...);
 void skip_until(char *skip, char *until);
 int PrintListOfDouble(char *format, List_T *list, char *buffer);
 int CheckViewErrorFlags(Post_View *v);
 
-#line 81 "Gmsh.y"
+#line 77 "Gmsh.y"
 typedef union {
   char *c;
   int i;
@@ -743,55 +739,55 @@ static const short yyrhs[] = {   214,
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   167,   169,   170,   171,   176,   178,   181,   183,   186,   194,
-   208,   225,   227,   230,   232,   233,   236,   242,   247,   248,
-   249,   252,   256,   259,   265,   270,   276,   284,   289,   293,
-   299,   304,   308,   313,   317,   320,   325,   329,   333,   337,
-   342,   346,   349,   353,   357,   361,   365,   369,   373,   376,
-   380,   383,   387,   390,   397,   399,   402,   404,   405,   406,
-   407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
-   419,   424,   440,   447,   455,   463,   464,   465,   466,   467,
-   468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
-   478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
-   488,   489,   490,   493,   496,   500,   506,   512,   515,   519,
-   526,   533,   536,   540,   547,   554,   557,   561,   570,   577,
-   580,   584,   593,   600,   603,   607,   616,   623,   626,   630,
-   643,   650,   653,   657,   670,   677,   680,   684,   697,   704,
-   707,   711,   725,   732,   735,   739,   753,   760,   763,   767,
-   781,   788,   791,   795,   809,   816,   819,   823,   837,   844,
-   847,   851,   865,   872,   875,   879,   903,   910,   913,   917,
-   941,   948,   951,   955,   979,   986,   989,   993,  1012,  1019,
-  1022,  1026,  1045,  1052,  1055,  1059,  1078,  1085,  1088,  1092,
-  1110,  1117,  1120,  1124,  1142,  1149,  1152,  1156,  1174,  1181,
-  1187,  1194,  1202,  1208,  1214,  1221,  1229,  1235,  1243,  1246,
-  1250,  1258,  1260,  1261,  1262,  1263,  1266,  1268,  1271,  1303,
-  1339,  1388,  1404,  1414,  1432,  1445,  1461,  1486,  1512,  1525,
-  1541,  1554,  1570,  1589,  1611,  1620,  1634,  1654,  1670,  1689,
-  1708,  1726,  1744,  1762,  1788,  1806,  1832,  1851,  1875,  1899,
-  1925,  1942,  1960,  1979,  1998,  2037,  2062,  2084,  2100,  2119,
-  2138,  2154,  2173,  2190,  2207,  2227,  2233,  2238,  2243,  2250,
-  2252,  2253,  2256,  2261,  2265,  2281,  2297,  2313,  2333,  2347,
-  2357,  2367,  2380,  2389,  2410,  2424,  2432,  2437,  2448,  2461,
-  2505,  2519,  2534,  2543,  2553,  2557,  2561,  2565,  2576,  2593,
-  2609,  2635,  2662,  2694,  2700,  2705,  2710,  2714,  2722,  2741,
-  2757,  2773,  2778,  2794,  2799,  2815,  2820,  2838,  2861,  2884,
-  2907,  2912,  2935,  2940,  2963,  2968,  2994,  3017,  3040,  3063,
-  3068,  3091,  3097,  3120,  3126,  3151,  3155,  3160,  3187,  3211,
-  3219,  3238,  3256,  3274,  3301,  3327,  3353,  3367,  3385,  3390,
-  3399,  3401,  3402,  3403,  3404,  3407,  3409,  3410,  3411,  3412,
-  3413,  3414,  3415,  3416,  3423,  3424,  3425,  3426,  3427,  3428,
-  3429,  3430,  3431,  3432,  3433,  3434,  3435,  3436,  3437,  3438,
-  3439,  3440,  3441,  3442,  3443,  3444,  3445,  3446,  3447,  3448,
-  3449,  3450,  3451,  3452,  3453,  3454,  3456,  3457,  3458,  3459,
-  3460,  3461,  3462,  3463,  3464,  3465,  3466,  3467,  3468,  3469,
-  3470,  3471,  3472,  3473,  3474,  3475,  3476,  3481,  3486,  3487,
-  3488,  3492,  3504,  3523,  3536,  3548,  3570,  3587,  3604,  3621,
-  3638,  3644,  3649,  3653,  3657,  3661,  3667,  3672,  3676,  3680,
-  3686,  3690,  3695,  3699,  3704,  3708,  3712,  3718,  3724,  3731,
-  3737,  3741,  3745,  3756,  3763,  3774,  3794,  3804,  3814,  3826,
-  3842,  3860,  3883,  3910,  3916,  3920,  3924,  3936,  3941,  3953,
-  3959,  3979,  3984,  3997,  4003,  4009,  4014,  4022,  4036,  4040,
-  4059,  4075
+   163,   165,   166,   167,   172,   174,   177,   179,   182,   190,
+   204,   221,   223,   226,   228,   229,   232,   238,   243,   244,
+   245,   248,   252,   255,   261,   266,   272,   280,   285,   289,
+   295,   300,   304,   309,   313,   316,   321,   325,   329,   333,
+   338,   342,   345,   349,   353,   357,   361,   365,   369,   372,
+   376,   379,   383,   386,   393,   395,   398,   400,   401,   402,
+   403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
+   415,   420,   436,   443,   451,   459,   460,   461,   462,   463,
+   464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
+   474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
+   484,   485,   486,   489,   492,   496,   502,   508,   511,   515,
+   522,   529,   532,   536,   543,   550,   553,   557,   566,   573,
+   576,   580,   589,   596,   599,   603,   612,   619,   622,   626,
+   639,   646,   649,   653,   666,   673,   676,   680,   693,   700,
+   703,   707,   721,   728,   731,   735,   749,   756,   759,   763,
+   777,   784,   787,   791,   805,   812,   815,   819,   833,   840,
+   843,   847,   861,   868,   871,   875,   899,   906,   909,   913,
+   937,   944,   947,   951,   975,   982,   985,   989,  1008,  1015,
+  1018,  1022,  1041,  1048,  1051,  1055,  1074,  1081,  1084,  1088,
+  1106,  1113,  1116,  1120,  1138,  1145,  1148,  1152,  1170,  1177,
+  1183,  1190,  1198,  1204,  1210,  1217,  1225,  1231,  1239,  1242,
+  1246,  1254,  1256,  1257,  1258,  1259,  1262,  1264,  1267,  1299,
+  1335,  1384,  1400,  1410,  1428,  1441,  1457,  1482,  1508,  1521,
+  1537,  1550,  1566,  1585,  1607,  1616,  1630,  1650,  1666,  1685,
+  1704,  1722,  1740,  1758,  1784,  1802,  1828,  1847,  1871,  1895,
+  1921,  1938,  1956,  1975,  1994,  2033,  2058,  2080,  2096,  2115,
+  2134,  2150,  2169,  2186,  2203,  2223,  2229,  2234,  2239,  2246,
+  2248,  2249,  2252,  2257,  2261,  2277,  2293,  2309,  2329,  2343,
+  2353,  2363,  2372,  2381,  2398,  2412,  2420,  2425,  2436,  2449,
+  2493,  2507,  2522,  2531,  2541,  2545,  2549,  2553,  2564,  2581,
+  2597,  2623,  2650,  2682,  2688,  2693,  2698,  2702,  2710,  2729,
+  2745,  2761,  2766,  2782,  2787,  2803,  2808,  2826,  2849,  2872,
+  2895,  2900,  2923,  2928,  2951,  2956,  2982,  3005,  3028,  3051,
+  3056,  3079,  3085,  3108,  3114,  3139,  3143,  3148,  3175,  3199,
+  3207,  3226,  3244,  3262,  3289,  3315,  3341,  3355,  3373,  3378,
+  3387,  3389,  3390,  3391,  3392,  3395,  3397,  3398,  3399,  3400,
+  3401,  3402,  3403,  3404,  3411,  3412,  3413,  3414,  3415,  3416,
+  3417,  3418,  3419,  3420,  3421,  3422,  3423,  3424,  3425,  3426,
+  3427,  3428,  3429,  3430,  3431,  3432,  3433,  3434,  3435,  3436,
+  3437,  3438,  3439,  3440,  3441,  3442,  3444,  3445,  3446,  3447,
+  3448,  3449,  3450,  3451,  3452,  3453,  3454,  3455,  3456,  3457,
+  3458,  3459,  3460,  3461,  3462,  3463,  3464,  3469,  3474,  3475,
+  3476,  3480,  3492,  3511,  3524,  3536,  3558,  3575,  3592,  3609,
+  3626,  3632,  3637,  3641,  3645,  3649,  3655,  3660,  3664,  3668,
+  3674,  3678,  3683,  3687,  3692,  3696,  3700,  3706,  3712,  3719,
+  3725,  3729,  3733,  3744,  3751,  3762,  3782,  3792,  3802,  3814,
+  3830,  3848,  3871,  3898,  3904,  3908,  3912,  3924,  3929,  3941,
+  3947,  3967,  3972,  3985,  3991,  3997,  4002,  4010,  4024,  4028,
+  4047,  4063
 };
 #endif
 
@@ -4706,19 +4702,19 @@ yyreduce:
   switch (yyn) {
 
 case 4:
-#line 171 "Gmsh.y"
+#line 167 "Gmsh.y"
 { yyerrok; return 1; ;
     break;}
 case 5:
-#line 177 "Gmsh.y"
+#line 173 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
 case 6:
-#line 178 "Gmsh.y"
+#line 174 "Gmsh.y"
 { yyval.d = -yyvsp[0].d; ;
     break;}
 case 9:
-#line 188 "Gmsh.y"
+#line 184 "Gmsh.y"
 {
       yymsg(INFO, "Reading STL solid");
       STL_Surf = Create_Surface(NEWSURFACE(), MSH_SURF_STL);
@@ -4727,7 +4723,7 @@ case 9:
     ;
     break;}
 case 10:
-#line 202 "Gmsh.y"
+#line 198 "Gmsh.y"
 {
       STL_Surf->STL->Add_Facet(yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
 			       yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d,
@@ -4736,7 +4732,7 @@ case 10:
     ;
     break;}
 case 11:
-#line 209 "Gmsh.y"
+#line 205 "Gmsh.y"
 {
       if(CTX.geom.stl_create_elementary){
 	STL_Surf->STL->ReplaceDuplicate();
@@ -4751,79 +4747,79 @@ case 11:
     ;
     break;}
 case 14:
-#line 231 "Gmsh.y"
+#line 227 "Gmsh.y"
 { return 1; ;
     break;}
 case 15:
-#line 232 "Gmsh.y"
+#line 228 "Gmsh.y"
 { return 1; ;
     break;}
 case 16:
-#line 233 "Gmsh.y"
+#line 229 "Gmsh.y"
 { return 1; ;
     break;}
 case 17:
-#line 238 "Gmsh.y"
+#line 234 "Gmsh.y"
 {
       yymsg(INFO, "Reading Step Iso-10303-21 data");
       Create_Step_Solid_BRep();
     ;
     break;}
 case 18:
-#line 243 "Gmsh.y"
+#line 239 "Gmsh.y"
 {
       Resolve_BREP ();
       yymsg(INFO, "Read Step Iso-10303-21 data");
     ;
     break;}
 case 22:
-#line 254 "Gmsh.y"
+#line 250 "Gmsh.y"
 {
     ;
     break;}
 case 23:
-#line 257 "Gmsh.y"
+#line 253 "Gmsh.y"
 {
     ;
     break;}
 case 24:
-#line 261 "Gmsh.y"
+#line 257 "Gmsh.y"
 {
    ;
     break;}
 case 25:
-#line 267 "Gmsh.y"
+#line 263 "Gmsh.y"
 {
         Add_Cartesian_Point((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
     ;
     break;}
 case 26:
-#line 273 "Gmsh.y"
+#line 269 "Gmsh.y"
 {
        Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l,	yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
     ;
     break;}
 case 27:
-#line 280 "Gmsh.y"
+#line 276 "Gmsh.y"
 {
       Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
 				      yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
     ;
     break;}
 case 28:
-#line 286 "Gmsh.y"
+#line 282 "Gmsh.y"
 {
       Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
     ;
     break;}
 case 29:
-#line 290 "Gmsh.y"
+#line 286 "Gmsh.y"
 {
       Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 1);
     ;
     break;}
 case 30:
-#line 294 "Gmsh.y"
+#line 290 "Gmsh.y"
 {
       // check the norm! Face_Bound : hole outside surface!
       yymsg(INFO, "Found a face bound");
@@ -4831,204 +4827,204 @@ case 30:
     ;
     break;}
 case 31:
-#line 301 "Gmsh.y"
+#line 297 "Gmsh.y"
 {
       Add_Oriented_Edge((int)yyvsp[-14].d, yyvsp[-10].c, (int)yyvsp[-4].d, yyvsp[-2].i);
     ;
     break;}
 case 32:
-#line 305 "Gmsh.y"
+#line 301 "Gmsh.y"
 {
       Add_Edge_Loop((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].l);
     ;
     break;}
 case 33:
-#line 310 "Gmsh.y"
+#line 306 "Gmsh.y"
 {
       Add_Advanced_Face((int)yyvsp[-12].d, yyvsp[-8].c, yyvsp[-6].l, (int)yyvsp[-4].d, yyvsp[-2].i);
     ;
     break;}
 case 34:
-#line 314 "Gmsh.y"
+#line 310 "Gmsh.y"
 {
       Add_Vertex_Point((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d);
     ;
     break;}
 case 35:
-#line 318 "Gmsh.y"
+#line 314 "Gmsh.y"
 {
     ;
     break;}
 case 36:
-#line 322 "Gmsh.y"
+#line 318 "Gmsh.y"
 {
       Add_Axis2_Placement3D  ((int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
     ;
     break;}
 case 37:
-#line 326 "Gmsh.y"
+#line 322 "Gmsh.y"
 {
       Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
     ;
     break;}
 case 38:
-#line 330 "Gmsh.y"
+#line 326 "Gmsh.y"
 {
       Add_Plane((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d);
     ;
     break;}
 case 39:
-#line 334 "Gmsh.y"
+#line 330 "Gmsh.y"
 {
       Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
     ;
     break;}
 case 40:
-#line 338 "Gmsh.y"
+#line 334 "Gmsh.y"
 {
       yymsg(INFO, "Found a closed shell");
       Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
     ;
     break;}
 case 41:
-#line 344 "Gmsh.y"
+#line 340 "Gmsh.y"
 {
     ;
     break;}
 case 42:
-#line 347 "Gmsh.y"
+#line 343 "Gmsh.y"
 {
     ;
     break;}
 case 43:
-#line 350 "Gmsh.y"
+#line 346 "Gmsh.y"
 {
       Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 44:
-#line 354 "Gmsh.y"
+#line 350 "Gmsh.y"
 {
       Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 45:
-#line 358 "Gmsh.y"
+#line 354 "Gmsh.y"
 {
       Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 46:
-#line 362 "Gmsh.y"
+#line 358 "Gmsh.y"
 {
       Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 47:
-#line 366 "Gmsh.y"
+#line 362 "Gmsh.y"
 {
       Add_Ellipse((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 48:
-#line 371 "Gmsh.y"
+#line 367 "Gmsh.y"
 {
     ;
     break;}
 case 49:
-#line 374 "Gmsh.y"
+#line 370 "Gmsh.y"
 {
     ;
     break;}
 case 50:
-#line 378 "Gmsh.y"
+#line 374 "Gmsh.y"
 {
     ;
     break;}
 case 51:
-#line 381 "Gmsh.y"
+#line 377 "Gmsh.y"
 {
     ;
     break;}
 case 52:
-#line 385 "Gmsh.y"
+#line 381 "Gmsh.y"
 {
     ;
     break;}
 case 53:
-#line 388 "Gmsh.y"
+#line 384 "Gmsh.y"
 {
     ;
     break;}
 case 54:
-#line 391 "Gmsh.y"
+#line 387 "Gmsh.y"
 {
     ;
     break;}
 case 57:
-#line 403 "Gmsh.y"
+#line 399 "Gmsh.y"
 { return 1; ;
     break;}
 case 58:
-#line 404 "Gmsh.y"
+#line 400 "Gmsh.y"
 { return 1; ;
     break;}
 case 59:
-#line 405 "Gmsh.y"
+#line 401 "Gmsh.y"
 { return 1; ;
     break;}
 case 60:
-#line 406 "Gmsh.y"
+#line 402 "Gmsh.y"
 { return 1; ;
     break;}
 case 61:
-#line 407 "Gmsh.y"
+#line 403 "Gmsh.y"
 { List_Delete(yyvsp[0].l); return 1; ;
     break;}
 case 62:
-#line 408 "Gmsh.y"
+#line 404 "Gmsh.y"
 { List_Delete(yyvsp[0].l); return 1; ;
     break;}
 case 63:
-#line 409 "Gmsh.y"
+#line 405 "Gmsh.y"
 { return 1; ;
     break;}
 case 64:
-#line 410 "Gmsh.y"
+#line 406 "Gmsh.y"
 { return 1; ;
     break;}
 case 65:
-#line 411 "Gmsh.y"
+#line 407 "Gmsh.y"
 { return 1; ;
     break;}
 case 66:
-#line 412 "Gmsh.y"
+#line 408 "Gmsh.y"
 { List_Delete(yyvsp[0].l); return 1; ;
     break;}
 case 67:
-#line 413 "Gmsh.y"
+#line 409 "Gmsh.y"
 { return 1; ;
     break;}
 case 68:
-#line 414 "Gmsh.y"
+#line 410 "Gmsh.y"
 { return 1; ;
     break;}
 case 69:
-#line 415 "Gmsh.y"
+#line 411 "Gmsh.y"
 { return 1; ;
     break;}
 case 70:
-#line 416 "Gmsh.y"
+#line 412 "Gmsh.y"
 { return 1; ;
     break;}
 case 71:
-#line 421 "Gmsh.y"
+#line 417 "Gmsh.y"
 {
       Msg(DIRECT, yyvsp[-2].c);
     ;
     break;}
 case 72:
-#line 425 "Gmsh.y"
+#line 421 "Gmsh.y"
 {
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring);
@@ -5042,7 +5038,7 @@ case 72:
     ;
     break;}
 case 73:
-#line 442 "Gmsh.y"
+#line 438 "Gmsh.y"
 { 
       if(!strcmp(yyvsp[-5].c, "View") && !CheckViewErrorFlags(View)){
 	EndView(View, 0, yyname, yyvsp[-4].c);
@@ -5050,7 +5046,7 @@ case 73:
     ;
     break;}
 case 74:
-#line 448 "Gmsh.y"
+#line 444 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-7].c, "View") && !CheckViewErrorFlags(View)){
 	EndView(View, 0, yyname, yyvsp[-6].c);
@@ -5058,7 +5054,7 @@ case 74:
     ;
     break;}
 case 75:
-#line 457 "Gmsh.y"
+#line 453 "Gmsh.y"
 {
       View = BeginView(1); 
       for(int i = 0; i < VIEW_NB_ELEMENT_TYPES; i++){
@@ -5067,36 +5063,36 @@ case 75:
     ;
     break;}
 case 104:
-#line 495 "Gmsh.y"
+#line 491 "Gmsh.y"
 { List_Add(View->SP, &yyvsp[0].d); ;
     break;}
 case 105:
-#line 497 "Gmsh.y"
+#line 493 "Gmsh.y"
 { List_Add(View->SP, &yyvsp[0].d); ;
     break;}
 case 106:
-#line 502 "Gmsh.y"
+#line 498 "Gmsh.y"
 { 
       List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
       List_Add(View->SP, &yyvsp[-1].d);      
     ;
     break;}
 case 107:
-#line 507 "Gmsh.y"
+#line 503 "Gmsh.y"
 {
       View->NbSP++;
     ;
     break;}
 case 108:
-#line 514 "Gmsh.y"
+#line 510 "Gmsh.y"
 { List_Add(View->VP, &yyvsp[0].d); ;
     break;}
 case 109:
-#line 516 "Gmsh.y"
+#line 512 "Gmsh.y"
 { List_Add(View->VP, &yyvsp[0].d); ;
     break;}
 case 110:
-#line 521 "Gmsh.y"
+#line 517 "Gmsh.y"
 { 
       List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
       List_Add(View->VP, &yyvsp[-1].d); 
@@ -5104,22 +5100,22 @@ case 110:
     ;
     break;}
 case 111:
-#line 527 "Gmsh.y"
+#line 523 "Gmsh.y"
 {
       if((List_Nbr(View->VP) - ntmp) % 3) ViewErrorFlags[1]++;
       View->NbVP++;
     ;
     break;}
 case 112:
-#line 535 "Gmsh.y"
+#line 531 "Gmsh.y"
 { List_Add(View->TP, &yyvsp[0].d); ;
     break;}
 case 113:
-#line 537 "Gmsh.y"
+#line 533 "Gmsh.y"
 { List_Add(View->TP, &yyvsp[0].d); ;
     break;}
 case 114:
-#line 542 "Gmsh.y"
+#line 538 "Gmsh.y"
 { 
       List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
       List_Add(View->TP, &yyvsp[-1].d);
@@ -5127,22 +5123,22 @@ case 114:
     ;
     break;}
 case 115:
-#line 548 "Gmsh.y"
+#line 544 "Gmsh.y"
 {
       if((List_Nbr(View->TP) - ntmp) % 9) ViewErrorFlags[2]++;
       View->NbTP++;
     ;
     break;}
 case 116:
-#line 556 "Gmsh.y"
+#line 552 "Gmsh.y"
 { List_Add(View->SL, &yyvsp[0].d); ;
     break;}
 case 117:
-#line 558 "Gmsh.y"
+#line 554 "Gmsh.y"
 { List_Add(View->SL, &yyvsp[0].d); ;
     break;}
 case 118:
-#line 564 "Gmsh.y"
+#line 560 "Gmsh.y"
 { 
       List_Add(View->SL, &yyvsp[-11].d); List_Add(View->SL, &yyvsp[-5].d);
       List_Add(View->SL, &yyvsp[-9].d); List_Add(View->SL, &yyvsp[-3].d);
@@ -5151,22 +5147,22 @@ case 118:
     ;
     break;}
 case 119:
-#line 571 "Gmsh.y"
+#line 567 "Gmsh.y"
 {
       if((List_Nbr(View->SL) - ntmp) % 2) ViewErrorFlags[3]++;
       View->NbSL++;
     ;
     break;}
 case 120:
-#line 579 "Gmsh.y"
+#line 575 "Gmsh.y"
 { List_Add(View->VL, &yyvsp[0].d); ;
     break;}
 case 121:
-#line 581 "Gmsh.y"
+#line 577 "Gmsh.y"
 { List_Add(View->VL, &yyvsp[0].d); ;
     break;}
 case 122:
-#line 587 "Gmsh.y"
+#line 583 "Gmsh.y"
 { 
       List_Add(View->VL, &yyvsp[-11].d); List_Add(View->VL, &yyvsp[-5].d);
       List_Add(View->VL, &yyvsp[-9].d); List_Add(View->VL, &yyvsp[-3].d);
@@ -5175,22 +5171,22 @@ case 122:
     ;
     break;}
 case 123:
-#line 594 "Gmsh.y"
+#line 590 "Gmsh.y"
 {
       if((List_Nbr(View->VL) - ntmp) % 6) ViewErrorFlags[4]++;
       View->NbVL++;
     ;
     break;}
 case 124:
-#line 602 "Gmsh.y"
+#line 598 "Gmsh.y"
 { List_Add(View->TL, &yyvsp[0].d); ;
     break;}
 case 125:
-#line 604 "Gmsh.y"
+#line 600 "Gmsh.y"
 { List_Add(View->TL, &yyvsp[0].d); ;
     break;}
 case 126:
-#line 610 "Gmsh.y"
+#line 606 "Gmsh.y"
 { 
       List_Add(View->TL, &yyvsp[-11].d); List_Add(View->TL, &yyvsp[-5].d);
       List_Add(View->TL, &yyvsp[-9].d); List_Add(View->TL, &yyvsp[-3].d);
@@ -5199,22 +5195,22 @@ case 126:
     ;
     break;}
 case 127:
-#line 617 "Gmsh.y"
+#line 613 "Gmsh.y"
 {
       if((List_Nbr(View->TL) - ntmp) % 18) ViewErrorFlags[5]++;
       View->NbTL++;
     ;
     break;}
 case 128:
-#line 625 "Gmsh.y"
+#line 621 "Gmsh.y"
 { List_Add(View->ST, &yyvsp[0].d); ;
     break;}
 case 129:
-#line 627 "Gmsh.y"
+#line 623 "Gmsh.y"
 { List_Add(View->ST, &yyvsp[0].d); ;
     break;}
 case 130:
-#line 634 "Gmsh.y"
+#line 630 "Gmsh.y"
 { 
       List_Add(View->ST, &yyvsp[-17].d); List_Add(View->ST, &yyvsp[-11].d);
       List_Add(View->ST, &yyvsp[-5].d);
@@ -5226,22 +5222,22 @@ case 130:
     ;
     break;}
 case 131:
-#line 644 "Gmsh.y"
+#line 640 "Gmsh.y"
 {
       if((List_Nbr(View->ST) - ntmp) % 3) ViewErrorFlags[6]++;
       View->NbST++;
     ;
     break;}
 case 132:
-#line 652 "Gmsh.y"
+#line 648 "Gmsh.y"
 { List_Add(View->VT, &yyvsp[0].d); ;
     break;}
 case 133:
-#line 654 "Gmsh.y"
+#line 650 "Gmsh.y"
 { List_Add(View->VT, &yyvsp[0].d); ;
     break;}
 case 134:
-#line 661 "Gmsh.y"
+#line 657 "Gmsh.y"
 { 
       List_Add(View->VT, &yyvsp[-17].d); List_Add(View->VT, &yyvsp[-11].d);
       List_Add(View->VT, &yyvsp[-5].d);
@@ -5253,22 +5249,22 @@ case 134:
     ;
     break;}
 case 135:
-#line 671 "Gmsh.y"
+#line 667 "Gmsh.y"
 {
       if((List_Nbr(View->VT) - ntmp) % 9) ViewErrorFlags[7]++;
       View->NbVT++;
     ;
     break;}
 case 136:
-#line 679 "Gmsh.y"
+#line 675 "Gmsh.y"
 { List_Add(View->TT, &yyvsp[0].d); ;
     break;}
 case 137:
-#line 681 "Gmsh.y"
+#line 677 "Gmsh.y"
 { List_Add(View->TT, &yyvsp[0].d); ;
     break;}
 case 138:
-#line 688 "Gmsh.y"
+#line 684 "Gmsh.y"
 { 
       List_Add(View->TT, &yyvsp[-17].d); List_Add(View->TT, &yyvsp[-11].d);
       List_Add(View->TT, &yyvsp[-5].d);
@@ -5280,22 +5276,22 @@ case 138:
     ;
     break;}
 case 139:
-#line 698 "Gmsh.y"
+#line 694 "Gmsh.y"
 {
       if((List_Nbr(View->TT) - ntmp) % 27) ViewErrorFlags[8]++;
       View->NbTT++;
     ;
     break;}
 case 140:
-#line 706 "Gmsh.y"
+#line 702 "Gmsh.y"
 { List_Add(View->SQ, &yyvsp[0].d); ;
     break;}
 case 141:
-#line 708 "Gmsh.y"
+#line 704 "Gmsh.y"
 { List_Add(View->SQ, &yyvsp[0].d); ;
     break;}
 case 142:
-#line 716 "Gmsh.y"
+#line 712 "Gmsh.y"
 { 
       List_Add(View->SQ, &yyvsp[-23].d);  List_Add(View->SQ, &yyvsp[-17].d);
       List_Add(View->SQ, &yyvsp[-11].d); List_Add(View->SQ, &yyvsp[-5].d);
@@ -5307,22 +5303,22 @@ case 142:
     ;
     break;}
 case 143:
-#line 726 "Gmsh.y"
+#line 722 "Gmsh.y"
 {
       if((List_Nbr(View->SQ) - ntmp) % 4) ViewErrorFlags[9]++;
       View->NbSQ++;
     ;
     break;}
 case 144:
-#line 734 "Gmsh.y"
+#line 730 "Gmsh.y"
 { List_Add(View->VQ, &yyvsp[0].d); ;
     break;}
 case 145:
-#line 736 "Gmsh.y"
+#line 732 "Gmsh.y"
 { List_Add(View->VQ, &yyvsp[0].d); ;
     break;}
 case 146:
-#line 744 "Gmsh.y"
+#line 740 "Gmsh.y"
 { 
       List_Add(View->VQ, &yyvsp[-23].d);  List_Add(View->VQ, &yyvsp[-17].d);
       List_Add(View->VQ, &yyvsp[-11].d); List_Add(View->VQ, &yyvsp[-5].d);
@@ -5334,22 +5330,22 @@ case 146:
     ;
     break;}
 case 147:
-#line 754 "Gmsh.y"
+#line 750 "Gmsh.y"
 {
       if((List_Nbr(View->VQ) - ntmp) % 12) ViewErrorFlags[10]++;
       View->NbVQ++;
     ;
     break;}
 case 148:
-#line 762 "Gmsh.y"
+#line 758 "Gmsh.y"
 { List_Add(View->TQ, &yyvsp[0].d); ;
     break;}
 case 149:
-#line 764 "Gmsh.y"
+#line 760 "Gmsh.y"
 { List_Add(View->TQ, &yyvsp[0].d); ;
     break;}
 case 150:
-#line 772 "Gmsh.y"
+#line 768 "Gmsh.y"
 { 
       List_Add(View->TQ, &yyvsp[-23].d);  List_Add(View->TQ, &yyvsp[-17].d);
       List_Add(View->TQ, &yyvsp[-11].d); List_Add(View->TQ, &yyvsp[-5].d);
@@ -5361,22 +5357,22 @@ case 150:
     ;
     break;}
 case 151:
-#line 782 "Gmsh.y"
+#line 778 "Gmsh.y"
 {
       if((List_Nbr(View->TQ) - ntmp) % 36) ViewErrorFlags[11]++;
       View->NbTQ++;
     ;
     break;}
 case 152:
-#line 790 "Gmsh.y"
+#line 786 "Gmsh.y"
 { List_Add(View->SS, &yyvsp[0].d); ;
     break;}
 case 153:
-#line 792 "Gmsh.y"
+#line 788 "Gmsh.y"
 { List_Add(View->SS, &yyvsp[0].d); ;
     break;}
 case 154:
-#line 800 "Gmsh.y"
+#line 796 "Gmsh.y"
 { 
       List_Add(View->SS, &yyvsp[-23].d);  List_Add(View->SS, &yyvsp[-17].d);
       List_Add(View->SS, &yyvsp[-11].d); List_Add(View->SS, &yyvsp[-5].d);
@@ -5388,22 +5384,22 @@ case 154:
     ;
     break;}
 case 155:
-#line 810 "Gmsh.y"
+#line 806 "Gmsh.y"
 {
       if((List_Nbr(View->SS) - ntmp) % 4) ViewErrorFlags[12]++;
       View->NbSS++;
     ;
     break;}
 case 156:
-#line 818 "Gmsh.y"
+#line 814 "Gmsh.y"
 { List_Add(View->VS, &yyvsp[0].d); ;
     break;}
 case 157:
-#line 820 "Gmsh.y"
+#line 816 "Gmsh.y"
 { List_Add(View->VS, &yyvsp[0].d); ;
     break;}
 case 158:
-#line 828 "Gmsh.y"
+#line 824 "Gmsh.y"
 { 
       List_Add(View->VS, &yyvsp[-23].d);  List_Add(View->VS, &yyvsp[-17].d);
       List_Add(View->VS, &yyvsp[-11].d); List_Add(View->VS, &yyvsp[-5].d);
@@ -5415,22 +5411,22 @@ case 158:
     ;
     break;}
 case 159:
-#line 838 "Gmsh.y"
+#line 834 "Gmsh.y"
 {
       if((List_Nbr(View->VS) - ntmp) % 12) ViewErrorFlags[13]++;
       View->NbVS++;
     ;
     break;}
 case 160:
-#line 846 "Gmsh.y"
+#line 842 "Gmsh.y"
 { List_Add(View->TS, &yyvsp[0].d); ;
     break;}
 case 161:
-#line 848 "Gmsh.y"
+#line 844 "Gmsh.y"
 { List_Add(View->TS, &yyvsp[0].d); ;
     break;}
 case 162:
-#line 856 "Gmsh.y"
+#line 852 "Gmsh.y"
 { 
       List_Add(View->TS, &yyvsp[-23].d);  List_Add(View->TS, &yyvsp[-17].d);
       List_Add(View->TS, &yyvsp[-11].d); List_Add(View->TS, &yyvsp[-5].d);
@@ -5442,22 +5438,22 @@ case 162:
     ;
     break;}
 case 163:
-#line 866 "Gmsh.y"
+#line 862 "Gmsh.y"
 {
       if((List_Nbr(View->TS) - ntmp) % 36) ViewErrorFlags[14]++;
       View->NbTS++;
     ;
     break;}
 case 164:
-#line 874 "Gmsh.y"
+#line 870 "Gmsh.y"
 { List_Add(View->SH, &yyvsp[0].d); ;
     break;}
 case 165:
-#line 876 "Gmsh.y"
+#line 872 "Gmsh.y"
 { List_Add(View->SH, &yyvsp[0].d); ;
     break;}
 case 166:
-#line 888 "Gmsh.y"
+#line 884 "Gmsh.y"
 { 
       List_Add(View->SH, &yyvsp[-47].d);  List_Add(View->SH, &yyvsp[-41].d);
       List_Add(View->SH, &yyvsp[-35].d); List_Add(View->SH, &yyvsp[-29].d);
@@ -5475,22 +5471,22 @@ case 166:
     ;
     break;}
 case 167:
-#line 904 "Gmsh.y"
+#line 900 "Gmsh.y"
 {
       if((List_Nbr(View->SH) - ntmp) % 8) ViewErrorFlags[15]++;
       View->NbSH++;
     ;
     break;}
 case 168:
-#line 912 "Gmsh.y"
+#line 908 "Gmsh.y"
 { List_Add(View->VH, &yyvsp[0].d); ;
     break;}
 case 169:
-#line 914 "Gmsh.y"
+#line 910 "Gmsh.y"
 { List_Add(View->VH, &yyvsp[0].d); ;
     break;}
 case 170:
-#line 926 "Gmsh.y"
+#line 922 "Gmsh.y"
 { 
       List_Add(View->VH, &yyvsp[-47].d);  List_Add(View->VH, &yyvsp[-41].d);
       List_Add(View->VH, &yyvsp[-35].d); List_Add(View->VH, &yyvsp[-29].d);
@@ -5508,22 +5504,22 @@ case 170:
     ;
     break;}
 case 171:
-#line 942 "Gmsh.y"
+#line 938 "Gmsh.y"
 {
       if((List_Nbr(View->VH) - ntmp) % 24) ViewErrorFlags[16]++;
       View->NbVH++;
     ;
     break;}
 case 172:
-#line 950 "Gmsh.y"
+#line 946 "Gmsh.y"
 { List_Add(View->TH, &yyvsp[0].d); ;
     break;}
 case 173:
-#line 952 "Gmsh.y"
+#line 948 "Gmsh.y"
 { List_Add(View->TH, &yyvsp[0].d); ;
     break;}
 case 174:
-#line 964 "Gmsh.y"
+#line 960 "Gmsh.y"
 { 
       List_Add(View->TH, &yyvsp[-47].d);  List_Add(View->TH, &yyvsp[-41].d);
       List_Add(View->TH, &yyvsp[-35].d); List_Add(View->TH, &yyvsp[-29].d);
@@ -5541,22 +5537,22 @@ case 174:
     ;
     break;}
 case 175:
-#line 980 "Gmsh.y"
+#line 976 "Gmsh.y"
 {
       if((List_Nbr(View->TH) - ntmp) % 72) ViewErrorFlags[17]++;
       View->NbTH++;
     ;
     break;}
 case 176:
-#line 988 "Gmsh.y"
+#line 984 "Gmsh.y"
 { List_Add(View->SI, &yyvsp[0].d); ;
     break;}
 case 177:
-#line 990 "Gmsh.y"
+#line 986 "Gmsh.y"
 { List_Add(View->SI, &yyvsp[0].d); ;
     break;}
 case 178:
-#line 1000 "Gmsh.y"
+#line 996 "Gmsh.y"
 { 
       List_Add(View->SI, &yyvsp[-35].d);  List_Add(View->SI, &yyvsp[-29].d);
       List_Add(View->SI, &yyvsp[-23].d); List_Add(View->SI, &yyvsp[-17].d);
@@ -5571,22 +5567,22 @@ case 178:
     ;
     break;}
 case 179:
-#line 1013 "Gmsh.y"
+#line 1009 "Gmsh.y"
 {
       if((List_Nbr(View->SI) - ntmp) % 6) ViewErrorFlags[18]++;
       View->NbSI++;
     ;
     break;}
 case 180:
-#line 1021 "Gmsh.y"
+#line 1017 "Gmsh.y"
 { List_Add(View->VI, &yyvsp[0].d); ;
     break;}
 case 181:
-#line 1023 "Gmsh.y"
+#line 1019 "Gmsh.y"
 { List_Add(View->VI, &yyvsp[0].d); ;
     break;}
 case 182:
-#line 1033 "Gmsh.y"
+#line 1029 "Gmsh.y"
 { 
       List_Add(View->VI, &yyvsp[-35].d);  List_Add(View->VI, &yyvsp[-29].d);
       List_Add(View->VI, &yyvsp[-23].d); List_Add(View->VI, &yyvsp[-17].d);
@@ -5601,22 +5597,22 @@ case 182:
     ;
     break;}
 case 183:
-#line 1046 "Gmsh.y"
+#line 1042 "Gmsh.y"
 {
       if((List_Nbr(View->VI) - ntmp) % 18) ViewErrorFlags[19]++;
       View->NbVI++;
     ;
     break;}
 case 184:
-#line 1054 "Gmsh.y"
+#line 1050 "Gmsh.y"
 { List_Add(View->TI, &yyvsp[0].d); ;
     break;}
 case 185:
-#line 1056 "Gmsh.y"
+#line 1052 "Gmsh.y"
 { List_Add(View->TI, &yyvsp[0].d); ;
     break;}
 case 186:
-#line 1066 "Gmsh.y"
+#line 1062 "Gmsh.y"
 { 
       List_Add(View->TI, &yyvsp[-35].d);  List_Add(View->TI, &yyvsp[-29].d);
       List_Add(View->TI, &yyvsp[-23].d); List_Add(View->TI, &yyvsp[-17].d);
@@ -5631,22 +5627,22 @@ case 186:
     ;
     break;}
 case 187:
-#line 1079 "Gmsh.y"
+#line 1075 "Gmsh.y"
 {
       if((List_Nbr(View->TI) - ntmp) % 54) ViewErrorFlags[20]++;
       View->NbTI++;
     ;
     break;}
 case 188:
-#line 1087 "Gmsh.y"
+#line 1083 "Gmsh.y"
 { List_Add(View->SY, &yyvsp[0].d); ;
     break;}
 case 189:
-#line 1089 "Gmsh.y"
+#line 1085 "Gmsh.y"
 { List_Add(View->SY, &yyvsp[0].d); ;
     break;}
 case 190:
-#line 1098 "Gmsh.y"
+#line 1094 "Gmsh.y"
 { 
       List_Add(View->SY, &yyvsp[-29].d);  List_Add(View->SY, &yyvsp[-23].d);
       List_Add(View->SY, &yyvsp[-17].d); List_Add(View->SY, &yyvsp[-11].d);
@@ -5661,22 +5657,22 @@ case 190:
     ;
     break;}
 case 191:
-#line 1111 "Gmsh.y"
+#line 1107 "Gmsh.y"
 {
       if((List_Nbr(View->SY) - ntmp) % 5) ViewErrorFlags[21]++;
       View->NbSY++;
     ;
     break;}
 case 192:
-#line 1119 "Gmsh.y"
+#line 1115 "Gmsh.y"
 { List_Add(View->VY, &yyvsp[0].d); ;
     break;}
 case 193:
-#line 1121 "Gmsh.y"
+#line 1117 "Gmsh.y"
 { List_Add(View->VY, &yyvsp[0].d); ;
     break;}
 case 194:
-#line 1130 "Gmsh.y"
+#line 1126 "Gmsh.y"
 { 
       List_Add(View->VY, &yyvsp[-29].d);  List_Add(View->VY, &yyvsp[-23].d);
       List_Add(View->VY, &yyvsp[-17].d); List_Add(View->VY, &yyvsp[-11].d);
@@ -5691,22 +5687,22 @@ case 194:
     ;
     break;}
 case 195:
-#line 1143 "Gmsh.y"
+#line 1139 "Gmsh.y"
 {
       if((List_Nbr(View->VY) - ntmp) % 15) ViewErrorFlags[22]++;
       View->NbVY++;
     ;
     break;}
 case 196:
-#line 1151 "Gmsh.y"
+#line 1147 "Gmsh.y"
 { List_Add(View->TY, &yyvsp[0].d); ;
     break;}
 case 197:
-#line 1153 "Gmsh.y"
+#line 1149 "Gmsh.y"
 { List_Add(View->TY, &yyvsp[0].d); ;
     break;}
 case 198:
-#line 1162 "Gmsh.y"
+#line 1158 "Gmsh.y"
 { 
       List_Add(View->TY, &yyvsp[-29].d);  List_Add(View->TY, &yyvsp[-23].d);
       List_Add(View->TY, &yyvsp[-17].d); List_Add(View->TY, &yyvsp[-11].d);
@@ -5721,28 +5717,28 @@ case 198:
     ;
     break;}
 case 199:
-#line 1175 "Gmsh.y"
+#line 1171 "Gmsh.y"
 {
       if((List_Nbr(View->TY) - ntmp) % 45) ViewErrorFlags[23]++;
       View->NbTY++;
     ;
     break;}
 case 200:
-#line 1183 "Gmsh.y"
+#line 1179 "Gmsh.y"
 { 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
     ;
     break;}
 case 201:
-#line 1188 "Gmsh.y"
+#line 1184 "Gmsh.y"
 { 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
     ;
     break;}
 case 202:
-#line 1196 "Gmsh.y"
+#line 1192 "Gmsh.y"
 { 
       List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d);
       List_Add(View->T2D, &yyvsp[-1].d); 
@@ -5751,27 +5747,27 @@ case 202:
     ;
     break;}
 case 203:
-#line 1203 "Gmsh.y"
+#line 1199 "Gmsh.y"
 {
       View->NbT2++;
     ;
     break;}
 case 204:
-#line 1210 "Gmsh.y"
+#line 1206 "Gmsh.y"
 { 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
     ;
     break;}
 case 205:
-#line 1215 "Gmsh.y"
+#line 1211 "Gmsh.y"
 { 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
     ;
     break;}
 case 206:
-#line 1223 "Gmsh.y"
+#line 1219 "Gmsh.y"
 { 
       List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d);
       List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); 
@@ -5780,60 +5776,60 @@ case 206:
     ;
     break;}
 case 207:
-#line 1230 "Gmsh.y"
+#line 1226 "Gmsh.y"
 {
       View->NbT3++;
     ;
     break;}
 case 208:
-#line 1238 "Gmsh.y"
+#line 1234 "Gmsh.y"
 {
       View->adaptive = new Adaptive_Post_View(View, yyvsp[-5].l, yyvsp[-2].l);
     ;
     break;}
 case 209:
-#line 1245 "Gmsh.y"
+#line 1241 "Gmsh.y"
 { List_Add(View->Time, &yyvsp[0].d); ;
     break;}
 case 210:
-#line 1247 "Gmsh.y"
+#line 1243 "Gmsh.y"
 { List_Add(View->Time, &yyvsp[0].d); ;
     break;}
 case 211:
-#line 1252 "Gmsh.y"
+#line 1248 "Gmsh.y"
 {
     ;
     break;}
 case 212:
-#line 1259 "Gmsh.y"
+#line 1255 "Gmsh.y"
 { yyval.i = 0; ;
     break;}
 case 213:
-#line 1260 "Gmsh.y"
+#line 1256 "Gmsh.y"
 { yyval.i = 1; ;
     break;}
 case 214:
-#line 1261 "Gmsh.y"
+#line 1257 "Gmsh.y"
 { yyval.i = 2; ;
     break;}
 case 215:
-#line 1262 "Gmsh.y"
+#line 1258 "Gmsh.y"
 { yyval.i = 3; ;
     break;}
 case 216:
-#line 1263 "Gmsh.y"
+#line 1259 "Gmsh.y"
 { yyval.i = 4; ;
     break;}
 case 217:
-#line 1267 "Gmsh.y"
+#line 1263 "Gmsh.y"
 { yyval.i = 1; ;
     break;}
 case 218:
-#line 1268 "Gmsh.y"
+#line 1264 "Gmsh.y"
 { yyval.i = -1; ;
     break;}
 case 219:
-#line 1276 "Gmsh.y"
+#line 1272 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
@@ -5863,7 +5859,7 @@ case 219:
     ;
     break;}
 case 220:
-#line 1304 "Gmsh.y"
+#line 1300 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-6].c;
@@ -5901,7 +5897,7 @@ case 220:
     ;
     break;}
 case 221:
-#line 1340 "Gmsh.y"
+#line 1336 "Gmsh.y"
 {
       if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l))
 	yymsg(GERROR, "Incompatible array dimensions in affectation");
@@ -5952,7 +5948,7 @@ case 221:
     ;
     break;}
 case 222:
-#line 1389 "Gmsh.y"
+#line 1385 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
@@ -5970,7 +5966,7 @@ case 222:
     ;
     break;}
 case 223:
-#line 1405 "Gmsh.y"
+#line 1401 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -5982,7 +5978,7 @@ case 223:
     ;
     break;}
 case 224:
-#line 1415 "Gmsh.y"
+#line 1411 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
@@ -5999,7 +5995,7 @@ case 224:
     ;
     break;}
 case 225:
-#line 1433 "Gmsh.y"
+#line 1429 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -6014,7 +6010,7 @@ case 225:
     ;
     break;}
 case 226:
-#line 1446 "Gmsh.y"
+#line 1442 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -6029,7 +6025,7 @@ case 226:
     ;
     break;}
 case 227:
-#line 1462 "Gmsh.y"
+#line 1458 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -6056,7 +6052,7 @@ case 227:
     ;
     break;}
 case 228:
-#line 1487 "Gmsh.y"
+#line 1483 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -6084,7 +6080,7 @@ case 228:
     ;
     break;}
 case 229:
-#line 1513 "Gmsh.y"
+#line 1509 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -6099,7 +6095,7 @@ case 229:
     ;
     break;}
 case 230:
-#line 1526 "Gmsh.y"
+#line 1522 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -6114,7 +6110,7 @@ case 230:
     ;
     break;}
 case 231:
-#line 1542 "Gmsh.y"
+#line 1538 "Gmsh.y"
 {
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
@@ -6129,7 +6125,7 @@ case 231:
     ;
     break;}
 case 232:
-#line 1555 "Gmsh.y"
+#line 1551 "Gmsh.y"
 {
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
@@ -6144,7 +6140,7 @@ case 232:
     ;
     break;}
 case 233:
-#line 1571 "Gmsh.y"
+#line 1567 "Gmsh.y"
 {
       GmshColorTable *ct = Get_ColorTable(0);
       if(!ct)
@@ -6165,7 +6161,7 @@ case 233:
     ;
     break;}
 case 234:
-#line 1590 "Gmsh.y"
+#line 1586 "Gmsh.y"
 {
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d);
       if(!ct)
@@ -6186,7 +6182,7 @@ case 234:
     ;
     break;}
 case 235:
-#line 1612 "Gmsh.y"
+#line 1608 "Gmsh.y"
 {
       try {
 	GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].d); 
@@ -6197,7 +6193,7 @@ case 235:
     ;
     break;}
 case 236:
-#line 1621 "Gmsh.y"
+#line 1617 "Gmsh.y"
 {
       try {
 	GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].c); 
@@ -6208,7 +6204,7 @@ case 236:
     ;
     break;}
 case 237:
-#line 1639 "Gmsh.y"
+#line 1635 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPoint(num, THEM)){
@@ -6226,7 +6222,7 @@ case 237:
     ;
     break;}
 case 238:
-#line 1655 "Gmsh.y"
+#line 1651 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT, THEM)){
@@ -6244,7 +6240,7 @@ case 238:
     ;
     break;}
 case 239:
-#line 1671 "Gmsh.y"
+#line 1667 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){
 	double p;
@@ -6265,7 +6261,7 @@ case 239:
     ;
     break;}
 case 240:
-#line 1690 "Gmsh.y"
+#line 1686 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -6283,7 +6279,7 @@ case 240:
     ;
     break;}
 case 241:
-#line 1709 "Gmsh.y"
+#line 1705 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
@@ -6303,7 +6299,7 @@ case 241:
     ;
     break;}
 case 242:
-#line 1727 "Gmsh.y"
+#line 1723 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
@@ -6323,7 +6319,7 @@ case 242:
     ;
     break;}
 case 243:
-#line 1745 "Gmsh.y"
+#line 1741 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
@@ -6343,7 +6339,7 @@ case 243:
     ;
     break;}
 case 244:
-#line 1763 "Gmsh.y"
+#line 1759 "Gmsh.y"
 {
       int num = (int)yyvsp[-6].d;
       if(FindCurve(num, THEM)){
@@ -6371,7 +6367,7 @@ case 244:
     ;
     break;}
 case 245:
-#line 1789 "Gmsh.y"
+#line 1785 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
@@ -6391,7 +6387,7 @@ case 245:
     ;
     break;}
 case 246:
-#line 1807 "Gmsh.y"
+#line 1803 "Gmsh.y"
 {
       int num = (int)yyvsp[-6].d;
       if(FindCurve(num, THEM)){
@@ -6419,7 +6415,7 @@ case 246:
     ;
     break;}
 case 247:
-#line 1834 "Gmsh.y"
+#line 1830 "Gmsh.y"
 {
       int num = (int)yyvsp[-14].d;
       if(FindCurve(num, THEM)){
@@ -6439,7 +6435,7 @@ case 247:
     ;
     break;}
 case 248:
-#line 1852 "Gmsh.y"
+#line 1848 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(List_Nbr(yyvsp[-1].l) < 4){
@@ -6465,7 +6461,7 @@ case 248:
     ;
     break;}
 case 249:
-#line 1876 "Gmsh.y"
+#line 1872 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(List_Nbr(yyvsp[-1].l) < 4){
@@ -6491,7 +6487,7 @@ case 249:
     ;
     break;}
 case 250:
-#line 1900 "Gmsh.y"
+#line 1896 "Gmsh.y"
 {
       int num = (int)yyvsp[-8].d;
       if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){
@@ -6519,7 +6515,7 @@ case 250:
     ;
     break;}
 case 251:
-#line 1926 "Gmsh.y"
+#line 1922 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindEdgeLoop(num, THEM)){
@@ -6538,7 +6534,7 @@ case 251:
     ;
     break;}
 case 252:
-#line 1943 "Gmsh.y"
+#line 1939 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){
 	double p;
@@ -6558,7 +6554,7 @@ case 252:
     ;
     break;}
 case 253:
-#line 1961 "Gmsh.y"
+#line 1957 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE, THEM)){
@@ -6576,7 +6572,7 @@ case 253:
     ;
     break;}
 case 254:
-#line 1980 "Gmsh.y"
+#line 1976 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindSurface(num, THEM)){
@@ -6597,7 +6593,7 @@ case 254:
     ;
     break;}
 case 255:
-#line 1999 "Gmsh.y"
+#line 1995 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d, type = 0;
       if(FindSurface(num, THEM)){
@@ -6638,7 +6634,7 @@ case 255:
     ;
     break;}
 case 256:
-#line 2038 "Gmsh.y"
+#line 2034 "Gmsh.y"
 {
       int num = (int)yyvsp[-8].d;
       Surface *support = FindSurface((int)yyvsp[-4].d, THEM);
@@ -6665,7 +6661,7 @@ case 256:
     ;
     break;}
 case 257:
-#line 2064 "Gmsh.y"
+#line 2060 "Gmsh.y"
 {
       int num = (int)yyvsp[-10].d, type = 0;
       Surface *s = FindSurface(num, THEM);
@@ -6686,7 +6682,7 @@ case 257:
     ;
     break;}
 case 258:
-#line 2086 "Gmsh.y"
+#line 2082 "Gmsh.y"
 {
       int num = (int)yyvsp[-10].d, type = 0;
       Surface *s = FindSurface(num, THEM);
@@ -6703,7 +6699,7 @@ case 258:
     ;
     break;}
 case 259:
-#line 2103 "Gmsh.y"
+#line 2099 "Gmsh.y"
 {
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
@@ -6722,7 +6718,7 @@ case 259:
     ;
     break;}
 case 260:
-#line 2122 "Gmsh.y"
+#line 2118 "Gmsh.y"
 {
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
@@ -6741,7 +6737,7 @@ case 260:
     ;
     break;}
 case 261:
-#line 2139 "Gmsh.y"
+#line 2135 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindSurfaceLoop(num, THEM)){
@@ -6759,7 +6755,7 @@ case 261:
     ;
     break;}
 case 262:
-#line 2155 "Gmsh.y"
+#line 2151 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE, THEM)){
@@ -6777,7 +6773,7 @@ case 262:
     ;
     break;}
 case 263:
-#line 2174 "Gmsh.y"
+#line 2170 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
@@ -6796,7 +6792,7 @@ case 263:
     ;
     break;}
 case 264:
-#line 2191 "Gmsh.y"
+#line 2187 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
@@ -6815,7 +6811,7 @@ case 264:
     ;
     break;}
 case 265:
-#line 2208 "Gmsh.y"
+#line 2204 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME, THEM)){
@@ -6833,59 +6829,59 @@ case 265:
     ;
     break;}
 case 266:
-#line 2229 "Gmsh.y"
+#line 2225 "Gmsh.y"
 {
       TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 267:
-#line 2234 "Gmsh.y"
+#line 2230 "Gmsh.y"
 {
       RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 268:
-#line 2239 "Gmsh.y"
+#line 2235 "Gmsh.y"
 {
       SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 269:
-#line 2244 "Gmsh.y"
+#line 2240 "Gmsh.y"
 {
       DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 270:
-#line 2251 "Gmsh.y"
+#line 2247 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
 case 271:
-#line 2252 "Gmsh.y"
+#line 2248 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
 case 272:
-#line 2253 "Gmsh.y"
+#line 2249 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
 case 273:
-#line 2258 "Gmsh.y"
+#line 2254 "Gmsh.y"
 {
       yyval.l = List_Create(3, 3, sizeof(Shape));
     ;
     break;}
 case 274:
-#line 2262 "Gmsh.y"
+#line 2258 "Gmsh.y"
 {
       List_Add(yyval.l, &yyvsp[0].s);
     ;
     break;}
 case 275:
-#line 2266 "Gmsh.y"
+#line 2262 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -6903,7 +6899,7 @@ case 275:
     ;
     break;}
 case 276:
-#line 2282 "Gmsh.y"
+#line 2278 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -6921,7 +6917,7 @@ case 276:
     ;
     break;}
 case 277:
-#line 2298 "Gmsh.y"
+#line 2294 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -6939,7 +6935,7 @@ case 277:
     ;
     break;}
 case 278:
-#line 2314 "Gmsh.y"
+#line 2310 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -6957,7 +6953,7 @@ case 278:
     ;
     break;}
 case 279:
-#line 2335 "Gmsh.y"
+#line 2331 "Gmsh.y"
 {
       yyval.l = List_Create(3, 3, sizeof(Shape));
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
@@ -6972,14 +6968,14 @@ case 279:
     ;
     break;}
 case 280:
-#line 2348 "Gmsh.y"
+#line 2344 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")) DuplicateView((int)yyvsp[-2].d, 0);
       yyval.l = NULL;
     ;
     break;}
 case 281:
-#line 2359 "Gmsh.y"
+#line 2355 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -6990,14 +6986,10 @@ case 281:
     ;
     break;}
 case 282:
-#line 2368 "Gmsh.y"
+#line 2364 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")){
 	RemoveViewByIndex((int)yyvsp[-2].d);
-#if defined(HAVE_FLTK)
-	if(!CTX.batch)
-	  UpdateViewsInGUI();
-#endif
       }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s'", yyvsp[-4].c);
@@ -7005,7 +6997,7 @@ case 282:
     ;
     break;}
 case 283:
-#line 2381 "Gmsh.y"
+#line 2373 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){
 	Init_Mesh(THEM);
@@ -7016,7 +7008,7 @@ case 283:
     ;
     break;}
 case 284:
-#line 2390 "Gmsh.y"
+#line 2382 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){
 	for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){
@@ -7024,10 +7016,6 @@ case 284:
 	  if(v->empty())
 	    RemoveViewByIndex(i);
 	}
-#if defined(HAVE_FLTK)
-	if(!CTX.batch)
-	  UpdateViewsInGUI();
-#endif
       }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s %s'", yyvsp[-2].c, yyvsp[-1].c);
@@ -7035,7 +7023,7 @@ case 284:
     ;
     break;}
 case 285:
-#line 2412 "Gmsh.y"
+#line 2400 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -7046,7 +7034,7 @@ case 285:
     ;
     break;}
 case 286:
-#line 2426 "Gmsh.y"
+#line 2414 "Gmsh.y"
 {
       int m = (CTX.visibility_mode == 2) ? VIS_MESH : 
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
@@ -7055,14 +7043,14 @@ case 286:
     ;
     break;}
 case 287:
-#line 2433 "Gmsh.y"
+#line 2421 "Gmsh.y"
 {
       for(int i = 2; i < 6; i++)
 	SetVisibilityByNumber(yyvsp[-1].c, i, 0);
     ;
     break;}
 case 288:
-#line 2438 "Gmsh.y"
+#line 2426 "Gmsh.y"
 {
       int m = (CTX.visibility_mode == 2) ? VIS_MESH :
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
@@ -7075,7 +7063,7 @@ case 288:
     ;
     break;}
 case 289:
-#line 2449 "Gmsh.y"
+#line 2437 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -7086,7 +7074,7 @@ case 289:
     ;
     break;}
 case 290:
-#line 2463 "Gmsh.y"
+#line 2451 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Include")){
 	char tmpstring[1024];
@@ -7131,7 +7119,7 @@ case 290:
     ;
     break;}
 case 291:
-#line 2506 "Gmsh.y"
+#line 2494 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){
 	Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d);
@@ -7147,7 +7135,7 @@ case 291:
     ;
     break;}
 case 292:
-#line 2520 "Gmsh.y"
+#line 2508 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Sleep")){
 	long sleep_time = GetTime();
@@ -7164,7 +7152,7 @@ case 292:
     ;
     break;}
 case 293:
-#line 2535 "Gmsh.y"
+#line 2523 "Gmsh.y"
 {
       try {
 	GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0);
@@ -7175,7 +7163,7 @@ case 293:
    ;
     break;}
 case 294:
-#line 2544 "Gmsh.y"
+#line 2532 "Gmsh.y"
 {
       // for backward compatibility
       if(!strcmp(yyvsp[-1].c, "Views"))
@@ -7187,25 +7175,25 @@ case 294:
     ;
     break;}
 case 295:
-#line 2554 "Gmsh.y"
+#line 2542 "Gmsh.y"
 {
       exit(0);
     ;
     break;}
 case 296:
-#line 2558 "Gmsh.y"
+#line 2546 "Gmsh.y"
 {
       SetBoundingBox();
     ;
     break;}
 case 297:
-#line 2562 "Gmsh.y"
+#line 2550 "Gmsh.y"
 {
       SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 298:
-#line 2566 "Gmsh.y"
+#line 2554 "Gmsh.y"
 {
 #if defined(HAVE_FLTK)
       if(!CTX.batch) // we're in interactive mode
@@ -7214,7 +7202,7 @@ case 298:
     ;
     break;}
 case 299:
-#line 2579 "Gmsh.y"
+#line 2567 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -7231,7 +7219,7 @@ case 299:
     ;
     break;}
 case 300:
-#line 2594 "Gmsh.y"
+#line 2582 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -7249,7 +7237,7 @@ case 300:
     ;
     break;}
 case 301:
-#line 2610 "Gmsh.y"
+#line 2598 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -7277,7 +7265,7 @@ case 301:
     ;
     break;}
 case 302:
-#line 2636 "Gmsh.y"
+#line 2624 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -7306,7 +7294,7 @@ case 302:
     ;
     break;}
 case 303:
-#line 2663 "Gmsh.y"
+#line 2651 "Gmsh.y"
 {
       if(ImbricatedLoop <= 0){
 	yymsg(GERROR, "Invalid For/EndFor loop");
@@ -7340,7 +7328,7 @@ case 303:
     ;
     break;}
 case 304:
-#line 2695 "Gmsh.y"
+#line 2683 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno))
 	yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c);
@@ -7348,32 +7336,32 @@ case 304:
     ;
     break;}
 case 305:
-#line 2701 "Gmsh.y"
+#line 2689 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))
 	yymsg(GERROR, "Error while exiting function");
     ;
     break;}
 case 306:
-#line 2706 "Gmsh.y"
+#line 2694 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno))
 	yymsg(GERROR, "Unknown function %s", yyvsp[-1].c);
     ;
     break;}
 case 307:
-#line 2711 "Gmsh.y"
+#line 2699 "Gmsh.y"
 {
       if(!yyvsp[-1].d) skip_until("If", "EndIf");
     ;
     break;}
 case 308:
-#line 2715 "Gmsh.y"
+#line 2703 "Gmsh.y"
 {
     ;
     break;}
 case 309:
-#line 2726 "Gmsh.y"
+#line 2714 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7391,7 +7379,7 @@ case 309:
     ;
     break;}
 case 310:
-#line 2742 "Gmsh.y"
+#line 2730 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7409,7 +7397,7 @@ case 310:
     ;
     break;}
 case 311:
-#line 2758 "Gmsh.y"
+#line 2746 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7427,14 +7415,14 @@ case 311:
     ;
     break;}
 case 312:
-#line 2774 "Gmsh.y"
+#line 2762 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 313:
-#line 2779 "Gmsh.y"
+#line 2767 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7452,14 +7440,14 @@ case 313:
     ;
     break;}
 case 314:
-#line 2795 "Gmsh.y"
+#line 2783 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 315:
-#line 2800 "Gmsh.y"
+#line 2788 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7477,14 +7465,14 @@ case 315:
     ;
     break;}
 case 316:
-#line 2816 "Gmsh.y"
+#line 2804 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 317:
-#line 2821 "Gmsh.y"
+#line 2809 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7502,7 +7490,7 @@ case 317:
     ;
     break;}
 case 318:
-#line 2839 "Gmsh.y"
+#line 2827 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7527,7 +7515,7 @@ case 318:
     ;
     break;}
 case 319:
-#line 2862 "Gmsh.y"
+#line 2850 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7552,7 +7540,7 @@ case 319:
     ;
     break;}
 case 320:
-#line 2885 "Gmsh.y"
+#line 2873 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7577,14 +7565,14 @@ case 320:
     ;
     break;}
 case 321:
-#line 2908 "Gmsh.y"
+#line 2896 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 322:
-#line 2913 "Gmsh.y"
+#line 2901 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7609,14 +7597,14 @@ case 322:
     ;
     break;}
 case 323:
-#line 2936 "Gmsh.y"
+#line 2924 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 324:
-#line 2941 "Gmsh.y"
+#line 2929 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7641,14 +7629,14 @@ case 324:
     ;
     break;}
 case 325:
-#line 2964 "Gmsh.y"
+#line 2952 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 326:
-#line 2969 "Gmsh.y"
+#line 2957 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7673,7 +7661,7 @@ case 326:
     ;
     break;}
 case 327:
-#line 2995 "Gmsh.y"
+#line 2983 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7698,7 +7686,7 @@ case 327:
     ;
     break;}
 case 328:
-#line 3018 "Gmsh.y"
+#line 3006 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7723,7 +7711,7 @@ case 328:
     ;
     break;}
 case 329:
-#line 3041 "Gmsh.y"
+#line 3029 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7748,14 +7736,14 @@ case 329:
     ;
     break;}
 case 330:
-#line 3064 "Gmsh.y"
+#line 3052 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 331:
-#line 3069 "Gmsh.y"
+#line 3057 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7780,14 +7768,14 @@ case 331:
     ;
     break;}
 case 332:
-#line 3092 "Gmsh.y"
+#line 3080 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 333:
-#line 3098 "Gmsh.y"
+#line 3086 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7812,14 +7800,14 @@ case 333:
     ;
     break;}
 case 334:
-#line 3121 "Gmsh.y"
+#line 3109 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
 case 335:
-#line 3127 "Gmsh.y"
+#line 3115 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7844,17 +7832,17 @@ case 335:
     ;
     break;}
 case 336:
-#line 3153 "Gmsh.y"
+#line 3141 "Gmsh.y"
 {
     ;
     break;}
 case 337:
-#line 3156 "Gmsh.y"
+#line 3144 "Gmsh.y"
 {
     ;
     break;}
 case 338:
-#line 3162 "Gmsh.y"
+#line 3150 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -7882,7 +7870,7 @@ case 338:
     ;
     break;}
 case 339:
-#line 3188 "Gmsh.y"
+#line 3176 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -7908,13 +7896,13 @@ case 339:
     ;
     break;}
 case 340:
-#line 3212 "Gmsh.y"
+#line 3200 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
 case 341:
-#line 3221 "Gmsh.y"
+#line 3209 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -7934,7 +7922,7 @@ case 341:
     ;
     break;}
 case 342:
-#line 3239 "Gmsh.y"
+#line 3227 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -7954,7 +7942,7 @@ case 342:
     ;
     break;}
 case 343:
-#line 3257 "Gmsh.y"
+#line 3245 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -7974,7 +7962,7 @@ case 343:
     ;
     break;}
 case 344:
-#line 3275 "Gmsh.y"
+#line 3263 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -8003,7 +7991,7 @@ case 344:
     ;
     break;}
 case 345:
-#line 3302 "Gmsh.y"
+#line 3290 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -8031,7 +8019,7 @@ case 345:
     ;
     break;}
 case 346:
-#line 3328 "Gmsh.y"
+#line 3316 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d, THEM);
       if(!v)
@@ -8059,7 +8047,7 @@ case 346:
     ;
     break;}
 case 347:
-#line 3354 "Gmsh.y"
+#line 3342 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -8075,7 +8063,7 @@ case 347:
     ;
     break;}
 case 348:
-#line 3368 "Gmsh.y"
+#line 3356 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	double d;
@@ -8090,71 +8078,71 @@ case 348:
     ;
     break;}
 case 349:
-#line 3387 "Gmsh.y"
+#line 3375 "Gmsh.y"
 { 
       ReplaceAllDuplicates(THEM);
     ;
     break;}
 case 350:
-#line 3391 "Gmsh.y"
+#line 3379 "Gmsh.y"
 { 
       IntersectAllSegmentsTogether();
     ;
     break;}
 case 351:
-#line 3400 "Gmsh.y"
+#line 3388 "Gmsh.y"
 {yyval.i = 1;;
     break;}
 case 352:
-#line 3401 "Gmsh.y"
+#line 3389 "Gmsh.y"
 {yyval.i = 0;;
     break;}
 case 353:
-#line 3402 "Gmsh.y"
+#line 3390 "Gmsh.y"
 {yyval.i = -1;;
     break;}
 case 354:
-#line 3403 "Gmsh.y"
+#line 3391 "Gmsh.y"
 {yyval.i = -1;;
     break;}
 case 355:
-#line 3404 "Gmsh.y"
+#line 3392 "Gmsh.y"
 {yyval.i = -1;;
     break;}
 case 356:
-#line 3408 "Gmsh.y"
+#line 3396 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
 case 357:
-#line 3409 "Gmsh.y"
+#line 3397 "Gmsh.y"
 { yyval.d = yyvsp[-1].d;           ;
     break;}
 case 358:
-#line 3410 "Gmsh.y"
+#line 3398 "Gmsh.y"
 { yyval.d = -yyvsp[0].d;          ;
     break;}
 case 359:
-#line 3411 "Gmsh.y"
+#line 3399 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
 case 360:
-#line 3412 "Gmsh.y"
+#line 3400 "Gmsh.y"
 { yyval.d = !yyvsp[0].d;          ;
     break;}
 case 361:
-#line 3413 "Gmsh.y"
+#line 3401 "Gmsh.y"
 { yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;
     break;}
 case 362:
-#line 3414 "Gmsh.y"
+#line 3402 "Gmsh.y"
 { yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;
     break;}
 case 363:
-#line 3415 "Gmsh.y"
+#line 3403 "Gmsh.y"
 { yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;
     break;}
 case 364:
-#line 3417 "Gmsh.y"
+#line 3405 "Gmsh.y"
 { 
       if(!yyvsp[0].d)
 	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
@@ -8163,235 +8151,235 @@ case 364:
     ;
     break;}
 case 365:
-#line 3423 "Gmsh.y"
+#line 3411 "Gmsh.y"
 { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;
     break;}
 case 366:
-#line 3424 "Gmsh.y"
+#line 3412 "Gmsh.y"
 { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;
     break;}
 case 367:
-#line 3425 "Gmsh.y"
+#line 3413 "Gmsh.y"
 { yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;
     break;}
 case 368:
-#line 3426 "Gmsh.y"
+#line 3414 "Gmsh.y"
 { yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;
     break;}
 case 369:
-#line 3427 "Gmsh.y"
+#line 3415 "Gmsh.y"
 { yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;
     break;}
 case 370:
-#line 3428 "Gmsh.y"
+#line 3416 "Gmsh.y"
 { yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;
     break;}
 case 371:
-#line 3429 "Gmsh.y"
+#line 3417 "Gmsh.y"
 { yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;
     break;}
 case 372:
-#line 3430 "Gmsh.y"
+#line 3418 "Gmsh.y"
 { yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;
     break;}
 case 373:
-#line 3431 "Gmsh.y"
+#line 3419 "Gmsh.y"
 { yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;
     break;}
 case 374:
-#line 3432 "Gmsh.y"
+#line 3420 "Gmsh.y"
 { yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;
     break;}
 case 375:
-#line 3433 "Gmsh.y"
+#line 3421 "Gmsh.y"
 { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;
     break;}
 case 376:
-#line 3434 "Gmsh.y"
+#line 3422 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
 case 377:
-#line 3435 "Gmsh.y"
+#line 3423 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
 case 378:
-#line 3436 "Gmsh.y"
+#line 3424 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
 case 379:
-#line 3437 "Gmsh.y"
+#line 3425 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
 case 380:
-#line 3438 "Gmsh.y"
+#line 3426 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
 case 381:
-#line 3439 "Gmsh.y"
+#line 3427 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
 case 382:
-#line 3440 "Gmsh.y"
+#line 3428 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
 case 383:
-#line 3441 "Gmsh.y"
+#line 3429 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
 case 384:
-#line 3442 "Gmsh.y"
+#line 3430 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
 case 385:
-#line 3443 "Gmsh.y"
+#line 3431 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
 case 386:
-#line 3444 "Gmsh.y"
+#line 3432 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
 case 387:
-#line 3445 "Gmsh.y"
+#line 3433 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
 case 388:
-#line 3446 "Gmsh.y"
+#line 3434 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
 case 389:
-#line 3447 "Gmsh.y"
+#line 3435 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
 case 390:
-#line 3448 "Gmsh.y"
+#line 3436 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
 case 391:
-#line 3449 "Gmsh.y"
+#line 3437 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
 case 392:
-#line 3450 "Gmsh.y"
+#line 3438 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
 case 393:
-#line 3451 "Gmsh.y"
+#line 3439 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 394:
-#line 3452 "Gmsh.y"
+#line 3440 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 395:
-#line 3453 "Gmsh.y"
+#line 3441 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
 case 396:
-#line 3454 "Gmsh.y"
+#line 3442 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
 case 397:
-#line 3456 "Gmsh.y"
+#line 3444 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
 case 398:
-#line 3457 "Gmsh.y"
+#line 3445 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
 case 399:
-#line 3458 "Gmsh.y"
+#line 3446 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
 case 400:
-#line 3459 "Gmsh.y"
+#line 3447 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
 case 401:
-#line 3460 "Gmsh.y"
+#line 3448 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
 case 402:
-#line 3461 "Gmsh.y"
+#line 3449 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
 case 403:
-#line 3462 "Gmsh.y"
+#line 3450 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
 case 404:
-#line 3463 "Gmsh.y"
+#line 3451 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
 case 405:
-#line 3464 "Gmsh.y"
+#line 3452 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
 case 406:
-#line 3465 "Gmsh.y"
+#line 3453 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
 case 407:
-#line 3466 "Gmsh.y"
+#line 3454 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
 case 408:
-#line 3467 "Gmsh.y"
+#line 3455 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
 case 409:
-#line 3468 "Gmsh.y"
+#line 3456 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
 case 410:
-#line 3469 "Gmsh.y"
+#line 3457 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
 case 411:
-#line 3470 "Gmsh.y"
+#line 3458 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
 case 412:
-#line 3471 "Gmsh.y"
+#line 3459 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
 case 413:
-#line 3472 "Gmsh.y"
+#line 3460 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
 case 414:
-#line 3473 "Gmsh.y"
+#line 3461 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 415:
-#line 3474 "Gmsh.y"
+#line 3462 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
 case 416:
-#line 3475 "Gmsh.y"
+#line 3463 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
 case 417:
-#line 3476 "Gmsh.y"
+#line 3464 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
 case 418:
-#line 3485 "Gmsh.y"
+#line 3473 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
 case 419:
-#line 3486 "Gmsh.y"
+#line 3474 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
 case 420:
-#line 3487 "Gmsh.y"
+#line 3475 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->rank(); ;
     break;}
 case 421:
-#line 3488 "Gmsh.y"
+#line 3476 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->size(); ;
     break;}
 case 422:
-#line 3493 "Gmsh.y"
+#line 3481 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[0].c;
@@ -8405,7 +8393,7 @@ case 422:
     ;
     break;}
 case 423:
-#line 3505 "Gmsh.y"
+#line 3493 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
@@ -8426,7 +8414,7 @@ case 423:
     ;
     break;}
 case 424:
-#line 3524 "Gmsh.y"
+#line 3512 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -8441,7 +8429,7 @@ case 424:
     ;
     break;}
 case 425:
-#line 3537 "Gmsh.y"
+#line 3525 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-1].c;
@@ -8455,7 +8443,7 @@ case 425:
     ;
     break;}
 case 426:
-#line 3549 "Gmsh.y"
+#line 3537 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-4].c;
@@ -8476,7 +8464,7 @@ case 426:
     ;
     break;}
 case 427:
-#line 3571 "Gmsh.y"
+#line 3559 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8495,7 +8483,7 @@ case 427:
     ;
     break;}
 case 428:
-#line 3588 "Gmsh.y"
+#line 3576 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8514,7 +8502,7 @@ case 428:
     ;
     break;}
 case 429:
-#line 3605 "Gmsh.y"
+#line 3593 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8533,7 +8521,7 @@ case 429:
     ;
     break;}
 case 430:
-#line 3622 "Gmsh.y"
+#line 3610 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8552,136 +8540,136 @@ case 430:
     ;
     break;}
 case 431:
-#line 3639 "Gmsh.y"
+#line 3627 "Gmsh.y"
 { 
       yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d);
     ;
     break;}
 case 432:
-#line 3646 "Gmsh.y"
+#line 3634 "Gmsh.y"
 {
       memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
     ;
     break;}
 case 433:
-#line 3650 "Gmsh.y"
+#line 3638 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
     ;
     break;}
 case 434:
-#line 3654 "Gmsh.y"
+#line 3642 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
     ;
     break;}
 case 435:
-#line 3658 "Gmsh.y"
+#line 3646 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
     ;
     break;}
 case 436:
-#line 3662 "Gmsh.y"
+#line 3650 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i];
     ;
     break;}
 case 437:
-#line 3669 "Gmsh.y"
+#line 3657 "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 438:
-#line 3673 "Gmsh.y"
+#line 3661 "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 439:
-#line 3677 "Gmsh.y"
+#line 3665 "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 440:
-#line 3681 "Gmsh.y"
+#line 3669 "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 441:
-#line 3688 "Gmsh.y"
+#line 3676 "Gmsh.y"
 {
     ;
     break;}
 case 442:
-#line 3691 "Gmsh.y"
+#line 3679 "Gmsh.y"
 {
     ;
     break;}
 case 443:
-#line 3697 "Gmsh.y"
+#line 3685 "Gmsh.y"
 {
     ;
     break;}
 case 444:
-#line 3700 "Gmsh.y"
+#line 3688 "Gmsh.y"
 {
     ;
     break;}
 case 445:
-#line 3706 "Gmsh.y"
+#line 3694 "Gmsh.y"
 {
     ;
     break;}
 case 446:
-#line 3709 "Gmsh.y"
+#line 3697 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 447:
-#line 3713 "Gmsh.y"
+#line 3701 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 448:
-#line 3720 "Gmsh.y"
+#line 3708 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(List_T*));
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
 case 449:
-#line 3725 "Gmsh.y"
+#line 3713 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
 case 450:
-#line 3733 "Gmsh.y"
+#line 3721 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 451:
-#line 3738 "Gmsh.y"
+#line 3726 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
 case 452:
-#line 3742 "Gmsh.y"
+#line 3730 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 453:
-#line 3746 "Gmsh.y"
+#line 3734 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
       double *pd;
@@ -8692,7 +8680,7 @@ case 453:
     ;
     break;}
 case 454:
-#line 3758 "Gmsh.y"
+#line 3746 "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.)) 
@@ -8700,7 +8688,7 @@ case 454:
     ;
     break;}
 case 455:
-#line 3764 "Gmsh.y"
+#line 3752 "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)){
@@ -8713,7 +8701,7 @@ case 455:
    ;
     break;}
 case 456:
-#line 3775 "Gmsh.y"
+#line 3763 "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
@@ -8735,7 +8723,7 @@ case 456:
     ;
     break;}
 case 457:
-#line 3795 "Gmsh.y"
+#line 3783 "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++){
@@ -8747,7 +8735,7 @@ case 457:
     ;
     break;}
 case 458:
-#line 3805 "Gmsh.y"
+#line 3793 "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++){
@@ -8759,7 +8747,7 @@ case 458:
     ;
     break;}
 case 459:
-#line 3815 "Gmsh.y"
+#line 3803 "Gmsh.y"
 {
       // FIXME: The syntax for this is ugly: we get double semi-colons
       // at the end of the line
@@ -8773,7 +8761,7 @@ case 459:
     ;
     break;}
 case 460:
-#line 3827 "Gmsh.y"
+#line 3815 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8791,7 +8779,7 @@ case 460:
     ;
     break;}
 case 461:
-#line 3843 "Gmsh.y"
+#line 3831 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8811,7 +8799,7 @@ case 461:
     ;
     break;}
 case 462:
-#line 3861 "Gmsh.y"
+#line 3849 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8836,7 +8824,7 @@ case 462:
     ;
     break;}
 case 463:
-#line 3884 "Gmsh.y"
+#line 3872 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8863,26 +8851,26 @@ case 463:
     ;
     break;}
 case 464:
-#line 3912 "Gmsh.y"
+#line 3900 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 465:
-#line 3917 "Gmsh.y"
+#line 3905 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
 case 466:
-#line 3921 "Gmsh.y"
+#line 3909 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
 case 467:
-#line 3925 "Gmsh.y"
+#line 3913 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	double d;
@@ -8893,19 +8881,19 @@ case 467:
     ;
     break;}
 case 468:
-#line 3938 "Gmsh.y"
+#line 3926 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
     ;
     break;}
 case 469:
-#line 3942 "Gmsh.y"
+#line 3930 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
     ;
     break;}
 case 470:
-#line 3954 "Gmsh.y"
+#line 3942 "Gmsh.y"
 {
       int flag;
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
@@ -8913,7 +8901,7 @@ case 470:
     ;
     break;}
 case 471:
-#line 3960 "Gmsh.y"
+#line 3948 "Gmsh.y"
 {
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
@@ -8933,13 +8921,13 @@ case 471:
     ;
     break;}
 case 472:
-#line 3981 "Gmsh.y"
+#line 3969 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
 case 473:
-#line 3985 "Gmsh.y"
+#line 3973 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
@@ -8952,26 +8940,26 @@ case 473:
     ;
     break;}
 case 474:
-#line 3999 "Gmsh.y"
+#line 3987 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
 case 475:
-#line 4004 "Gmsh.y"
+#line 3992 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
 case 476:
-#line 4011 "Gmsh.y"
+#line 3999 "Gmsh.y"
 {
       yyval.c = yyvsp[0].c;
     ;
     break;}
 case 477:
-#line 4015 "Gmsh.y"
+#line 4003 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char));
       strcpy(yyval.c, yyvsp[-3].c);  
@@ -8981,7 +8969,7 @@ case 477:
     ;
     break;}
 case 478:
-#line 4023 "Gmsh.y"
+#line 4011 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
@@ -8997,13 +8985,13 @@ case 478:
     ;
     break;}
 case 479:
-#line 4037 "Gmsh.y"
+#line 4025 "Gmsh.y"
 {
       yyval.c = yyvsp[-1].c;
     ;
     break;}
 case 480:
-#line 4041 "Gmsh.y"
+#line 4029 "Gmsh.y"
 {
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring);
@@ -9024,7 +9012,7 @@ case 480:
     ;
     break;}
 case 481:
-#line 4060 "Gmsh.y"
+#line 4048 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -9042,7 +9030,7 @@ case 481:
     ;
     break;}
 case 482:
-#line 4076 "Gmsh.y"
+#line 4064 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -9281,7 +9269,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 4093 "Gmsh.y"
+#line 4081 "Gmsh.y"
 
 
 void DeleteSymbol(void *a, void *b){
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 6582b8e417e02573b4fe426fe1bf25da218b902b..876ab7df220fd6593136288f6c416eb796eeb48d 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.192 2004-12-30 01:36:15 geuzaine Exp $
+// $Id: Gmsh.y,v 1.193 2004-12-30 01:48:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -67,10 +67,6 @@ static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS];
 static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3];
 static char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS];
 
-#if defined(HAVE_FLTK)
-void UpdateViewsInGUI();
-#endif
-
 void yyerror(char *s);
 void yymsg(int type, char *fmt, ...);
 void skip_until(char *skip, char *until);
@@ -2368,10 +2364,6 @@ Delete :
     {
       if(!strcmp($2, "View")){
 	RemoveViewByIndex((int)$4);
-#if defined(HAVE_FLTK)
-	if(!CTX.batch)
-	  UpdateViewsInGUI();
-#endif
       }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s'", $2);
@@ -2394,10 +2386,6 @@ Delete :
 	  if(v->empty())
 	    RemoveViewByIndex(i);
 	}
-#if defined(HAVE_FLTK)
-	if(!CTX.batch)
-	  UpdateViewsInGUI();
-#endif
       }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s %s'", $2, $3);
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index de5a4b67347dd761b988989b6e0753aac8412ade..b60093d154baa3ca18a70e86a429ff78abecae0e 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.219 2004-12-30 01:36:15 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.220 2004-12-30 01:48:54 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1033,7 +1033,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.219 2004-12-30 01:36:15 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.220 2004-12-30 01:48:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index e692c0c285aed6c486520cb08e3e850549f73953..61e87b2a4395473efdb1a6836a3ad36dc8b4f098 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.67 2004-12-30 00:30:04 geuzaine Exp $
+// $Id: OpenFile.cpp,v 1.68 2004-12-30 01:48:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -173,7 +173,7 @@ int ParseFile(char *f, int silent, int close, int warn_if_missing)
   yyerrorstate = yyerrorstate_old;
   yylineno = yylineno_old;
 
-  if(List_Nbr(CTX.post.list) > numviews_old){
+  if(List_Nbr(CTX.post.list) != numviews_old){
 #if defined(HAVE_FLTK)
     UpdateViewsInGUI();
 #endif