diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index 3b6c23a5c52efe6f5e43e723c85dad11f587d1c5..443459bdd0719841a9431e6c66ddc8dca49348d8 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,4 +1,4 @@ -// $Id: CommandLine.cpp,v 1.22 2003-10-29 19:51:42 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.23 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -151,8 +151,8 @@ void Get_Options(int argc, char *argv[], int *nbfiles) // Parse session and option files - ParseFile(CTX.sessionrc_filename, 1); - ParseFile(CTX.optionsrc_filename, 1); + ParseFile(CTX.sessionrc_filename, 1, 1); + ParseFile(CTX.optionsrc_filename, 1, 1); // Get command line options @@ -231,7 +231,7 @@ void Get_Options(int argc, char *argv[], int *nbfiles) else if(!strcmp(argv[i] + 1, "option")) { i++; if(argv[i] != NULL) - ParseFile(argv[i++], 1); + ParseFile(argv[i++], 1, 1); else { fprintf(stderr, ERROR_STR "Missing file name\n"); exit(1); @@ -263,7 +263,7 @@ void Get_Options(int argc, char *argv[], int *nbfiles) i++; CTX.terminal = 1; if(argv[i] && argv[i + 1]) { - ParseFile(argv[i], 0); + ParseFile(argv[i], 0, 1); if(List_Nbr(CTX.post.list)) WriteView(1, (Post_View *) List_Pointer(CTX.post.list, 0), argv[i + 1]); diff --git a/Common/Options.cpp b/Common/Options.cpp index 8a28455e1edef522081183ce8278101bc35dd8b4..466dace1b13dcbde4417f2e69fffb0673da2b319 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.118 2003-11-18 20:06:02 geuzaine Exp $ +// $Id: Options.cpp,v 1.119 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -194,6 +194,7 @@ void Print_Options(int num, int level, char *filename) Msg(GERROR, "Unable to open file '%s'", filename); return; } + Msg(INFO, "Writing option file '%s'", filename); } else file = NULL; @@ -293,8 +294,8 @@ void Print_Options(int num, int level, char *filename) if(filename) { if((level & GMSH_OPTIONSRC) || (level & GMSH_FULLRC)) { - Msg(INFO, "Options output complete '%s'", filename); - Msg(STATUS2, "Wrote '%s'", filename); + Msg(INFO, "Wrote option file '%s'", filename); + Msg(STATUS2N, "Wrote '%s'", filename); } fclose(file); } diff --git a/Common/Views.cpp b/Common/Views.cpp index ca2353c798a52bf74e555d2173806f365ee678ee..50f8ca75ac7a09e1a82267ad9814fd3128bdf7c7 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.103 2003-11-23 03:23:52 geuzaine Exp $ +// $Id: Views.cpp,v 1.104 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -678,13 +678,15 @@ Post_View *Create2DGraph(char *xname, char *yname, // INput/output -void ReadView(FILE * file, char *filename) +void ReadView(FILE *file, char *filename) { char str[256], name[256]; int i, nb, format, size, testone, swap, t2l, t3l; double version; Post_View *v; + Msg(INFO, "Reading post-processing file '%s'", filename); + while(1) { do { @@ -895,6 +897,8 @@ void ReadView(FILE * file, char *filename) } /* while 1 ... */ + Msg(INFO, "Read post-processing file '%s'", filename); + Msg(STATUS2N, "Read '%s'", filename); } // FIXME: add an integer per simplex (region num) @@ -913,6 +917,7 @@ void WriteView(int Flag_BIN, Post_View * v, char *filename) Msg(GERROR, "Unable to open file '%s'", filename); return; } + Msg(INFO, "Writing post-processing file '%s'", filename); } else file = stdout; @@ -979,9 +984,9 @@ void WriteView(int Flag_BIN, Post_View * v, char *filename) fprintf(file, "$EndView\n"); if(filename) { - Msg(INFO, "View output complete '%s'", filename); - Msg(STATUS2, "Wrote '%s'", filename); fclose(file); + Msg(INFO, "Wrote post-processing file '%s'", filename); + Msg(STATUS2N, "Wrote '%s'", filename); } } diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 88fccfd4528144592f9461efd8e8fbf5060f869b..8c84ae1f9713d48bc1c0dfe679e94fedc77716df 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.253 2003-11-22 01:59:02 geuzaine Exp $ +// $Id: GUI.cpp,v 1.254 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -2728,6 +2728,8 @@ void GUI::save_message(char *filename) Msg(GERROR, "Unable to open file '%s'", filename); return; } + + Msg(INFO, "Writing log file '%s'", filename); for(int i = 1; i <= msg_browser->size(); i++) { const char *c = msg_browser->text(i); if(c[0] == '@') @@ -2736,8 +2738,8 @@ void GUI::save_message(char *filename) fprintf(fp, "%s\n", c); } - Msg(INFO, "Log creation complete '%s'", filename); - Msg(STATUS2, "Wrote '%s'", filename); + Msg(INFO, "Wrote log file '%s'", filename); + Msg(STATUS2N, "Wrote '%s'", filename); fclose(fp); } diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp index 2c097bd72e5743ccc0448e72cef9dc4578fea543..eb5031384cceb499751d886bbd1b25fccb959416 100644 --- a/Fltk/Main.cpp +++ b/Fltk/Main.cpp @@ -1,4 +1,4 @@ -// $Id: Main.cpp,v 1.51 2003-11-22 01:59:02 geuzaine Exp $ +// $Id: Main.cpp,v 1.52 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -40,8 +40,8 @@ #include "CommandLine.h" #include "Numeric.h" -char yyname[256]; -int yyerrorstate; +char yyname[256]=""; +int yyerrorstate=0; Context_T CTX; Mesh M, *THEM = NULL, *LOCAL = NULL; GUI *WID = NULL; diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp index 4b008ff4f7ac7a935f8fedc2684060e5209b2f5d..44d3cc0e46b8a34fa07b2ae1cb5b624a07569238 100644 --- a/Fltk/Message.cpp +++ b/Fltk/Message.cpp @@ -1,4 +1,4 @@ -// $Id: Message.cpp,v 1.42 2003-11-23 07:14:08 geuzaine Exp $ +// $Id: Message.cpp,v 1.43 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -160,7 +160,7 @@ void Msg(int level, char *fmt, ...) if(log && strlen(buff[window])) WID->add_message(buff[window]); } - else { + else if(log) { strcpy(buff1, "@C1"); if(str) strncat(buff1, str, BUFFSIZE-4); diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp index 9427d4636a9251af647a39ee34411f113f9ac82f..eae65af60669e04065ae4343d844ef9c3a432461 100644 --- a/Geo/Print_Geo.cpp +++ b/Geo/Print_Geo.cpp @@ -1,4 +1,4 @@ -// $Id: Print_Geo.cpp,v 1.30 2003-03-21 00:52:38 geuzaine Exp $ +// $Id: Print_Geo.cpp,v 1.31 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -100,7 +100,7 @@ void Print_Curve(void *a, void *b) fprintf(FOUT, "Bezier (%d) = ", c->Num); break; default: - Msg(GERROR, "Unknown Curve type %d", c->Typ); + Msg(GERROR, "Unknown curve type %d", c->Typ); return; } @@ -277,6 +277,7 @@ void Print_Geo(Mesh * M, char *filename) Msg(GERROR, "Unable to open file '%s'", filename); return; } + Msg(INFO, "Writing flattened geometry file '%s'", filename); } else FOUT = stdout; @@ -288,8 +289,8 @@ void Print_Geo(Mesh * M, char *filename) List_Action(M->PhysicalGroups, Print_PhysicalGroups); if(filename) { - Msg(INFO, "Geo output complete '%s'", filename); - Msg(STATUS2, "Wrote '%s'", filename); + Msg(INFO, "Wrote flattened geometry file '%s'", filename); + Msg(STATUS2N, "Wrote '%s'", filename); fclose(FOUT); } diff --git a/Graphics/CreateFile.cpp b/Graphics/CreateFile.cpp index 9ed226f1cb2f668479e8a7e3dc3d206dd03e40e6..869cb5440186f383321ff806cfb237ad61a9f65a 100644 --- a/Graphics/CreateFile.cpp +++ b/Graphics/CreateFile.cpp @@ -1,4 +1,4 @@ -// $Id: CreateFile.cpp,v 1.50 2003-11-08 04:08:20 geuzaine Exp $ +// $Id: CreateFile.cpp,v 1.51 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -148,14 +148,16 @@ void CreateOutputFile(char *name, int format) FillBuffer(); CTX.print.gl_fonts = 1; if(format == FORMAT_JPEG || format == FORMAT_JPEGTEX){ + Msg(INFO, "Writing JPEG file '%s'", name); create_jpeg(fp, viewport[2]-viewport[0], viewport[3]-viewport[1], CTX.print.jpeg_quality); - Msg(INFO, "JPEG creation complete '%s'", name); + Msg(INFO, "Wrote JPEG file '%s'", name); } else{ + Msg(INFO, "Writing PNG file '%s'", name); create_png(fp, viewport[2]-viewport[0], viewport[3]-viewport[1], 100); - Msg(INFO, "PNG creation complete '%s'", name); + Msg(INFO, "Wrote PNG file '%s'", name); } - Msg(STATUS2, "Wrote '%s'", name); + Msg(STATUS2N, "Wrote '%s'", name); fclose(fp); break; @@ -168,14 +170,17 @@ void CreateOutputFile(char *name, int format) } FillBuffer(); if(format == FORMAT_PPM){ + Msg(INFO, "Writing PPM file '%s'", name); create_ppm(fp, viewport[2]-viewport[0], viewport[3]-viewport[1]); - Msg(INFO, "PPM creation complete '%s'", name); + Msg(INFO, "Wrote PPM file '%s'", name); } else if (format == FORMAT_YUV){ + Msg(INFO, "Writing YUV file '%s'", name); create_yuv(fp, viewport[2]-viewport[0], viewport[3]-viewport[1]); - Msg(INFO, "YUV creation complete '%s'", name); + Msg(INFO, "Wrote YUV file '%s'", name); } else{ + Msg(INFO, "Writing GIF file '%s'", name); create_gif(fp, viewport[2]-viewport[0], viewport[3]-viewport[1], CTX.print.gif_dither, CTX.print.gif_sort, @@ -183,9 +188,9 @@ void CreateOutputFile(char *name, int format) CTX.print.gif_transparent, UNPACK_RED(CTX.color.bg), UNPACK_GREEN(CTX.color.bg), UNPACK_BLUE(CTX.color.bg)); - Msg(INFO, "GIF creation complete '%s'", name); + Msg(INFO, "Wrote GIF file '%s'", name); } - Msg(STATUS2, "Wrote '%s'", name); + Msg(STATUS2N, "Wrote '%s'", name); fclose(fp); break; @@ -221,6 +226,8 @@ void CreateOutputFile(char *name, int format) (format == FORMAT_EPSTEX ? GL2PS_NO_TEXT : 0) | (format == FORMAT_PDFTEX ? GL2PS_NO_TEXT : 0); + Msg(INFO, "Writing %s file '%s'", (psformat == GL2PS_PDF) ? "PDF" : "PS/EPS", name); + size3d = 0; res = GL2PS_OVERFLOW; while(res == GL2PS_OVERFLOW) { @@ -233,11 +240,8 @@ void CreateOutputFile(char *name, int format) CTX.print.gl_fonts = 1; res = gl2psEndPage(); } - if(psformat == GL2PS_PDF) - Msg(INFO, "PDF creation complete '%s'", name); - else - Msg(INFO, "PS/EPS creation complete '%s'", name); - Msg(STATUS2, "Wrote '%s'", name); + Msg(INFO, "Wrote %s file '%s'", (psformat == GL2PS_PDF) ? "PDF" : "PS/EPS", name); + Msg(STATUS2N, "Wrote '%s'", name); fclose(fp); break; @@ -246,6 +250,7 @@ void CreateOutputFile(char *name, int format) Msg(GERROR, "Unable to open file '%s'", name); return; } + Msg(INFO, "Writing TEX file '%s'", name); gl2psBeginPage(CTX.base_filename, "Gmsh", viewport, GL2PS_TEX, GL2PS_NO_SORT, GL2PS_SILENT, GL_RGBA, 0, NULL, 0, 0, 0, 1000, fp, name); @@ -253,8 +258,8 @@ void CreateOutputFile(char *name, int format) FillBuffer(); CTX.print.gl_fonts = 1; res = gl2psEndPage(); - Msg(INFO, "TEX creation complete '%s'", name); - Msg(STATUS2, "Wrote '%s'", name); + Msg(INFO, "Wrote TEX file '%s'", name); + Msg(STATUS2N, "Wrote '%s'", name); fclose(fp); break; diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp index 2b4ae5e81413acdb071fcf58ff4a918e98b6cab6..a000cc865415e1766271b750130956b0cede153f 100644 --- a/Graphics/ReadImg.cpp +++ b/Graphics/ReadImg.cpp @@ -1,4 +1,4 @@ -// $Id: ReadImg.cpp,v 1.5 2003-04-02 06:32:19 geuzaine Exp $ +// $Id: ReadImg.cpp,v 1.6 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -109,12 +109,17 @@ Post_View * Img2Pos(Fl_RGB_Image & img_init) void read_pnm(char *name) { + Msg(INFO, "Reading PNM file '%s'", name); + Fl_PNM_Image theVeryNicePicture(name); Post_View * v = Img2Pos(theVeryNicePicture); char name2[256]; strcpy(name2, name); strcat(name2, ".pos"); EndView(v, 1, name2, name); + + Msg(INFO, "Read PNM file '%s'", name); + Msg(STATUS2N, "Read '%s'", name); } #endif diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 5e29f74ef1b9186ede63503ec0d6bff0f4bd3638..8a729fa9c138f9f12b4b03c5827207433d2765b0 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -463,13 +463,13 @@ void Init_Mesh (Mesh * M, int all); void Create_BgMesh (int i, double d, Mesh * m); void Print_Geo (Mesh * M, char *c); void Print_Mesh (Mesh * M, char *c, int Type); -void Read_Mesh (Mesh * M, FILE * File_GEO, int Type); +void Read_Mesh (Mesh * M, FILE *fp, char *filename, int Type); void GetStatistics (double s[50]); -void Maillage_Dimension_0 (Mesh * M); -void Maillage_Dimension_1 (Mesh * M); -void Maillage_Dimension_2 (Mesh * M); -void Maillage_Dimension_3 (Mesh * M); +void Maillage_Dimension_0 (Mesh *M); +void Maillage_Dimension_1 (Mesh *M); +void Maillage_Dimension_2 (Mesh *M); +void Maillage_Dimension_3 (Mesh *M); void Maillage_Curve (void *data, void *dummy); void Maillage_Surface (void *data, void *dum); diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp index 4b2dc7720c18363b6e03f422049dcad350cde05b..909da4e65b6b8db5faef95aaa78b78789032bf0b 100644 --- a/Mesh/Print_Mesh.cpp +++ b/Mesh/Print_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Print_Mesh.cpp,v 1.42 2003-06-14 04:37:42 geuzaine Exp $ +// $Id: Print_Mesh.cpp,v 1.43 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -404,7 +404,7 @@ void print_msh_elements(Mesh * M) break; default: - Msg(GERROR, "Unknown type of Physical group"); + Msg(GERROR, "Unknown type of physical group"); break; } @@ -1331,6 +1331,8 @@ void Print_Mesh(Mesh * M, char *c, int Type) strcpy(name, M->name); + Msg(INFO, "Writing mesh file '%s'", name); + if(Type == FORMAT_MSH) { c ? strcpy(name, c) : strcat(name, ".msh"); mshfile = fopen(name, "w"); @@ -1339,12 +1341,10 @@ void Print_Mesh(Mesh * M, char *c, int Type) CTX.threads_lock = 0; return; } - Msg(INFO, "Writing file '%s'", name); process_msh_nodes(M); process_msh_elements(M); - Msg(INFO, "Msh ouput complete '%s' (%d Nodes, %d Elements)", - name, MSH_NODE_NUM, MSH_ELEMENT_NUM - 1); - Msg(STATUS2, "Wrote '%s'", name); + Msg(INFO, "%d nodes", MSH_NODE_NUM); + Msg(INFO, "%d elements", MSH_ELEMENT_NUM - 1); fclose(mshfile); } else if(Type == FORMAT_VRML) { @@ -1355,11 +1355,8 @@ void Print_Mesh(Mesh * M, char *c, int Type) CTX.threads_lock = 0; return; } - Msg(INFO, "Writing file '%s'", name); process_wrl_nodes(M); process_wrl_elements(M); - Msg(INFO, "VRML ouput complete '%s'", name); - Msg(STATUS2, "Wrote '%s'", name); fclose(wrlfile); } else if(Type == FORMAT_UNV) { @@ -1370,7 +1367,6 @@ void Print_Mesh(Mesh * M, char *c, int Type) CTX.threads_lock = 0; return; } - Msg(INFO, "Writing file '%s'", name); process_unv_nodes(M); fprintf(unvfile, "%6d\n", -1); fprintf(unvfile, "%6d\n", ELEMENTS); @@ -1381,8 +1377,6 @@ void Print_Mesh(Mesh * M, char *c, int Type) fprintf(unvfile, "%6d\n", -1); process_unv_groups(M); fclose(unvfile); - Msg(INFO, "Unv ouput complete '%s'", name); - Msg(STATUS2, "Wrote '%s'", name); } else if(Type == FORMAT_GREF) { c ? strcpy(name, c) : strcat(name, ".Gref"); @@ -1394,7 +1388,6 @@ void Print_Mesh(Mesh * M, char *c, int Type) CTX.threads_lock = 0; return; } - Msg(INFO, "Writing file '%s'", name); process_Gref_nodes(Greffile, M, TRN, TRE); process_Gref_elements(Greffile, M, Tree_Nbr(TRN)); process_Gref_poundarybonditions(Greffile, M, TRN, TRE); @@ -1402,9 +1395,10 @@ void Print_Mesh(Mesh * M, char *c, int Type) Tree_Delete(TRN); Tree_Delete(TRE); EndConsecutiveNodes(M); - Msg(INFO, "Gref ouput complete '%s'", name); - Msg(STATUS2, "Wrote '%s'", name); } + Msg(INFO, "Wrote mesh file '%s'", name); + Msg(STATUS2N, "Wrote '%s'", name); + CTX.threads_lock = 0; } diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp index ae8281b86c0259be46d00e84599bbbf0dd42c5bd..fd3c802205ca9cb89760dabe0b01f91063789b31 100644 --- a/Mesh/Read_Mesh.cpp +++ b/Mesh/Read_Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Read_Mesh.cpp,v 1.58 2003-09-17 18:00:53 geuzaine Exp $ +// $Id: Read_Mesh.cpp,v 1.59 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -86,7 +86,7 @@ void addPhysicalGroup(Mesh * M, int Type, int Physical, int Elementary) the geometry along with the mesh (since we make Tree_Insert for the geometrical entities). And that's what we want. */ -void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) +void Read_Mesh_MSH(Mesh * M, FILE * fp) { char String[256]; int Nbr_Nodes, Nbr_Elements, i_Node, i_Element; @@ -104,23 +104,23 @@ void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) while(1) { do { - fgets(String, sizeof(String), File_GEO); - if(feof(File_GEO)) + fgets(String, sizeof(String), fp); + if(feof(fp)) break; } while(String[0] != '$'); - if(feof(File_GEO)) + if(feof(fp)) break; /* P T S */ if(!strncmp(&String[1], "PTS", 3)) { - fscanf(File_GEO, "%d", &Nbr_Nodes); - Msg(INFO, "%d Points", Nbr_Nodes); + fscanf(fp, "%d", &Nbr_Nodes); + Msg(INFO, "%d points", Nbr_Nodes); for(i_Node = 0; i_Node < Nbr_Nodes; i_Node++) { - fscanf(File_GEO, "%d %lf %lf %lf %lf %lf", &Num, &x, &y, &z, &lc1, + fscanf(fp, "%d %lf %lf %lf %lf %lf", &Num, &x, &y, &z, &lc1, &lc2); vert = Create_Vertex(Num, x, y, z, lc1, lc2); if(!Tree_Insert(M->Points, &vert)){ @@ -134,13 +134,13 @@ void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) if(!strncmp(&String[1], "NO", 2)) { /* $NOE or $NOD */ - fscanf(File_GEO, "%d", &Nbr_Nodes); - Msg(INFO, "%d Nodes", Nbr_Nodes); + fscanf(fp, "%d", &Nbr_Nodes); + Msg(INFO, "%d nodes", Nbr_Nodes); if(CTX.mesh.check_duplicates) Duplicates = Tree_Create(sizeof(Vertex *), comparePosition); for(i_Node = 0; i_Node < Nbr_Nodes; i_Node++) { - fscanf(File_GEO, "%d %lf %lf %lf", &Num, &x, &y, &z); + fscanf(fp, "%d %lf %lf %lf", &Num, &x, &y, &z); vert = Create_Vertex(Num, x, y, z, 1.0, 0.0); if(!Tree_Insert(M->Vertices, &vert)){ Msg(GERROR, "Node %d already exists\n", vert->Num); @@ -162,20 +162,20 @@ void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) else if(!strncmp(&String[1], "ELM", 3)) { - fscanf(File_GEO, "%d", &Nbr_Elements); - Msg(INFO, "%d Elements", Nbr_Elements); + fscanf(fp, "%d", &Nbr_Elements); + Msg(INFO, "%d elements", Nbr_Elements); if(CTX.mesh.check_duplicates) Duplicates = Tree_Create(sizeof(Vertex *), comparePosition); for(i_Element = 0; i_Element < Nbr_Elements; i_Element++) { - fscanf(File_GEO, "%d %d %d %d %d", + fscanf(fp, "%d %d %d %d %d", &Num, &Type, &Physical, &Elementary, &Nbr_Nodes); //&Num, &Type, &Elementary, &Physical, &Nbr_Nodes) ; for(j = 0; j < Nbr_Nodes; j++) - fscanf(File_GEO, "%d", &verts[j].Num); + fscanf(fp, "%d", &verts[j].Num); switch (Type) { case PNT: @@ -418,8 +418,8 @@ void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) } do { - fgets(String, 256, File_GEO); - if(feof(File_GEO)) + fgets(String, 256, fp); + if(feof(fp)) Msg(GERROR, "Prematured end of mesh file"); } while(String[0] != '$'); @@ -446,19 +446,27 @@ void Read_Mesh_MSH(Mesh * M, FILE * File_GEO) // Public Read_Mesh routine -void Read_Mesh_SMS(Mesh * m, FILE * File_GEO); +void Read_Mesh_SMS(Mesh * m, FILE * fp); -void Read_Mesh(Mesh * M, FILE * File_GEO, int type) +void Read_Mesh(Mesh * M, FILE * fp, char *filename, int type) { + if(filename) + Msg(INFO, "Reading mesh file '%s'", filename); + switch (type) { case FORMAT_MSH: - Read_Mesh_MSH(M, File_GEO); + Read_Mesh_MSH(M, fp); break; case FORMAT_SMS: - Read_Mesh_SMS(M, File_GEO); + Read_Mesh_SMS(M, fp); break; default: - Msg(WARNING, "Unkown mesh file format to read"); - break; + Msg(GERROR, "Unkown mesh file format"); + return; + } + + if(filename){ + Msg(INFO, "Read mesh file '%s'", filename); + Msg(STATUS2N, "Read '%s'", filename); } } diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 9a1f02d29b274a320d0187c8a74b4a0d44a7b437..0afff0d6c6b5c05b286af40c16f3cd3fbc068c07 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -189,7 +189,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.168 2003-11-26 16:35:47 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.169 2003-11-27 02:33:31 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -240,13 +240,10 @@ Tree_T *Symbol_T = NULL; extern Context_T CTX; extern Mesh *THEM; -static FILE *yyinTab[MAX_OPEN_FILES]; -static int yylinenoTab[MAX_OPEN_FILES]; static fpos_t yyposImbricatedLoopsTab[MAX_OPEN_FILES]; static int yylinenoImbricatedLoopsTab[MAX_OPEN_FILES]; static double LoopControlVariablesTab[MAX_OPEN_FILES][3]; static char *LoopControlVariablesNameTab[MAX_OPEN_FILES]; -static char yynameTab[MAX_OPEN_FILES][256]; static char tmpstring[1024]; static Symbol TheSymbol, *pSymbol; static Surface *STL_Surf; @@ -271,7 +268,7 @@ void skip_until (char *skip, char *until); int PrintListOfDouble (char *format, List_T *list, char *buffer); void FixRelativePath(char *in, char *out); -#line 85 "Gmsh.y" +#line 82 "Gmsh.y" typedef union { char *c; int i; @@ -724,52 +721,52 @@ static const short yyrhs[] = { 206, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 170, 172, 173, 174, 179, 181, 184, 192, 206, 216, - 218, 221, 223, 224, 227, 233, 238, 239, 240, 243, - 247, 250, 256, 261, 267, 275, 280, 284, 290, 295, - 299, 304, 308, 311, 316, 320, 324, 328, 333, 337, - 340, 344, 348, 352, 356, 360, 364, 367, 371, 374, - 378, 381, 388, 392, 398, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 414, 419, 434, - 439, 445, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 478, 481, - 485, 491, 497, 500, 504, 510, 516, 519, 523, 529, - 535, 538, 542, 550, 556, 559, 563, 571, 577, 580, - 584, 592, 598, 601, 605, 617, 623, 626, 630, 642, - 648, 651, 655, 667, 673, 676, 680, 693, 699, 702, - 706, 719, 725, 728, 732, 745, 751, 754, 758, 771, - 777, 780, 784, 797, 803, 806, 810, 823, 829, 832, - 836, 859, 865, 868, 872, 895, 901, 904, 908, 931, - 937, 940, 944, 962, 968, 971, 975, 993, 999, 1002, - 1006, 1024, 1030, 1033, 1037, 1054, 1060, 1063, 1067, 1084, - 1090, 1093, 1097, 1114, 1120, 1126, 1133, 1141, 1147, 1153, - 1160, 1168, 1177, 1179, 1180, 1181, 1182, 1185, 1187, 1190, - 1221, 1255, 1302, 1317, 1326, 1341, 1353, 1367, 1390, 1414, - 1426, 1440, 1452, 1466, 1486, 1508, 1520, 1536, 1547, 1553, - 1572, 1586, 1592, 1598, 1617, 1623, 1629, 1645, 1652, 1658, - 1664, 1675, 1686, 1711, 1717, 1736, 1758, 1764, 1772, 1778, - 1784, 1793, 1799, 1805, 1815, 1821, 1826, 1831, 1838, 1840, - 1841, 1844, 1849, 1853, 1867, 1881, 1899, 1910, 1920, 1928, - 1932, 1940, 1952, 2019, 2032, 2049, 2054, 2058, 2078, 2090, - 2100, 2121, 2142, 2163, 2169, 2174, 2179, 2183, 2191, 2204, - 2214, 2224, 2229, 2239, 2244, 2254, 2259, 2271, 2288, 2305, - 2322, 2327, 2344, 2349, 2366, 2371, 2391, 2407, 2423, 2439, - 2444, 2461, 2467, 2484, 2490, 2509, 2513, 2518, 2545, 2569, - 2577, 2596, 2614, 2632, 2654, 2675, 2696, 2710, 2729, 2734, - 2743, 2745, 2746, 2747, 2748, 2751, 2753, 2754, 2755, 2756, - 2757, 2758, 2759, 2760, 2767, 2768, 2769, 2770, 2771, 2772, - 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, - 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, - 2793, 2794, 2795, 2796, 2797, 2798, 2800, 2801, 2802, 2803, - 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, - 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2825, 2830, 2831, - 2832, 2836, 2847, 2864, 2875, 2894, 2910, 2926, 2942, 2959, - 2964, 2968, 2972, 2976, 2982, 2987, 2991, 2995, 3001, 3005, - 3010, 3014, 3019, 3023, 3027, 3033, 3039, 3046, 3052, 3056, - 3060, 3070, 3077, 3088, 3108, 3117, 3126, 3137, 3151, 3167, - 3187, 3211, 3217, 3221, 3225, 3236, 3241, 3252, 3257, 3275, - 3280, 3293, 3299, 3305, 3310, 3318, 3331, 3335, 3353, 3367 + 167, 169, 170, 171, 176, 178, 181, 189, 203, 213, + 215, 218, 220, 221, 224, 230, 235, 236, 237, 240, + 244, 247, 253, 258, 264, 272, 277, 281, 287, 292, + 296, 301, 305, 308, 313, 317, 321, 325, 330, 334, + 337, 341, 345, 349, 353, 357, 361, 364, 368, 371, + 375, 378, 385, 389, 395, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 411, 416, 431, + 436, 442, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 475, 478, + 482, 488, 494, 497, 501, 507, 513, 516, 520, 526, + 532, 535, 539, 547, 553, 556, 560, 568, 574, 577, + 581, 589, 595, 598, 602, 614, 620, 623, 627, 639, + 645, 648, 652, 664, 670, 673, 677, 690, 696, 699, + 703, 716, 722, 725, 729, 742, 748, 751, 755, 768, + 774, 777, 781, 794, 800, 803, 807, 820, 826, 829, + 833, 856, 862, 865, 869, 892, 898, 901, 905, 928, + 934, 937, 941, 959, 965, 968, 972, 990, 996, 999, + 1003, 1021, 1027, 1030, 1034, 1051, 1057, 1060, 1064, 1081, + 1087, 1090, 1094, 1111, 1117, 1123, 1130, 1138, 1144, 1150, + 1157, 1165, 1174, 1176, 1177, 1178, 1179, 1182, 1184, 1187, + 1218, 1252, 1299, 1314, 1323, 1338, 1350, 1364, 1387, 1411, + 1423, 1437, 1449, 1463, 1483, 1505, 1517, 1533, 1544, 1550, + 1569, 1583, 1589, 1595, 1614, 1620, 1626, 1642, 1649, 1655, + 1661, 1672, 1683, 1708, 1714, 1733, 1755, 1761, 1769, 1775, + 1781, 1790, 1796, 1802, 1812, 1818, 1823, 1828, 1835, 1837, + 1838, 1841, 1846, 1850, 1864, 1878, 1896, 1907, 1917, 1925, + 1929, 1937, 1949, 1989, 2002, 2019, 2024, 2028, 2048, 2060, + 2070, 2091, 2112, 2133, 2139, 2144, 2149, 2153, 2161, 2174, + 2184, 2194, 2199, 2209, 2214, 2224, 2229, 2241, 2258, 2275, + 2292, 2297, 2314, 2319, 2336, 2341, 2361, 2377, 2393, 2409, + 2414, 2431, 2437, 2454, 2460, 2479, 2483, 2488, 2515, 2539, + 2547, 2566, 2584, 2602, 2624, 2645, 2666, 2680, 2699, 2704, + 2713, 2715, 2716, 2717, 2718, 2721, 2723, 2724, 2725, 2726, + 2727, 2728, 2729, 2730, 2737, 2738, 2739, 2740, 2741, 2742, + 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, + 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, + 2763, 2764, 2765, 2766, 2767, 2768, 2770, 2771, 2772, 2773, + 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, + 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2795, 2800, 2801, + 2802, 2806, 2817, 2834, 2845, 2864, 2880, 2896, 2912, 2929, + 2934, 2938, 2942, 2946, 2952, 2957, 2961, 2965, 2971, 2975, + 2980, 2984, 2989, 2993, 2997, 3003, 3009, 3016, 3022, 3026, + 3030, 3040, 3047, 3058, 3078, 3087, 3096, 3107, 3121, 3137, + 3157, 3181, 3187, 3191, 3195, 3206, 3211, 3222, 3227, 3245, + 3250, 3263, 3269, 3275, 3280, 3288, 3301, 3305, 3323, 3337 }; #endif @@ -4541,19 +4538,19 @@ yyreduce: switch (yyn) { case 4: -#line 174 "Gmsh.y" +#line 171 "Gmsh.y" { yyerrok ; return 1; ; break;} case 5: -#line 180 "Gmsh.y" +#line 177 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 6: -#line 181 "Gmsh.y" +#line 178 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} case 7: -#line 186 "Gmsh.y" +#line 183 "Gmsh.y" { yymsg(INFO, "STL file format"); STL_Surf = Create_Surface(1, MSH_SURF_STL); @@ -4562,16 +4559,16 @@ case 7: ; break;} case 8: -#line 200 "Gmsh.y" +#line 197 "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, - yyvsp[-4].d, yyvsp[-3].d, yyvsp[-2].d); + STL_Surf->STL->Add_Facet(yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d, + yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d, + yyvsp[-4].d, yyvsp[-3].d, yyvsp[-2].d); return 1; ; break;} case 9: -#line 207 "Gmsh.y" +#line 204 "Gmsh.y" { yymsg(INFO, "STL file format read"); Tree_Add(THEM->Surfaces, &STL_Surf); @@ -4579,79 +4576,79 @@ case 9: ; break;} case 12: -#line 222 "Gmsh.y" +#line 219 "Gmsh.y" { return 1; ; break;} case 13: -#line 223 "Gmsh.y" +#line 220 "Gmsh.y" { return 1; ; break;} case 14: -#line 224 "Gmsh.y" +#line 221 "Gmsh.y" { return 1; ; break;} case 15: -#line 229 "Gmsh.y" +#line 226 "Gmsh.y" { yymsg(INFO, "Step Iso-10303-21 file format"); Create_Step_Solid_BRep(); ; break;} case 16: -#line 234 "Gmsh.y" +#line 231 "Gmsh.y" { yymsg(INFO, "Step Iso-10303-21 file format read"); Resolve_BREP (); ; break;} case 20: -#line 245 "Gmsh.y" +#line 242 "Gmsh.y" { ; break;} case 21: -#line 248 "Gmsh.y" +#line 245 "Gmsh.y" { ; break;} case 22: -#line 252 "Gmsh.y" +#line 249 "Gmsh.y" { ; break;} case 23: -#line 258 "Gmsh.y" +#line 255 "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 24: -#line 264 "Gmsh.y" +#line 261 "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 25: -#line 271 "Gmsh.y" +#line 268 "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 26: -#line 277 "Gmsh.y" +#line 274 "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 27: -#line 281 "Gmsh.y" +#line 278 "Gmsh.y" { Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 1); ; break;} case 28: -#line 285 "Gmsh.y" +#line 282 "Gmsh.y" { // check the norm! Face_Bound : hole outside surface! yymsg(INFO, "Found a face bound"); @@ -4659,211 +4656,211 @@ case 28: ; break;} case 29: -#line 292 "Gmsh.y" +#line 289 "Gmsh.y" { Add_Oriented_Edge((int)yyvsp[-14].d, yyvsp[-10].c, (int)yyvsp[-4].d, yyvsp[-2].i); ; break;} case 30: -#line 296 "Gmsh.y" +#line 293 "Gmsh.y" { Add_Edge_Loop((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].l); ; break;} case 31: -#line 301 "Gmsh.y" +#line 298 "Gmsh.y" { Add_Advanced_Face((int)yyvsp[-12].d, yyvsp[-8].c, yyvsp[-6].l, (int)yyvsp[-4].d, yyvsp[-2].i); ; break;} case 32: -#line 305 "Gmsh.y" +#line 302 "Gmsh.y" { Add_Vertex_Point((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d); ; break;} case 33: -#line 309 "Gmsh.y" +#line 306 "Gmsh.y" { ; break;} case 34: -#line 313 "Gmsh.y" +#line 310 "Gmsh.y" { - Add_Axis2_Placement3D ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d); + Add_Axis2_Placement3D ((int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d); ; break;} case 35: -#line 317 "Gmsh.y" +#line 314 "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 36: -#line 321 "Gmsh.y" +#line 318 "Gmsh.y" { Add_Plane((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d); ; break;} case 37: -#line 325 "Gmsh.y" +#line 322 "Gmsh.y" { Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d); ; break;} case 38: -#line 329 "Gmsh.y" +#line 326 "Gmsh.y" { yymsg(INFO, "Found a closed shell"); Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l); ; break;} case 39: -#line 335 "Gmsh.y" +#line 332 "Gmsh.y" { ; break;} case 40: -#line 338 "Gmsh.y" +#line 335 "Gmsh.y" { ; break;} case 41: -#line 341 "Gmsh.y" +#line 338 "Gmsh.y" { Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d); ; break;} case 42: -#line 345 "Gmsh.y" +#line 342 "Gmsh.y" { Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 43: -#line 349 "Gmsh.y" +#line 346 "Gmsh.y" { Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 44: -#line 353 "Gmsh.y" +#line 350 "Gmsh.y" { Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d); ; break;} case 45: -#line 357 "Gmsh.y" +#line 354 "Gmsh.y" { Add_Ellipse((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 359 "Gmsh.y" { ; break;} case 47: -#line 365 "Gmsh.y" +#line 362 "Gmsh.y" { ; break;} case 48: -#line 369 "Gmsh.y" +#line 366 "Gmsh.y" { ; break;} case 49: -#line 372 "Gmsh.y" +#line 369 "Gmsh.y" { ; break;} case 50: -#line 376 "Gmsh.y" +#line 373 "Gmsh.y" { ; break;} case 51: -#line 379 "Gmsh.y" +#line 376 "Gmsh.y" { ; break;} case 52: -#line 382 "Gmsh.y" +#line 379 "Gmsh.y" { ; break;} case 53: -#line 390 "Gmsh.y" +#line 387 "Gmsh.y" { ; break;} case 54: -#line 393 "Gmsh.y" +#line 390 "Gmsh.y" { yymsg(INFO, "Gmsh file format read"); ; break;} case 55: -#line 399 "Gmsh.y" +#line 396 "Gmsh.y" { return 1; ; break;} case 56: -#line 400 "Gmsh.y" +#line 397 "Gmsh.y" { return 1; ; break;} case 57: -#line 401 "Gmsh.y" +#line 398 "Gmsh.y" { return 1; ; break;} case 58: -#line 402 "Gmsh.y" +#line 399 "Gmsh.y" { return 1; ; break;} case 59: -#line 403 "Gmsh.y" +#line 400 "Gmsh.y" { return 1; ; break;} case 60: -#line 404 "Gmsh.y" +#line 401 "Gmsh.y" { return 1; ; break;} case 61: -#line 405 "Gmsh.y" +#line 402 "Gmsh.y" { return 1; ; break;} case 62: -#line 406 "Gmsh.y" +#line 403 "Gmsh.y" { return 1; ; break;} case 63: -#line 407 "Gmsh.y" +#line 404 "Gmsh.y" { return 1; ; break;} case 64: -#line 408 "Gmsh.y" +#line 405 "Gmsh.y" { return 1; ; break;} case 65: -#line 409 "Gmsh.y" +#line 406 "Gmsh.y" { return 1; ; break;} case 66: -#line 410 "Gmsh.y" +#line 407 "Gmsh.y" { return 1; ; break;} case 67: -#line 411 "Gmsh.y" +#line 408 "Gmsh.y" { return 1; ; break;} case 68: -#line 416 "Gmsh.y" +#line 413 "Gmsh.y" { Msg(DIRECT, yyvsp[-2].c); ; break;} case 69: -#line 420 "Gmsh.y" +#line 417 "Gmsh.y" { i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring); if(i < 0) @@ -4876,96 +4873,96 @@ case 69: ; break;} case 70: -#line 436 "Gmsh.y" +#line 433 "Gmsh.y" { if(!strcmp(yyvsp[-5].c, "View")) EndView(View, 1, yyname, yyvsp[-4].c); ; break;} case 71: -#line 440 "Gmsh.y" +#line 437 "Gmsh.y" { if(!strcmp(yyvsp[-7].c, "View")) EndView(View, 1, yyname, yyvsp[-6].c); ; break;} case 72: -#line 447 "Gmsh.y" +#line 444 "Gmsh.y" { View = BeginView(1); ; break;} case 99: -#line 480 "Gmsh.y" +#line 477 "Gmsh.y" { List_Add(View->SP, &yyvsp[0].d) ; ; break;} case 100: -#line 482 "Gmsh.y" +#line 479 "Gmsh.y" { List_Add(View->SP, &yyvsp[0].d) ; ; break;} case 101: -#line 487 "Gmsh.y" +#line 484 "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 102: -#line 492 "Gmsh.y" +#line 489 "Gmsh.y" { View->NbSP++ ; ; break;} case 103: -#line 499 "Gmsh.y" +#line 496 "Gmsh.y" { List_Add(View->VP, &yyvsp[0].d) ; ; break;} case 104: -#line 501 "Gmsh.y" +#line 498 "Gmsh.y" { List_Add(View->VP, &yyvsp[0].d) ; ; break;} case 105: -#line 506 "Gmsh.y" +#line 503 "Gmsh.y" { List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d); List_Add(View->VP, &yyvsp[-1].d); ; break;} case 106: -#line 511 "Gmsh.y" +#line 508 "Gmsh.y" { View->NbVP++ ; ; break;} case 107: -#line 518 "Gmsh.y" +#line 515 "Gmsh.y" { List_Add(View->TP, &yyvsp[0].d) ; ; break;} case 108: -#line 520 "Gmsh.y" +#line 517 "Gmsh.y" { List_Add(View->TP, &yyvsp[0].d) ; ; break;} case 109: -#line 525 "Gmsh.y" +#line 522 "Gmsh.y" { List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d); List_Add(View->TP, &yyvsp[-1].d); ; break;} case 110: -#line 530 "Gmsh.y" +#line 527 "Gmsh.y" { View->NbTP++ ; ; break;} case 111: -#line 537 "Gmsh.y" +#line 534 "Gmsh.y" { List_Add(View->SL, &yyvsp[0].d) ; ; break;} case 112: -#line 539 "Gmsh.y" +#line 536 "Gmsh.y" { List_Add(View->SL, &yyvsp[0].d) ; ; break;} case 113: -#line 545 "Gmsh.y" +#line 542 "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); @@ -4973,21 +4970,21 @@ case 113: ; break;} case 114: -#line 551 "Gmsh.y" +#line 548 "Gmsh.y" { View->NbSL++ ; ; break;} case 115: -#line 558 "Gmsh.y" +#line 555 "Gmsh.y" { List_Add(View->VL, &yyvsp[0].d) ; ; break;} case 116: -#line 560 "Gmsh.y" +#line 557 "Gmsh.y" { List_Add(View->VL, &yyvsp[0].d) ; ; break;} case 117: -#line 566 "Gmsh.y" +#line 563 "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); @@ -4995,21 +4992,21 @@ case 117: ; break;} case 118: -#line 572 "Gmsh.y" +#line 569 "Gmsh.y" { View->NbVL++ ; ; break;} case 119: -#line 579 "Gmsh.y" +#line 576 "Gmsh.y" { List_Add(View->TL, &yyvsp[0].d) ; ; break;} case 120: -#line 581 "Gmsh.y" +#line 578 "Gmsh.y" { List_Add(View->TL, &yyvsp[0].d) ; ; break;} case 121: -#line 587 "Gmsh.y" +#line 584 "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); @@ -5017,21 +5014,21 @@ case 121: ; break;} case 122: -#line 593 "Gmsh.y" +#line 590 "Gmsh.y" { View->NbTL++ ; ; break;} case 123: -#line 600 "Gmsh.y" +#line 597 "Gmsh.y" { List_Add(View->ST, &yyvsp[0].d) ; ; break;} case 124: -#line 602 "Gmsh.y" +#line 599 "Gmsh.y" { List_Add(View->ST, &yyvsp[0].d) ; ; break;} case 125: -#line 609 "Gmsh.y" +#line 606 "Gmsh.y" { List_Add(View->ST, &yyvsp[-17].d); List_Add(View->ST, &yyvsp[-11].d); List_Add(View->ST, &yyvsp[-5].d); @@ -5042,21 +5039,21 @@ case 125: ; break;} case 126: -#line 618 "Gmsh.y" +#line 615 "Gmsh.y" { View->NbST++ ; ; break;} case 127: -#line 625 "Gmsh.y" +#line 622 "Gmsh.y" { List_Add(View->VT, &yyvsp[0].d) ; ; break;} case 128: -#line 627 "Gmsh.y" +#line 624 "Gmsh.y" { List_Add(View->VT, &yyvsp[0].d) ; ; break;} case 129: -#line 634 "Gmsh.y" +#line 631 "Gmsh.y" { List_Add(View->VT, &yyvsp[-17].d); List_Add(View->VT, &yyvsp[-11].d); List_Add(View->VT, &yyvsp[-5].d); @@ -5067,21 +5064,21 @@ case 129: ; break;} case 130: -#line 643 "Gmsh.y" +#line 640 "Gmsh.y" { View->NbVT++ ; ; break;} case 131: -#line 650 "Gmsh.y" +#line 647 "Gmsh.y" { List_Add(View->TT, &yyvsp[0].d) ; ; break;} case 132: -#line 652 "Gmsh.y" +#line 649 "Gmsh.y" { List_Add(View->TT, &yyvsp[0].d) ; ; break;} case 133: -#line 659 "Gmsh.y" +#line 656 "Gmsh.y" { List_Add(View->TT, &yyvsp[-17].d); List_Add(View->TT, &yyvsp[-11].d); List_Add(View->TT, &yyvsp[-5].d); @@ -5092,21 +5089,21 @@ case 133: ; break;} case 134: -#line 668 "Gmsh.y" +#line 665 "Gmsh.y" { View->NbTT++ ; ; break;} case 135: -#line 675 "Gmsh.y" +#line 672 "Gmsh.y" { List_Add(View->SQ, &yyvsp[0].d) ; ; break;} case 136: -#line 677 "Gmsh.y" +#line 674 "Gmsh.y" { List_Add(View->SQ, &yyvsp[0].d) ; ; break;} case 137: -#line 685 "Gmsh.y" +#line 682 "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); @@ -5117,21 +5114,21 @@ case 137: ; break;} case 138: -#line 694 "Gmsh.y" +#line 691 "Gmsh.y" { View->NbSQ++ ; ; break;} case 139: -#line 701 "Gmsh.y" +#line 698 "Gmsh.y" { List_Add(View->VQ, &yyvsp[0].d) ; ; break;} case 140: -#line 703 "Gmsh.y" +#line 700 "Gmsh.y" { List_Add(View->VQ, &yyvsp[0].d) ; ; break;} case 141: -#line 711 "Gmsh.y" +#line 708 "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); @@ -5142,21 +5139,21 @@ case 141: ; break;} case 142: -#line 720 "Gmsh.y" +#line 717 "Gmsh.y" { View->NbVQ++ ; ; break;} case 143: -#line 727 "Gmsh.y" +#line 724 "Gmsh.y" { List_Add(View->TQ, &yyvsp[0].d) ; ; break;} case 144: -#line 729 "Gmsh.y" +#line 726 "Gmsh.y" { List_Add(View->TQ, &yyvsp[0].d) ; ; break;} case 145: -#line 737 "Gmsh.y" +#line 734 "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); @@ -5167,21 +5164,21 @@ case 145: ; break;} case 146: -#line 746 "Gmsh.y" +#line 743 "Gmsh.y" { View->NbTQ++ ; ; break;} case 147: -#line 753 "Gmsh.y" +#line 750 "Gmsh.y" { List_Add(View->SS, &yyvsp[0].d) ; ; break;} case 148: -#line 755 "Gmsh.y" +#line 752 "Gmsh.y" { List_Add(View->SS, &yyvsp[0].d) ; ; break;} case 149: -#line 763 "Gmsh.y" +#line 760 "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); @@ -5192,21 +5189,21 @@ case 149: ; break;} case 150: -#line 772 "Gmsh.y" +#line 769 "Gmsh.y" { View->NbSS++ ; ; break;} case 151: -#line 779 "Gmsh.y" +#line 776 "Gmsh.y" { List_Add(View->VS, &yyvsp[0].d) ; ; break;} case 152: -#line 781 "Gmsh.y" +#line 778 "Gmsh.y" { List_Add(View->VS, &yyvsp[0].d) ; ; break;} case 153: -#line 789 "Gmsh.y" +#line 786 "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); @@ -5217,21 +5214,21 @@ case 153: ; break;} case 154: -#line 798 "Gmsh.y" +#line 795 "Gmsh.y" { View->NbVS++ ; ; break;} case 155: -#line 805 "Gmsh.y" +#line 802 "Gmsh.y" { List_Add(View->TS, &yyvsp[0].d) ; ; break;} case 156: -#line 807 "Gmsh.y" +#line 804 "Gmsh.y" { List_Add(View->TS, &yyvsp[0].d) ; ; break;} case 157: -#line 815 "Gmsh.y" +#line 812 "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); @@ -5242,21 +5239,21 @@ case 157: ; break;} case 158: -#line 824 "Gmsh.y" +#line 821 "Gmsh.y" { View->NbTS++ ; ; break;} case 159: -#line 831 "Gmsh.y" +#line 828 "Gmsh.y" { List_Add(View->SH, &yyvsp[0].d) ; ; break;} case 160: -#line 833 "Gmsh.y" +#line 830 "Gmsh.y" { List_Add(View->SH, &yyvsp[0].d) ; ; break;} case 161: -#line 845 "Gmsh.y" +#line 842 "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); @@ -5273,21 +5270,21 @@ case 161: ; break;} case 162: -#line 860 "Gmsh.y" +#line 857 "Gmsh.y" { View->NbSH++ ; ; break;} case 163: -#line 867 "Gmsh.y" +#line 864 "Gmsh.y" { List_Add(View->VH, &yyvsp[0].d) ; ; break;} case 164: -#line 869 "Gmsh.y" +#line 866 "Gmsh.y" { List_Add(View->VH, &yyvsp[0].d) ; ; break;} case 165: -#line 881 "Gmsh.y" +#line 878 "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); @@ -5304,21 +5301,21 @@ case 165: ; break;} case 166: -#line 896 "Gmsh.y" +#line 893 "Gmsh.y" { View->NbVH++ ; ; break;} case 167: -#line 903 "Gmsh.y" +#line 900 "Gmsh.y" { List_Add(View->TH, &yyvsp[0].d) ; ; break;} case 168: -#line 905 "Gmsh.y" +#line 902 "Gmsh.y" { List_Add(View->TH, &yyvsp[0].d) ; ; break;} case 169: -#line 917 "Gmsh.y" +#line 914 "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); @@ -5335,21 +5332,21 @@ case 169: ; break;} case 170: -#line 932 "Gmsh.y" +#line 929 "Gmsh.y" { View->NbTH++ ; ; break;} case 171: -#line 939 "Gmsh.y" +#line 936 "Gmsh.y" { List_Add(View->SI, &yyvsp[0].d) ; ; break;} case 172: -#line 941 "Gmsh.y" +#line 938 "Gmsh.y" { List_Add(View->SI, &yyvsp[0].d) ; ; break;} case 173: -#line 951 "Gmsh.y" +#line 948 "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); @@ -5363,21 +5360,21 @@ case 173: ; break;} case 174: -#line 963 "Gmsh.y" +#line 960 "Gmsh.y" { View->NbSI++ ; ; break;} case 175: -#line 970 "Gmsh.y" +#line 967 "Gmsh.y" { List_Add(View->VI, &yyvsp[0].d) ; ; break;} case 176: -#line 972 "Gmsh.y" +#line 969 "Gmsh.y" { List_Add(View->VI, &yyvsp[0].d) ; ; break;} case 177: -#line 982 "Gmsh.y" +#line 979 "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); @@ -5391,21 +5388,21 @@ case 177: ; break;} case 178: -#line 994 "Gmsh.y" +#line 991 "Gmsh.y" { View->NbVI++ ; ; break;} case 179: -#line 1001 "Gmsh.y" +#line 998 "Gmsh.y" { List_Add(View->TI, &yyvsp[0].d) ; ; break;} case 180: -#line 1003 "Gmsh.y" +#line 1000 "Gmsh.y" { List_Add(View->TI, &yyvsp[0].d) ; ; break;} case 181: -#line 1013 "Gmsh.y" +#line 1010 "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); @@ -5419,21 +5416,21 @@ case 181: ; break;} case 182: -#line 1025 "Gmsh.y" +#line 1022 "Gmsh.y" { View->NbTI++ ; ; break;} case 183: -#line 1032 "Gmsh.y" +#line 1029 "Gmsh.y" { List_Add(View->SY, &yyvsp[0].d) ; ; break;} case 184: -#line 1034 "Gmsh.y" +#line 1031 "Gmsh.y" { List_Add(View->SY, &yyvsp[0].d) ; ; break;} case 185: -#line 1043 "Gmsh.y" +#line 1040 "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); @@ -5447,21 +5444,21 @@ case 185: ; break;} case 186: -#line 1055 "Gmsh.y" +#line 1052 "Gmsh.y" { View->NbSY++ ; ; break;} case 187: -#line 1062 "Gmsh.y" +#line 1059 "Gmsh.y" { List_Add(View->VY, &yyvsp[0].d) ; ; break;} case 188: -#line 1064 "Gmsh.y" +#line 1061 "Gmsh.y" { List_Add(View->VY, &yyvsp[0].d) ; ; break;} case 189: -#line 1073 "Gmsh.y" +#line 1070 "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); @@ -5475,21 +5472,21 @@ case 189: ; break;} case 190: -#line 1085 "Gmsh.y" +#line 1082 "Gmsh.y" { View->NbVY++ ; ; break;} case 191: -#line 1092 "Gmsh.y" +#line 1089 "Gmsh.y" { List_Add(View->TY, &yyvsp[0].d) ; ; break;} case 192: -#line 1094 "Gmsh.y" +#line 1091 "Gmsh.y" { List_Add(View->TY, &yyvsp[0].d) ; ; break;} case 193: -#line 1103 "Gmsh.y" +#line 1100 "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); @@ -5503,27 +5500,27 @@ case 193: ; break;} case 194: -#line 1115 "Gmsh.y" +#line 1112 "Gmsh.y" { View->NbTY++ ; ; break;} case 195: -#line 1122 "Gmsh.y" +#line 1119 "Gmsh.y" { for(i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ; Free(yyvsp[0].c); ; break;} case 196: -#line 1127 "Gmsh.y" +#line 1124 "Gmsh.y" { for(i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ; Free(yyvsp[0].c); ; break;} case 197: -#line 1135 "Gmsh.y" +#line 1132 "Gmsh.y" { List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d); List_Add(View->T2D, &yyvsp[-1].d); @@ -5532,27 +5529,27 @@ case 197: ; break;} case 198: -#line 1142 "Gmsh.y" +#line 1139 "Gmsh.y" { View->NbT2++ ; ; break;} case 199: -#line 1149 "Gmsh.y" +#line 1146 "Gmsh.y" { for(i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ; Free(yyvsp[0].c); ; break;} case 200: -#line 1154 "Gmsh.y" +#line 1151 "Gmsh.y" { for(i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ; Free(yyvsp[0].c); ; break;} case 201: -#line 1162 "Gmsh.y" +#line 1159 "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); @@ -5561,41 +5558,41 @@ case 201: ; break;} case 202: -#line 1169 "Gmsh.y" +#line 1166 "Gmsh.y" { View->NbT3++ ; ; break;} case 203: -#line 1178 "Gmsh.y" +#line 1175 "Gmsh.y" { yyval.i = 0 ; ; break;} case 204: -#line 1179 "Gmsh.y" +#line 1176 "Gmsh.y" { yyval.i = 1 ; ; break;} case 205: -#line 1180 "Gmsh.y" +#line 1177 "Gmsh.y" { yyval.i = 2 ; ; break;} case 206: -#line 1181 "Gmsh.y" +#line 1178 "Gmsh.y" { yyval.i = 3 ; ; break;} case 207: -#line 1182 "Gmsh.y" +#line 1179 "Gmsh.y" { yyval.i = 4 ; ; break;} case 208: -#line 1186 "Gmsh.y" +#line 1183 "Gmsh.y" { yyval.i = 1 ; ; break;} case 209: -#line 1187 "Gmsh.y" +#line 1184 "Gmsh.y" { yyval.i = -1 ; ; break;} case 210: -#line 1195 "Gmsh.y" +#line 1192 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){ @@ -5623,7 +5620,7 @@ case 210: ; break;} case 211: -#line 1222 "Gmsh.y" +#line 1219 "Gmsh.y" { TheSymbol.Name = yyvsp[-6].c; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){ @@ -5658,7 +5655,7 @@ case 211: ; break;} case 212: -#line 1256 "Gmsh.y" +#line 1253 "Gmsh.y" { if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)) yymsg(GERROR, "Incompatible array dimensions in affectation"); @@ -5706,7 +5703,7 @@ case 212: ; break;} case 213: -#line 1303 "Gmsh.y" +#line 1300 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))){ @@ -5722,7 +5719,7 @@ case 213: ; break;} case 214: -#line 1318 "Gmsh.y" +#line 1315 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) @@ -5732,7 +5729,7 @@ case 214: ; break;} case 215: -#line 1327 "Gmsh.y" +#line 1324 "Gmsh.y" { TheSymbol.Name = yyvsp[-5].c ; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) @@ -5746,7 +5743,7 @@ case 215: ; break;} case 216: -#line 1342 "Gmsh.y" +#line 1339 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c))) yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-5].c); @@ -5759,7 +5756,7 @@ case 216: ; break;} case 217: -#line 1354 "Gmsh.y" +#line 1351 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-8].c))) yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-8].c); @@ -5772,7 +5769,7 @@ case 217: ; break;} case 218: -#line 1368 "Gmsh.y" +#line 1365 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c); @@ -5796,7 +5793,7 @@ case 218: ; break;} case 219: -#line 1391 "Gmsh.y" +#line 1388 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-8].c))) yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-8].c); @@ -5821,7 +5818,7 @@ case 219: ; break;} case 220: -#line 1415 "Gmsh.y" +#line 1412 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-4].c); @@ -5834,7 +5831,7 @@ case 220: ; break;} case 221: -#line 1427 "Gmsh.y" +#line 1424 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-7].c))) yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-7].c); @@ -5847,7 +5844,7 @@ case 221: ; break;} case 222: -#line 1441 "Gmsh.y" +#line 1438 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c))) yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-7].c); @@ -5860,7 +5857,7 @@ case 222: ; break;} case 223: -#line 1453 "Gmsh.y" +#line 1450 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-10].c))) yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-10].c); @@ -5873,7 +5870,7 @@ case 223: ; break;} case 224: -#line 1467 "Gmsh.y" +#line 1464 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -5894,7 +5891,7 @@ case 224: ; break;} case 225: -#line 1487 "Gmsh.y" +#line 1484 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d); if(!ct) @@ -5915,7 +5912,7 @@ case 225: ; break;} case 226: -#line 1509 "Gmsh.y" +#line 1506 "Gmsh.y" { if(CTX.default_plugins){ try { @@ -5928,7 +5925,7 @@ case 226: ; break;} case 227: -#line 1521 "Gmsh.y" +#line 1518 "Gmsh.y" { if(CTX.default_plugins){ try { @@ -5941,7 +5938,7 @@ case 227: ; break;} case 228: -#line 1541 "Gmsh.y" +#line 1538 "Gmsh.y" { Cdbpts101((int)yyvsp[-4].d, yyvsp[-1].v[0], yyvsp[-1].v[1], yyvsp[-1].v[2], yyvsp[-1].v[3], yyvsp[-1].v[4]); yyval.s.Type = MSH_POINT; @@ -5949,7 +5946,7 @@ case 228: ; break;} case 229: -#line 1548 "Gmsh.y" +#line 1545 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_PHYSICAL_POINT, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_PHYSICAL_POINT; @@ -5957,7 +5954,7 @@ case 229: ; break;} case 230: -#line 1554 "Gmsh.y" +#line 1551 "Gmsh.y" { Vertex *v; Attractor *a; @@ -5978,7 +5975,7 @@ case 230: ; break;} case 231: -#line 1573 "Gmsh.y" +#line 1570 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-3].l); i++){ List_Read(yyvsp[-3].l, i, &d); @@ -5991,7 +5988,7 @@ case 231: ; break;} case 232: -#line 1587 "Gmsh.y" +#line 1584 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_LINE, 1, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); yyval.s.Type = MSH_SEGM_LINE; @@ -5999,7 +5996,7 @@ case 232: ; break;} case 233: -#line 1593 "Gmsh.y" +#line 1590 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_SPLN, 3, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); yyval.s.Type = MSH_SEGM_SPLN; @@ -6007,7 +6004,7 @@ case 233: ; break;} case 234: -#line 1599 "Gmsh.y" +#line 1596 "Gmsh.y" { Curve *c; Attractor *a; @@ -6028,7 +6025,7 @@ case 234: ; break;} case 235: -#line 1618 "Gmsh.y" +#line 1615 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_CIRC, 2, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); yyval.s.Type = MSH_SEGM_CIRC ; @@ -6036,7 +6033,7 @@ case 235: ; break;} case 236: -#line 1624 "Gmsh.y" +#line 1621 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_ELLI, 2, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); yyval.s.Type = MSH_SEGM_ELLI ; @@ -6044,7 +6041,7 @@ case 236: ; break;} case 237: -#line 1630 "Gmsh.y" +#line 1627 "Gmsh.y" { List_T *temp; int i, j; @@ -6062,7 +6059,7 @@ case 237: ; break;} case 238: -#line 1647 "Gmsh.y" +#line 1644 "Gmsh.y" { Cdbseg101((int)yyvsp[-14].d, MSH_SEGM_PARAMETRIC, 2, NULL, NULL, -1, -1, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].c, yyvsp[-4].c, yyvsp[-2].c); yyval.s.Type = MSH_SEGM_PARAMETRIC ; @@ -6070,7 +6067,7 @@ case 238: ; break;} case 239: -#line 1653 "Gmsh.y" +#line 1650 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_PHYSICAL_LINE, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_PHYSICAL_LINE; @@ -6078,7 +6075,7 @@ case 239: ; break;} case 240: -#line 1659 "Gmsh.y" +#line 1656 "Gmsh.y" { yyval.s.Type = MSH_SEGM_LOOP; Cdbz101((int)yyvsp[-4].d, yyval.s.Type, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); @@ -6086,7 +6083,7 @@ case 240: ; break;} case 241: -#line 1665 "Gmsh.y" +#line 1662 "Gmsh.y" { if(List_Nbr(yyvsp[-1].l) > 3){ Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_BSPLN, 2, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); @@ -6099,7 +6096,7 @@ case 241: ; break;} case 242: -#line 1676 "Gmsh.y" +#line 1673 "Gmsh.y" { if(List_Nbr(yyvsp[-1].l) > 3){ Cdbseg101((int)yyvsp[-4].d, MSH_SEGM_BEZIER, 2, yyvsp[-1].l, NULL, -1, -1, 0., 1., NULL, NULL, NULL); @@ -6112,7 +6109,7 @@ case 242: ; break;} case 243: -#line 1687 "Gmsh.y" +#line 1684 "Gmsh.y" { List_T *Temp; int i; @@ -6136,7 +6133,7 @@ case 243: ; break;} case 244: -#line 1712 "Gmsh.y" +#line 1709 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_SURF_PLAN, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_SURF_PLAN; @@ -6144,7 +6141,7 @@ case 244: ; break;} case 245: -#line 1718 "Gmsh.y" +#line 1715 "Gmsh.y" { Surface *s,*support; support = FindSurface((int)yyvsp[-4].d, THEM); @@ -6165,7 +6162,7 @@ case 245: ; break;} case 246: -#line 1737 "Gmsh.y" +#line 1734 "Gmsh.y" { List_Read(yyvsp[-1].l, 0, &d); i = (int)d; @@ -6188,28 +6185,28 @@ case 246: ; break;} case 247: -#line 1759 "Gmsh.y" +#line 1756 "Gmsh.y" { AddTriangulationToSurface ((int) yyvsp[-10].d, (int) yyvsp[-6].d, (int) yyvsp[-4].d, yyvsp[-2].l, yyvsp[-1].l); yyval.s.Num = (int)yyvsp[-10].d; ; break;} case 248: -#line 1767 "Gmsh.y" +#line 1764 "Gmsh.y" { - CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); + CreateNurbsSurface ((int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); yyval.s.Type = MSH_SURF_NURBS; yyval.s.Num = (int)yyvsp[-16].d; ; break;} case 249: -#line 1775 "Gmsh.y" +#line 1772 "Gmsh.y" { CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); ; break;} case 250: -#line 1779 "Gmsh.y" +#line 1776 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_PHYSICAL_SURFACE, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_PHYSICAL_SURFACE; @@ -6217,7 +6214,7 @@ case 250: ; break;} case 251: -#line 1785 "Gmsh.y" +#line 1782 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_SURF_LOOP, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_SURF_LOOP; @@ -6225,7 +6222,7 @@ case 251: ; break;} case 252: -#line 1794 "Gmsh.y" +#line 1791 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_VOLUME, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_VOLUME; @@ -6233,7 +6230,7 @@ case 252: ; break;} case 253: -#line 1800 "Gmsh.y" +#line 1797 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_VOLUME, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_VOLUME; @@ -6241,7 +6238,7 @@ case 253: ; break;} case 254: -#line 1806 "Gmsh.y" +#line 1803 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d, MSH_PHYSICAL_VOLUME, 0, 0, 0, 0, 0, NULL, yyvsp[-1].l, NULL); yyval.s.Type = MSH_PHYSICAL_VOLUME; @@ -6249,59 +6246,59 @@ case 254: ; break;} case 255: -#line 1817 "Gmsh.y" +#line 1814 "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 256: -#line 1822 "Gmsh.y" +#line 1819 "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 257: -#line 1827 "Gmsh.y" +#line 1824 "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 258: -#line 1832 "Gmsh.y" +#line 1829 "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 259: -#line 1839 "Gmsh.y" +#line 1836 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 260: -#line 1840 "Gmsh.y" +#line 1837 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 261: -#line 1841 "Gmsh.y" +#line 1838 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 262: -#line 1846 "Gmsh.y" +#line 1843 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} case 263: -#line 1850 "Gmsh.y" +#line 1847 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} case 264: -#line 1854 "Gmsh.y" +#line 1851 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-2].l); i++){ List_Read(yyvsp[-2].l, i, &d); @@ -6317,7 +6314,7 @@ case 264: ; break;} case 265: -#line 1868 "Gmsh.y" +#line 1865 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-2].l); i++){ List_Read(yyvsp[-2].l, i, &d); @@ -6333,7 +6330,7 @@ case 265: ; break;} case 266: -#line 1882 "Gmsh.y" +#line 1879 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-2].l); i++){ List_Read(yyvsp[-2].l, i, &d); @@ -6349,7 +6346,7 @@ case 266: ; break;} case 267: -#line 1901 "Gmsh.y" +#line 1898 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -6361,14 +6358,14 @@ case 267: ; break;} case 268: -#line 1911 "Gmsh.y" +#line 1908 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) DuplicateView((int)yyvsp[-2].d, 0); yyval.l = NULL; ; break;} case 269: -#line 1922 "Gmsh.y" +#line 1919 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-1].l); i++){ List_Read (yyvsp[-1].l, i, &TheShape); @@ -6377,19 +6374,19 @@ case 269: ; break;} case 270: -#line 1929 "Gmsh.y" +#line 1926 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) RemoveViewByIndex((int)yyvsp[-2].d); ; break;} case 271: -#line 1933 "Gmsh.y" +#line 1930 "Gmsh.y" { Init_Mesh(THEM, 1); ; break;} case 272: -#line 1942 "Gmsh.y" +#line 1939 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[-1].l); i++){ List_Read (yyvsp[-1].l, i, &TheShape); @@ -6398,32 +6395,11 @@ case 272: ; break;} case 273: -#line 1954 "Gmsh.y" +#line 1951 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ FixRelativePath(yyvsp[-1].c, tmpstring); - yyinTab[RecursionLevel++] = yyin; - if((yyin = fopen(tmpstring,"r"))){ - Msg(INFO, "Including '%s'", tmpstring); - strcpy(yynameTab[RecursionLevel-1], yyname); - yylinenoTab[RecursionLevel-1] = yylineno; - yylineno = 1; - strcpy(yyname, tmpstring); - while(!feof(yyin)){ - yyparse(); - } - // warning, warning... If we close the stream, we cannot - // call a Function defined in another file... So we just - // leave it open (arghhh) - //fclose(yyin); - yyin = yyinTab[--RecursionLevel]; - strcpy(yyname, yynameTab[RecursionLevel]); - yylineno = yylinenoTab[RecursionLevel]; - } - else{ - yymsg(GERROR, "Unknown file '%s'", tmpstring) ; - yyin = yyinTab[--RecursionLevel]; - } + ParseFile(tmpstring, 0, 0); } else if(!strcmp(yyvsp[-2].c, "Print")){ #if defined(HAVE_FLTK) @@ -6440,22 +6416,16 @@ case 273: #endif } else if(!strcmp(yyvsp[-2].c, "Merge")){ - FILE *ff = yyin; FixRelativePath(yyvsp[-1].c, tmpstring); MergeProblem(tmpstring); - yyin = ff; } else if(!strcmp(yyvsp[-2].c, "MergeWithBoundingBox")){ - FILE *ff = yyin; FixRelativePath(yyvsp[-1].c, tmpstring); MergeProblemWithBoundingBox(tmpstring); - yyin = ff; } else if(!strcmp(yyvsp[-2].c, "Open")){ - FILE *ff = yyin; FixRelativePath(yyvsp[-1].c, tmpstring); OpenProblem(tmpstring); - yyin = ff; } else if(!strcmp(yyvsp[-2].c, "System")){ SystemCall(yyvsp[-1].c); @@ -6466,7 +6436,7 @@ case 273: ; break;} case 274: -#line 2020 "Gmsh.y" +#line 1990 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View *v = (Post_View *)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -6481,7 +6451,7 @@ case 274: ; break;} case 275: -#line 2033 "Gmsh.y" +#line 2003 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ long sleep_time = GetTime(); @@ -6500,20 +6470,20 @@ case 275: ; break;} case 276: -#line 2050 "Gmsh.y" +#line 2020 "Gmsh.y" { if(CTX.default_plugins) GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); ; break;} case 277: -#line 2055 "Gmsh.y" +#line 2025 "Gmsh.y" { exit(0); ; break;} case 278: -#line 2059 "Gmsh.y" +#line 2029 "Gmsh.y" { #if defined(HAVE_FLTK) if(!CTX.batch){ // we're in interactive mode @@ -6531,31 +6501,31 @@ case 278: ; break;} case 279: -#line 2081 "Gmsh.y" +#line 2051 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; ; break;} case 280: -#line 2091 "Gmsh.y" +#line 2061 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; ; break;} case 281: -#line 2101 "Gmsh.y" +#line 2071 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; @@ -6572,13 +6542,13 @@ case 281: List_Write(pSymbol->val, 0, &yyvsp[-3].d); } - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; ; break;} case 282: -#line 2122 "Gmsh.y" +#line 2092 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; @@ -6595,13 +6565,13 @@ case 282: List_Write(pSymbol->val, 0, &yyvsp[-5].d); } - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; ; break;} case 283: -#line 2143 "Gmsh.y" +#line 2113 "Gmsh.y" { if(LoopControlVariablesTab[ImbricatedLoop-1][1] > LoopControlVariablesTab[ImbricatedLoop-1][0]){ @@ -6615,7 +6585,7 @@ case 283: LoopControlVariablesTab[ImbricatedLoop-1][2] ; } - fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); + fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); yylineno = yylinenoImbricatedLoopsTab[ImbricatedLoop-1]; } else{ @@ -6624,7 +6594,7 @@ case 283: ; break;} case 284: -#line 2164 "Gmsh.y" +#line 2134 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -6632,32 +6602,32 @@ case 284: ; break;} case 285: -#line 2170 "Gmsh.y" +#line 2140 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} case 286: -#line 2175 "Gmsh.y" +#line 2145 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); ; break;} case 287: -#line 2180 "Gmsh.y" +#line 2150 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} case 288: -#line 2184 "Gmsh.y" +#line 2154 "Gmsh.y" { ; break;} case 289: -#line 2195 "Gmsh.y" +#line 2165 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], @@ -6669,7 +6639,7 @@ case 289: ; break;} case 290: -#line 2205 "Gmsh.y" +#line 2175 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(ROTATE, (int)yyvsp[-8].d, 0., 0., 0., @@ -6681,7 +6651,7 @@ case 290: ; break;} case 291: -#line 2215 "Gmsh.y" +#line 2185 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], @@ -6693,14 +6663,14 @@ case 291: ; break;} case 292: -#line 2225 "Gmsh.y" +#line 2195 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 293: -#line 2230 "Gmsh.y" +#line 2200 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], @@ -6712,14 +6682,14 @@ case 293: ; break;} case 294: -#line 2240 "Gmsh.y" +#line 2210 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 295: -#line 2245 "Gmsh.y" +#line 2215 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(ROTATE, (int)yyvsp[-12].d, 0., 0., 0., @@ -6731,14 +6701,14 @@ case 295: ; break;} case 296: -#line 2255 "Gmsh.y" +#line 2225 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 297: -#line 2260 "Gmsh.y" +#line 2230 "Gmsh.y" { Curve *pc, *prc; TheShape.Num = Extrude_ProtudePoint(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2], @@ -6750,7 +6720,7 @@ case 297: ; break;} case 298: -#line 2272 "Gmsh.y" +#line 2242 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], @@ -6769,7 +6739,7 @@ case 298: ; break;} case 299: -#line 2289 "Gmsh.y" +#line 2259 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(ROTATE, (int)yyvsp[-8].d, 0., 0., 0., @@ -6788,7 +6758,7 @@ case 299: ; break;} case 300: -#line 2306 "Gmsh.y" +#line 2276 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], @@ -6807,14 +6777,14 @@ case 300: ; break;} case 301: -#line 2323 "Gmsh.y" +#line 2293 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 302: -#line 2328 "Gmsh.y" +#line 2298 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], @@ -6833,14 +6803,14 @@ case 302: ; break;} case 303: -#line 2345 "Gmsh.y" +#line 2315 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 304: -#line 2350 "Gmsh.y" +#line 2320 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(ROTATE, (int)yyvsp[-12].d, 0., 0., 0., @@ -6859,14 +6829,14 @@ case 304: ; break;} case 305: -#line 2367 "Gmsh.y" +#line 2337 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 306: -#line 2372 "Gmsh.y" +#line 2342 "Gmsh.y" { Surface *ps; TheShape.Num = Extrude_ProtudeCurve(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2], @@ -6885,7 +6855,7 @@ case 306: ; break;} case 307: -#line 2392 "Gmsh.y" +#line 2362 "Gmsh.y" { TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], 0., 0., 0., 0., 0., 0., 0., @@ -6903,7 +6873,7 @@ case 307: ; break;} case 308: -#line 2408 "Gmsh.y" +#line 2378 "Gmsh.y" { TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-8].d, 0., 0., 0., yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].v[0], yyvsp[-4].v[1], yyvsp[-4].v[2], yyvsp[-2].d, @@ -6921,7 +6891,7 @@ case 308: ; break;} case 309: -#line 2424 "Gmsh.y" +#line 2394 "Gmsh.y" { TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-10].d, 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].v[0], yyvsp[-4].v[1], yyvsp[-4].v[2], yyvsp[-2].d, @@ -6939,14 +6909,14 @@ case 309: ; break;} case 310: -#line 2440 "Gmsh.y" +#line 2410 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 311: -#line 2445 "Gmsh.y" +#line 2415 "Gmsh.y" { int vol = NEWREG(); TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], @@ -6965,14 +6935,14 @@ case 311: ; break;} case 312: -#line 2462 "Gmsh.y" +#line 2432 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 313: -#line 2468 "Gmsh.y" +#line 2438 "Gmsh.y" { int vol = NEWREG(); TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-12].d, 0., 0., 0., @@ -6991,14 +6961,14 @@ case 313: ; break;} case 314: -#line 2485 "Gmsh.y" +#line 2455 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} case 315: -#line 2491 "Gmsh.y" +#line 2461 "Gmsh.y" { int vol = NEWREG(); TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2], @@ -7017,17 +6987,17 @@ case 315: ; break;} case 316: -#line 2511 "Gmsh.y" +#line 2481 "Gmsh.y" { ; break;} case 317: -#line 2514 "Gmsh.y" +#line 2484 "Gmsh.y" { ; break;} case 318: -#line 2520 "Gmsh.y" +#line 2490 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -7055,7 +7025,7 @@ case 318: ; break;} case 319: -#line 2546 "Gmsh.y" +#line 2516 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -7081,13 +7051,13 @@ case 319: ; break;} case 320: -#line 2570 "Gmsh.y" +#line 2540 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} case 321: -#line 2579 "Gmsh.y" +#line 2549 "Gmsh.y" { Curve *c; for(i = 0; i < List_Nbr(yyvsp[-3].l); i++){ @@ -7107,7 +7077,7 @@ case 321: ; break;} case 322: -#line 2597 "Gmsh.y" +#line 2567 "Gmsh.y" { Curve *c; for(i = 0; i < List_Nbr(yyvsp[-6].l); i++){ @@ -7127,7 +7097,7 @@ case 322: ; break;} case 323: -#line 2615 "Gmsh.y" +#line 2585 "Gmsh.y" { Curve *c; for(i = 0; i < List_Nbr(yyvsp[-6].l); i++){ @@ -7147,7 +7117,7 @@ case 323: ; break;} case 324: -#line 2633 "Gmsh.y" +#line 2603 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -7171,7 +7141,7 @@ case 324: ; break;} case 325: -#line 2655 "Gmsh.y" +#line 2625 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -7194,7 +7164,7 @@ case 325: ; break;} case 326: -#line 2676 "Gmsh.y" +#line 2646 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d, THEM); if(!v) @@ -7217,7 +7187,7 @@ case 326: ; break;} case 327: -#line 2697 "Gmsh.y" +#line 2667 "Gmsh.y" { Surface *s; for(i = 0; i < List_Nbr(yyvsp[-3].l); i++){ @@ -7233,7 +7203,7 @@ case 327: ; break;} case 328: -#line 2711 "Gmsh.y" +#line 2681 "Gmsh.y" { Surface *s; for(i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -7249,71 +7219,71 @@ case 328: ; break;} case 329: -#line 2731 "Gmsh.y" +#line 2701 "Gmsh.y" { ReplaceAllDuplicates(THEM); ; break;} case 330: -#line 2735 "Gmsh.y" +#line 2705 "Gmsh.y" { IntersectAllSegmentsTogether(); ; break;} case 331: -#line 2744 "Gmsh.y" +#line 2714 "Gmsh.y" {yyval.i = 1;; break;} case 332: -#line 2745 "Gmsh.y" +#line 2715 "Gmsh.y" {yyval.i = 0;; break;} case 333: -#line 2746 "Gmsh.y" +#line 2716 "Gmsh.y" {yyval.i = -1;; break;} case 334: -#line 2747 "Gmsh.y" +#line 2717 "Gmsh.y" {yyval.i = -1;; break;} case 335: -#line 2748 "Gmsh.y" +#line 2718 "Gmsh.y" {yyval.i = -1;; break;} case 336: -#line 2752 "Gmsh.y" +#line 2722 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 337: -#line 2753 "Gmsh.y" +#line 2723 "Gmsh.y" { yyval.d = yyvsp[-1].d ; ; break;} case 338: -#line 2754 "Gmsh.y" +#line 2724 "Gmsh.y" { yyval.d = -yyvsp[0].d ; ; break;} case 339: -#line 2755 "Gmsh.y" +#line 2725 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 340: -#line 2756 "Gmsh.y" +#line 2726 "Gmsh.y" { yyval.d = !yyvsp[0].d ; ; break;} case 341: -#line 2757 "Gmsh.y" +#line 2727 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} case 342: -#line 2758 "Gmsh.y" +#line 2728 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} case 343: -#line 2759 "Gmsh.y" +#line 2729 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} case 344: -#line 2761 "Gmsh.y" +#line 2731 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -7322,235 +7292,235 @@ case 344: ; break;} case 345: -#line 2767 "Gmsh.y" +#line 2737 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} case 346: -#line 2768 "Gmsh.y" +#line 2738 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d) ; ; break;} case 347: -#line 2769 "Gmsh.y" +#line 2739 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} case 348: -#line 2770 "Gmsh.y" +#line 2740 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} case 349: -#line 2771 "Gmsh.y" +#line 2741 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} case 350: -#line 2772 "Gmsh.y" +#line 2742 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} case 351: -#line 2773 "Gmsh.y" +#line 2743 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} case 352: -#line 2774 "Gmsh.y" +#line 2744 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} case 353: -#line 2775 "Gmsh.y" +#line 2745 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} case 354: -#line 2776 "Gmsh.y" +#line 2746 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} case 355: -#line 2777 "Gmsh.y" +#line 2747 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ; break;} case 356: -#line 2778 "Gmsh.y" +#line 2748 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 357: -#line 2779 "Gmsh.y" +#line 2749 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 358: -#line 2780 "Gmsh.y" +#line 2750 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 359: -#line 2781 "Gmsh.y" +#line 2751 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 360: -#line 2782 "Gmsh.y" +#line 2752 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 361: -#line 2783 "Gmsh.y" +#line 2753 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 362: -#line 2784 "Gmsh.y" +#line 2754 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 363: -#line 2785 "Gmsh.y" +#line 2755 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 364: -#line 2786 "Gmsh.y" +#line 2756 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 365: -#line 2787 "Gmsh.y" +#line 2757 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 366: -#line 2788 "Gmsh.y" +#line 2758 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 367: -#line 2789 "Gmsh.y" +#line 2759 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 368: -#line 2790 "Gmsh.y" +#line 2760 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 369: -#line 2791 "Gmsh.y" +#line 2761 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 370: -#line 2792 "Gmsh.y" +#line 2762 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 371: -#line 2793 "Gmsh.y" +#line 2763 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 372: -#line 2794 "Gmsh.y" +#line 2764 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 373: -#line 2795 "Gmsh.y" +#line 2765 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 374: -#line 2796 "Gmsh.y" +#line 2766 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 375: -#line 2797 "Gmsh.y" +#line 2767 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 376: -#line 2798 "Gmsh.y" +#line 2768 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 377: -#line 2800 "Gmsh.y" +#line 2770 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} case 378: -#line 2801 "Gmsh.y" +#line 2771 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} case 379: -#line 2802 "Gmsh.y" +#line 2772 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} case 380: -#line 2803 "Gmsh.y" +#line 2773 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} case 381: -#line 2804 "Gmsh.y" +#line 2774 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} case 382: -#line 2805 "Gmsh.y" +#line 2775 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} case 383: -#line 2806 "Gmsh.y" +#line 2776 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} case 384: -#line 2807 "Gmsh.y" +#line 2777 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} case 385: -#line 2808 "Gmsh.y" +#line 2778 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} case 386: -#line 2809 "Gmsh.y" +#line 2779 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} case 387: -#line 2810 "Gmsh.y" +#line 2780 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 388: -#line 2811 "Gmsh.y" +#line 2781 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} case 389: -#line 2812 "Gmsh.y" +#line 2782 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} case 390: -#line 2813 "Gmsh.y" +#line 2783 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} case 391: -#line 2814 "Gmsh.y" +#line 2784 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} case 392: -#line 2815 "Gmsh.y" +#line 2785 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} case 393: -#line 2816 "Gmsh.y" +#line 2786 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} case 394: -#line 2817 "Gmsh.y" +#line 2787 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 395: -#line 2818 "Gmsh.y" +#line 2788 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 396: -#line 2819 "Gmsh.y" +#line 2789 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 397: -#line 2820 "Gmsh.y" +#line 2790 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 398: -#line 2829 "Gmsh.y" +#line 2799 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} case 399: -#line 2830 "Gmsh.y" +#line 2800 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} case 400: -#line 2831 "Gmsh.y" +#line 2801 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} case 401: -#line 2832 "Gmsh.y" +#line 2802 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} case 402: -#line 2837 "Gmsh.y" +#line 2807 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { @@ -7562,7 +7532,7 @@ case 402: ; break;} case 403: -#line 2848 "Gmsh.y" +#line 2818 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { @@ -7580,7 +7550,7 @@ case 403: ; break;} case 404: -#line 2865 "Gmsh.y" +#line 2835 "Gmsh.y" { TheSymbol.Name = yyvsp[-1].c ; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { @@ -7592,7 +7562,7 @@ case 404: ; break;} case 405: -#line 2876 "Gmsh.y" +#line 2846 "Gmsh.y" { TheSymbol.Name = yyvsp[-4].c ; if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { @@ -7610,7 +7580,7 @@ case 405: ; break;} case 406: -#line 2895 "Gmsh.y" +#line 2865 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){ yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-2].c); @@ -7627,7 +7597,7 @@ case 406: ; break;} case 407: -#line 2911 "Gmsh.y" +#line 2881 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){ yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c); @@ -7644,7 +7614,7 @@ case 407: ; break;} case 408: -#line 2927 "Gmsh.y" +#line 2897 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){ yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-3].c); @@ -7661,7 +7631,7 @@ case 408: ; break;} case 409: -#line 2943 "Gmsh.y" +#line 2913 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){ yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-6].c); @@ -7678,130 +7648,130 @@ case 409: ; break;} case 410: -#line 2961 "Gmsh.y" +#line 2931 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ; ; break;} case 411: -#line 2965 "Gmsh.y" +#line 2935 "Gmsh.y" { for(i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i] ; ; break;} case 412: -#line 2969 "Gmsh.y" +#line 2939 "Gmsh.y" { for(i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} case 413: -#line 2973 "Gmsh.y" +#line 2943 "Gmsh.y" { for(i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ; ; break;} case 414: -#line 2977 "Gmsh.y" +#line 2947 "Gmsh.y" { for(i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ; ; break;} case 415: -#line 2984 "Gmsh.y" +#line 2954 "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 416: -#line 2988 "Gmsh.y" +#line 2958 "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 417: -#line 2992 "Gmsh.y" +#line 2962 "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 418: -#line 2996 "Gmsh.y" +#line 2966 "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 419: -#line 3003 "Gmsh.y" +#line 2973 "Gmsh.y" { ; break;} case 420: -#line 3006 "Gmsh.y" +#line 2976 "Gmsh.y" { ; break;} case 421: -#line 3012 "Gmsh.y" +#line 2982 "Gmsh.y" { ; break;} case 422: -#line 3015 "Gmsh.y" +#line 2985 "Gmsh.y" { ; break;} case 423: -#line 3021 "Gmsh.y" +#line 2991 "Gmsh.y" { ; break;} case 424: -#line 3024 "Gmsh.y" +#line 2994 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 425: -#line 3028 "Gmsh.y" +#line 2998 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 426: -#line 3035 "Gmsh.y" +#line 3005 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)) ; List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 427: -#line 3040 "Gmsh.y" +#line 3010 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)) ; ; break;} case 428: -#line 3048 "Gmsh.y" +#line 3018 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 429: -#line 3053 "Gmsh.y" +#line 3023 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 430: -#line 3057 "Gmsh.y" +#line 3027 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 431: -#line 3061 "Gmsh.y" +#line 3031 "Gmsh.y" { yyval.l = yyvsp[-1].l; for(i = 0; i < List_Nbr(yyval.l); i++){ @@ -7811,7 +7781,7 @@ case 431: ; break;} case 432: -#line 3072 "Gmsh.y" +#line 3042 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; for(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.)) @@ -7819,7 +7789,7 @@ case 432: ; break;} case 433: -#line 3078 "Gmsh.y" +#line 3048 "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)){ @@ -7832,7 +7802,7 @@ case 433: ; break;} case 434: -#line 3089 "Gmsh.y" +#line 3059 "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 @@ -7854,7 +7824,7 @@ case 434: ; break;} case 435: -#line 3109 "Gmsh.y" +#line 3079 "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++){ @@ -7865,7 +7835,7 @@ case 435: ; break;} case 436: -#line 3118 "Gmsh.y" +#line 3088 "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++){ @@ -7876,7 +7846,7 @@ case 436: ; break;} case 437: -#line 3127 "Gmsh.y" +#line 3097 "Gmsh.y" { // FIXME: The syntax for this is ugly: we get double semi-colons // at the end of the line @@ -7889,7 +7859,7 @@ case 437: ; break;} case 438: -#line 3138 "Gmsh.y" +#line 3108 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -7905,7 +7875,7 @@ case 438: ; break;} case 439: -#line 3152 "Gmsh.y" +#line 3122 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; TheSymbol.Name = yyvsp[-2].c ; @@ -7923,7 +7893,7 @@ case 439: ; break;} case 440: -#line 3168 "Gmsh.y" +#line 3138 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -7945,7 +7915,7 @@ case 440: ; break;} case 441: -#line 3188 "Gmsh.y" +#line 3158 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; TheSymbol.Name = yyvsp[-5].c ; @@ -7969,26 +7939,26 @@ case 441: ; break;} case 442: -#line 3213 "Gmsh.y" +#line 3183 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)) ; List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 443: -#line 3218 "Gmsh.y" +#line 3188 "Gmsh.y" { yyval.l = yyvsp[0].l ; ; break;} case 444: -#line 3222 "Gmsh.y" +#line 3192 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)) ; ; break;} case 445: -#line 3226 "Gmsh.y" +#line 3196 "Gmsh.y" { for(i = 0; i < List_Nbr(yyvsp[0].l); i++){ List_Read(yyvsp[0].l, i, &d) ; @@ -7998,26 +7968,26 @@ case 445: ; break;} case 446: -#line 3238 "Gmsh.y" +#line 3208 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} case 447: -#line 3242 "Gmsh.y" +#line 3212 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} case 448: -#line 3253 "Gmsh.y" +#line 3223 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) yymsg(GERROR, "Unknown color '%s'", yyvsp[0].c); ; break;} case 449: -#line 3258 "Gmsh.y" +#line 3228 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){ yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-4].c); @@ -8035,13 +8005,13 @@ case 449: ; break;} case 450: -#line 3277 "Gmsh.y" +#line 3247 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 451: -#line 3281 "Gmsh.y" +#line 3251 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)) ; GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -8054,26 +8024,26 @@ case 451: ; break;} case 452: -#line 3295 "Gmsh.y" +#line 3265 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)) ; List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 453: -#line 3300 "Gmsh.y" +#line 3270 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)) ; ; break;} case 454: -#line 3307 "Gmsh.y" +#line 3277 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} case 455: -#line 3311 "Gmsh.y" +#line 3281 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)) ; strcpy(yyval.c, yyvsp[-3].c) ; @@ -8083,7 +8053,7 @@ case 455: ; break;} case 456: -#line 3319 "Gmsh.y" +#line 3289 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)) ; for(i = strlen(yyvsp[-1].c)-1; i >= 0; i--){ @@ -8098,13 +8068,13 @@ case 456: ; break;} case 457: -#line 3332 "Gmsh.y" +#line 3302 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} case 458: -#line 3336 "Gmsh.y" +#line 3306 "Gmsh.y" { i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); if(i < 0){ @@ -8124,7 +8094,7 @@ case 458: ; break;} case 459: -#line 3354 "Gmsh.y" +#line 3324 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-3].c))) yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-3].c); @@ -8140,7 +8110,7 @@ case 459: ; break;} case 460: -#line 3368 "Gmsh.y" +#line 3338 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-6].c))) yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-6].c); @@ -8377,7 +8347,7 @@ yyerrhandle: } return 1; } -#line 3383 "Gmsh.y" +#line 3353 "Gmsh.y" void DeleteSymbol(void *a, void *b){ @@ -8433,11 +8403,11 @@ int PrintListOfDouble(char *format, List_T *list, char *buffer){ void FixRelativePath(char *in, char *out){ if(in[0] == '/' || in[0] == '\\' || (strlen(in)>2 && in[1] == ':')){ - // do nothing: "in" is an absolute path + // do nothing: 'in' is an absolute path strcpy(out, in); } else{ - // append "in" to the path of the parent file + // append 'in' to the path of the parent file strcpy(out, yyname); int i = strlen(out)-1 ; while(i >= 0 && yyname[i] != '/' && yyname[i] != '\\') i-- ; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index c3ac9e9c48836ab62ca587dab16e53b57d7d46ee..237577d314714a5a2963d0b702d5ab6f04a4a392 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.147 2003-11-26 16:35:48 geuzaine Exp $ +// $Id: Gmsh.y,v 1.148 2003-11-27 02:33:34 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -50,13 +50,10 @@ Tree_T *Symbol_T = NULL; extern Context_T CTX; extern Mesh *THEM; -static FILE *yyinTab[MAX_OPEN_FILES]; -static int yylinenoTab[MAX_OPEN_FILES]; static fpos_t yyposImbricatedLoopsTab[MAX_OPEN_FILES]; static int yylinenoImbricatedLoopsTab[MAX_OPEN_FILES]; static double LoopControlVariablesTab[MAX_OPEN_FILES][3]; static char *LoopControlVariablesNameTab[MAX_OPEN_FILES]; -static char yynameTab[MAX_OPEN_FILES][256]; static char tmpstring[1024]; static Symbol TheSymbol, *pSymbol; static Surface *STL_Surf; @@ -198,9 +195,9 @@ STLFormatItem : tEndLoop tEndFacet { - STL_Surf->STL->Add_Facet( $9, $10, $11, - $13, $14, $15, - $17, $18, $19); + STL_Surf->STL->Add_Facet($9, $10, $11, + $13, $14, $15, + $17, $18, $19); return 1; } | tEndSolid @@ -311,7 +308,7 @@ StepDataItem : | tDOUBLE tAFFECT tAXIS2_PLACEMENT_3D '(' tBIGSTR ',' tDOUBLE ',' tDOUBLE ',' tDOUBLE ')' tEND { - Add_Axis2_Placement3D ( (int)$1, (int)$9, (int)$11, (int)$7); + Add_Axis2_Placement3D ((int)$1, (int)$9, (int)$11, (int)$7); } | tDOUBLE tAFFECT tDIRECTION '(' tBIGSTR ',' VExpr ')' tEND { @@ -1765,7 +1762,7 @@ Shape : ListOfListOfDouble tKnots '{' ListOfDouble ',' ListOfDouble '}' tOrder '{' FExpr ',' FExpr '}' tEND { - CreateNurbsSurface ( (int) $6 , (int)$18 , (int)$20 , $9, $12, $14); + CreateNurbsSurface ((int) $6 , (int)$18 , (int)$20 , $9, $12, $14); $$.Type = MSH_SURF_NURBS; $$.Num = (int)$6; } @@ -1954,28 +1951,7 @@ Command : { if(!strcmp($1, "Include")){ FixRelativePath($2, tmpstring); - yyinTab[RecursionLevel++] = yyin; - if((yyin = fopen(tmpstring,"r"))){ - Msg(INFO, "Including '%s'", tmpstring); - strcpy(yynameTab[RecursionLevel-1], yyname); - yylinenoTab[RecursionLevel-1] = yylineno; - yylineno = 1; - strcpy(yyname, tmpstring); - while(!feof(yyin)){ - yyparse(); - } - // warning, warning... If we close the stream, we cannot - // call a Function defined in another file... So we just - // leave it open (arghhh) - //fclose(yyin); - yyin = yyinTab[--RecursionLevel]; - strcpy(yyname, yynameTab[RecursionLevel]); - yylineno = yylinenoTab[RecursionLevel]; - } - else{ - yymsg(GERROR, "Unknown file '%s'", tmpstring) ; - yyin = yyinTab[--RecursionLevel]; - } + ParseFile(tmpstring, 0, 0); } else if(!strcmp($1, "Print")){ #if defined(HAVE_FLTK) @@ -1992,22 +1968,16 @@ Command : #endif } else if(!strcmp($1, "Merge")){ - FILE *ff = yyin; FixRelativePath($2, tmpstring); MergeProblem(tmpstring); - yyin = ff; } else if(!strcmp($1, "MergeWithBoundingBox")){ - FILE *ff = yyin; FixRelativePath($2, tmpstring); MergeProblemWithBoundingBox(tmpstring); - yyin = ff; } else if(!strcmp($1, "Open")){ - FILE *ff = yyin; FixRelativePath($2, tmpstring); OpenProblem(tmpstring); - yyin = ff; } else if(!strcmp($1, "System")){ SystemCall($2); @@ -2083,7 +2053,7 @@ Loop : LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; } @@ -2093,7 +2063,7 @@ Loop : LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; LoopControlVariablesTab[ImbricatedLoop][2] = $7 ; LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; } @@ -2114,7 +2084,7 @@ Loop : List_Write(pSymbol->val, 0, &$5); } - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; } @@ -2135,7 +2105,7 @@ Loop : List_Write(pSymbol->val, 0, &$5); } - fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); + fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]); yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno; ImbricatedLoop++; } @@ -2153,7 +2123,7 @@ Loop : LoopControlVariablesTab[ImbricatedLoop-1][2] ; } - fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); + fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); yylineno = yylinenoImbricatedLoopsTab[ImbricatedLoop-1]; } else{ diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 78523fe792baf36ac9ab02fb0d801537950c7ef2..6ab8babc3b24823e8f12c6b7846761d89650f989 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.167 2003-11-26 16:35:48 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.168 2003-11-27 02:33:35 geuzaine Exp $ */ #define FLEX_SCANNER @@ -1013,7 +1013,7 @@ char *yytext; #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.167 2003-11-26 16:35:48 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.168 2003-11-27 02:33:35 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp index b703b94828bec8d61b0749b488250fd8d4544b3b..0eec0bf9c59f470c00d4df689a92f57e0be8d82e 100644 --- a/Parser/OpenFile.cpp +++ b/Parser/OpenFile.cpp @@ -1,4 +1,4 @@ -// $Id: OpenFile.cpp,v 1.44 2003-03-21 00:52:45 geuzaine Exp $ +// $Id: OpenFile.cpp,v 1.45 2003-11-27 02:33:35 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -42,76 +42,80 @@ extern GUI *WID; extern Mesh *THEM, M; extern Context_T CTX; -int ParseFile(char *f, int silent) +int ParseFile(char *f, int silent, int close) { - char String[256]; - int status; + char yyname_old[256], tmp[256]; + FILE *yyin_old, *fp; + int yylineno_old, yyerrorstate_old, status; + if(!(fp = fopen(f, "r"))){ + return 0; + } + + strncpy(yyname_old, yyname, 255); + yyin_old = yyin; + yyerrorstate_old = yyerrorstate; + yylineno_old = yylineno; + strncpy(yyname, f, 255); + yyin = fp; yyerrorstate = 0; yylineno = 1; - if(!(yyin = fopen(yyname, "r"))) - return 0; - if(!silent) - Msg(STATUS2, "Loading '%s'", yyname); + Msg(INFO, "Parsing file '%s'", yyname); fpos_t position; fgetpos(yyin, &position); - fgets(String, sizeof(String), yyin); + fgets(tmp, sizeof(tmp), yyin); fsetpos(yyin, &position); - if(!strncmp(String, "$PTS", 4) || - !strncmp(String, "$NO", 3) || !strncmp(String, "$ELM", 4)) { - if(THEM->status < 0) - mai3d(THEM, 0); - Read_Mesh(THEM, yyin, FORMAT_MSH); - status = THEM->status; - } - else if(!strncmp(String, "sms", 3)) { - if(THEM->status < 0) - mai3d(THEM, 0); - Read_Mesh(THEM, yyin, FORMAT_SMS); + while(!feof(yyin)) + yyparse(); + if(THEM) status = THEM->status; - } - else if(!strncmp(String, "$PostFormat", 11) || !strncmp(String, "$View", 5)) { - ReadView(yyin, yyname); + else status = 0; + + if(close) + fclose(yyin); + + if(!silent){ + Msg(INFO, "Parsed file '%s'", yyname); + Msg(STATUS2N, "Read '%s'", yyname); } - else { - while(!feof(yyin)) - yyparse(); - if(THEM) - status = THEM->status; - else - status = 0; - } - fclose(yyin); - if(!silent) - Msg(STATUS2, "Loaded '%s'", yyname); + strncpy(yyname, yyname_old, 255); + yyin = yyin_old; + yyerrorstate = yyerrorstate_old; + yylineno = yylineno_old; return status; } - void ParseString(char *str) { - FILE *f; + FILE *fp; if(!str) return; - if((f = fopen(CTX.tmp_filename, "w"))) { - fprintf(f, "%s\n", str); - fclose(f); - ParseFile(CTX.tmp_filename, 0); + if((fp = fopen(CTX.tmp_filename, "w"))) { + fprintf(fp, "%s\n", str); + fclose(fp); + ParseFile(CTX.tmp_filename, 0, 1); } } - int MergeProblem(char *name) { - char ext[5]; + char ext[5], tmp[256]; + int status; + FILE *fp; + + if(!(fp = fopen(name, "r"))){ + // don't issue an error: this is fine (the same as File->New in + // other programs) + return 0; + } if(strlen(name) > 4) { strncpy(ext, &name[strlen(name) - 4], 5); @@ -120,17 +124,48 @@ int MergeProblem(char *name) strcpy(ext, ""); } - // a image file is used as an input, we transform it onto - // a post pro file that could be used as a background mesh if(!strcmp(ext, ".ppm") || !strcmp(ext, ".pnm")) { + // An image file is used as an input, we transform it onto a post + // pro file that could be used as a background mesh. We should + // check the first bytes of the file instead of the extension to + // determine the file type. #if defined(HAVE_FLTK) read_pnm(name); #endif - return 1; + status = 0; } else { - return ParseFile(name, 0); + fpos_t position; + fgetpos(fp, &position); + fgets(tmp, sizeof(tmp), fp); + fsetpos(fp, &position); + + if(!strncmp(tmp, "$PTS", 4) || + !strncmp(tmp, "$NO", 3) || + !strncmp(tmp, "$ELM", 4)) { + if(THEM->status < 0) + mai3d(THEM, 0); + Read_Mesh(THEM, fp, name, FORMAT_MSH); + status = THEM->status; + } + else if(!strncmp(tmp, "sms", 3)) { + if(THEM->status < 0) + mai3d(THEM, 0); + Read_Mesh(THEM, fp, name, FORMAT_SMS); + status = THEM->status; + } + else if(!strncmp(tmp, "$PostFormat", 11) || + !strncmp(tmp, "$View", 5)) { + ReadView(fp, name); + status = 0; + } + else { + status = ParseFile(name, 0, 1); + } } + + fclose(fp); + return status; } void MergeProblemWithBoundingBox(char *name) @@ -190,13 +225,6 @@ void OpenProblem(char *name) !strcmp(ext, ".pos") || !strcmp(ext, ".POS")) { CTX.base_filename[strlen(name) - 4] = '\0'; } - /* Let's just remove this. It causes more confusion than anything - else, and entering the complete file name isn't such big a - deal. - else { - strcat(CTX.filename, ".geo"); - } - */ strncpy(THEM->name, CTX.base_filename, 255); diff --git a/Parser/OpenFile.h b/Parser/OpenFile.h index 2048920e4bbc8beea19e30b81f12339109d7b303..a803d20130555f3e6bd60e7cd9925292c573dc55 100644 --- a/Parser/OpenFile.h +++ b/Parser/OpenFile.h @@ -20,7 +20,7 @@ // // Please report all bugs and problems to "gmsh@geuz.org". -int ParseFile(char *filename, int silent); +int ParseFile(char *filename, int silent, int close); void ParseString(char *str); void OpenProblem(char *filename); int MergeProblem(char *filename); diff --git a/benchmarks/misc/loops_includes/a.geo b/benchmarks/misc/loops_includes/a.geo new file mode 100644 index 0000000000000000000000000000000000000000..3c0183ddc405dfddc5936b7846e50061ba6037af --- /dev/null +++ b/benchmarks/misc/loops_includes/a.geo @@ -0,0 +1,5 @@ +For i In {1:5} + For j In {1:3} + Include "b.geo"; + EndFor +EndFor diff --git a/benchmarks/misc/loops_includes/b.geo b/benchmarks/misc/loops_includes/b.geo new file mode 100644 index 0000000000000000000000000000000000000000..9cbc73a7b104b0203d4f09f4b9fcb02dba7bd6c0 --- /dev/null +++ b/benchmarks/misc/loops_includes/b.geo @@ -0,0 +1,4 @@ +For k In {1:2} + Printf("i=%g j=%g k=%g", i, j, k); + Include "c.geo"; +EndFor diff --git a/benchmarks/misc/loops_includes/c.geo b/benchmarks/misc/loops_includes/c.geo new file mode 100644 index 0000000000000000000000000000000000000000..5e1342af457273e30f7e0275606d98c7f03864c4 --- /dev/null +++ b/benchmarks/misc/loops_includes/c.geo @@ -0,0 +1,4 @@ + + +a === 2; +Printf("There should be a syntax error message at line 3 in file 'c.geo'");