diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp index 8341a60523fdcd0a5b9a77561aeabae54a6a8034..6350947338dc84e548f87508f2f73d94c3e041dd 100644 --- a/Common/GmshMessage.cpp +++ b/Common/GmshMessage.cpp @@ -1183,7 +1183,8 @@ void Msg::ImportPhysicalsAsOnelabRegions() #endif } -void Msg::RunOnelabClient(const std::string &name, const std::string &command) +void Msg::RunOnelabClient(const std::string &name, const std::string &exe, + const std::string &args) { #if defined(HAVE_ONELAB) && !defined(HAVE_ONELAB2) onelab::server::citer it = onelab::server::instance()->findClient(name); @@ -1192,7 +1193,7 @@ void Msg::RunOnelabClient(const std::string &name, const std::string &command) client = it->second; } else{ - if(command.empty()){ + if(exe.empty()){ Msg::Error("Unknown ONELAB client `%s'", name.c_str()); return; } @@ -1201,8 +1202,9 @@ void Msg::RunOnelabClient(const std::string &name, const std::string &command) o.setNeverChanged(true); onelab::server::instance()->set(o); #if defined(HAVE_FLTK) - Msg::Info("Creating new ONELAB client `%s' (%s)", name.c_str(), command.c_str()); - client = new gmshLocalNetworkClient(name, command); + Msg::Info("Creating new ONELAB client `%s' (%s %s)", name.c_str(), + exe.c_str(), args.c_str()); + client = new gmshLocalNetworkClient(name, exe, args); client->run(); #else Msg::Error("Cannot create ONELAB client without FLTK"); diff --git a/Common/GmshMessage.h b/Common/GmshMessage.h index 36d57a1ff8e59495d8f4e3a04ec9d33b8223705c..95ef97e4769aabb5dbfc040d331942ee3f0dcdf8 100644 --- a/Common/GmshMessage.h +++ b/Common/GmshMessage.h @@ -134,7 +134,8 @@ class Msg { std::map<std::string, std::vector<double> > &fopt, std::map<std::string, std::vector<std::string> > &copt); static void UndefineOnelabParameter(const std::string &name); - static void RunOnelabClient(const std::string &name, const std::string &command=""); + static void RunOnelabClient(const std::string &name, const std::string &exe="", + const std::string &args=""); static void ImportPhysicalsAsOnelabRegions(); }; diff --git a/Common/gmshLocalNetworkClient.cpp b/Common/gmshLocalNetworkClient.cpp index b34488a23bffdb248d2b869ac15c1d4cee4121b2..5cc0114628631f33efd3287711485ac52834ae1a 100644 --- a/Common/gmshLocalNetworkClient.cpp +++ b/Common/gmshLocalNetworkClient.cpp @@ -114,6 +114,7 @@ class onelabGmshServer : public GmshServer{ std::string exe = FixWindowsPath(_client->getExecutable()); std::string args; if(exe.size()){ + args.append(_client->getExtraArguments()); std::vector<std::string> cl = onelabUtils::getCommandLine(_client); for(unsigned int i = 0; i < cl.size(); i++) args.append(" " + cl[i]); @@ -368,10 +369,10 @@ bool gmshLocalNetworkClient::receiveMessage(gmshLocalNetworkClient *master) { std::string::size_type first = 0; std::string clientName = onelab::parameter::getNextToken(message, first); - std::string command = onelab::parameter::getNextToken(message, first); + std::string exe = onelab::parameter::getNextToken(message, first); if (!onelab::server::instance()->isRegistered(clientName)){ gmshLocalNetworkClient* subClient = - new gmshLocalNetworkClient(clientName, command); + new gmshLocalNetworkClient(clientName, exe); onelabGmshServer *server = new onelabGmshServer(subClient); subClient->setPid(0); int sock = server->LaunchClient(); @@ -824,7 +825,7 @@ void solver_batch_cb(void *data) onelab::server::instance()->set(n); // create client - onelab::localNetworkClient *c = new gmshLocalNetworkClient(name, exe, host); + onelab::localNetworkClient *c = new gmshLocalNetworkClient(name, exe, "", host); c->setIndex(num); onelab::string o(c->getName() + "/Action"); diff --git a/Common/gmshLocalNetworkClient.h b/Common/gmshLocalNetworkClient.h index 3dce8eda92b9040f7d331eb540d3bc6e1240a43e..cbda7159b9ac1e2b0b751d957b318ab819e97e1f 100644 --- a/Common/gmshLocalNetworkClient.h +++ b/Common/gmshLocalNetworkClient.h @@ -23,10 +23,12 @@ class gmshLocalNetworkClient : public onelab::localNetworkClient{ // client that launched this one (with GMSH_CONNECT); _father is zero for the // master client (the one created by Gmsh). gmshLocalNetworkClient *_father; + std::string _extraArguments; public: gmshLocalNetworkClient(const std::string &name, const std::string &executable, - const std::string &remoteLogin="") - : onelab::localNetworkClient(name, executable, remoteLogin), _father(0) + const std::string &args="", const std::string &remoteLogin="") + : onelab::localNetworkClient(name, executable, remoteLogin), _father(0), + _extraArguments(args) { addClient(this); } @@ -38,6 +40,7 @@ class gmshLocalNetworkClient : public onelab::localNetworkClient{ { return _father; } + std::string getExtraArguments(){ return _extraArguments; } void addClient(gmshLocalNetworkClient *client) { _clients.push_back(client); diff --git a/Common/onelab.h b/Common/onelab.h index 42e63d3c02798213a0f2852405146f233899e37f..a0bca8f58e7224b143043e1855fdb5319ed125a2 100644 --- a/Common/onelab.h +++ b/Common/onelab.h @@ -93,7 +93,7 @@ namespace onelab{ } else{ for(std::map<std::string, bool>::iterator it = _clients.begin(); - it != _clients.end(); it++) + it != _clients.end(); it++) it->second = changed; } } @@ -523,7 +523,7 @@ namespace onelab{ dst = encode(dst, (UInt16)_choices.size()); for(unsigned int i = 0; i < _choices.size(); i++) dst = encode(dst, _choices[i]); - + dst = encode(dst, (UInt16)_valueLabels.size()); for(std::map<double, std::string>::const_iterator it = _valueLabels.begin(); it != _valueLabels.end(); it++) { dst = encode(dst, it->first); @@ -1434,6 +1434,7 @@ namespace onelab{ void setPid(int pid){ _pid = pid; } GmshServer *getGmshServer(){ return _gmshServer; } void setGmshServer(GmshServer *server){ _gmshServer = server; } + virtual std::string getExtraArguments(){ return ""; } virtual bool run() = 0; virtual bool kill() = 0; }; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 55a9eca6a50bd0b6f0f87f6fe49acc61243f73b3..80620028ff78c89ea9bf13f87b76bbd12e2315c2 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1066,34 +1066,34 @@ static const yytype_uint16 yyrline[] = 1953, 1958, 1981, 1987, 1998, 1999, 2004, 2007, 2011, 2034, 2057, 2080, 2108, 2129, 2155, 2176, 2198, 2218, 2330, 2349, 2387, 2496, 2505, 2511, 2526, 2554, 2571, 2580, 2594, 2600, - 2606, 2615, 2624, 2633, 2647, 2703, 2728, 2745, 2760, 2779, - 2791, 2815, 2819, 2824, 2831, 2837, 2842, 2848, 2856, 2860, - 2864, 2869, 2924, 2937, 2954, 2971, 2992, 3013, 3048, 3056, - 3062, 3069, 3073, 3082, 3090, 3098, 3107, 3106, 3121, 3120, - 3135, 3134, 3149, 3148, 3162, 3169, 3176, 3183, 3190, 3197, - 3204, 3211, 3218, 3226, 3225, 3239, 3238, 3252, 3251, 3265, - 3264, 3278, 3277, 3291, 3290, 3304, 3303, 3317, 3316, 3330, - 3329, 3346, 3349, 3355, 3367, 3387, 3411, 3415, 3419, 3423, - 3427, 3433, 3439, 3443, 3447, 3451, 3455, 3474, 3487, 3490, - 3506, 3509, 3526, 3529, 3535, 3538, 3545, 3601, 3671, 3676, - 3743, 3779, 3787, 3830, 3869, 3889, 3916, 3956, 3984, 4012, - 4016, 4020, 4048, 4087, 4126, 4147, 4168, 4195, 4199, 4209, - 4244, 4245, 4246, 4250, 4256, 4268, 4286, 4314, 4315, 4316, - 4317, 4318, 4319, 4320, 4321, 4322, 4329, 4330, 4331, 4332, - 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, - 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, - 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4370, - 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4384, - 4383, 4391, 4408, 4426, 4444, 4449, 4455, 4467, 4484, 4502, - 4523, 4528, 4533, 4543, 4553, 4558, 4567, 4572, 4599, 4603, - 4607, 4611, 4615, 4622, 4626, 4630, 4634, 4641, 4646, 4653, - 4658, 4662, 4667, 4671, 4679, 4690, 4694, 4706, 4714, 4722, - 4729, 4739, 4768, 4772, 4776, 4780, 4784, 4813, 4842, 4871, - 4900, 4913, 4926, 4939, 4952, 4962, 4972, 4984, 4996, 5008, - 5026, 5047, 5052, 5056, 5060, 5072, 5076, 5088, 5095, 5105, - 5109, 5124, 5129, 5136, 5140, 5153, 5161, 5172, 5176, 5184, - 5190, 5198, 5206, 5221, 5235, 5249, 5261, 5277, 5281, 5301, - 5300, 5313, 5318, 5324, 5333, 5346, 5349 + 2606, 2615, 2624, 2633, 2647, 2703, 2722, 2739, 2754, 2773, + 2785, 2809, 2813, 2818, 2825, 2831, 2836, 2842, 2850, 2854, + 2858, 2863, 2918, 2931, 2948, 2965, 2986, 3007, 3042, 3050, + 3056, 3063, 3067, 3076, 3084, 3092, 3101, 3100, 3115, 3114, + 3129, 3128, 3143, 3142, 3156, 3163, 3170, 3177, 3184, 3191, + 3198, 3205, 3212, 3220, 3219, 3233, 3232, 3246, 3245, 3259, + 3258, 3272, 3271, 3285, 3284, 3298, 3297, 3311, 3310, 3324, + 3323, 3340, 3343, 3349, 3361, 3381, 3405, 3409, 3413, 3417, + 3421, 3427, 3433, 3437, 3441, 3445, 3449, 3468, 3481, 3484, + 3500, 3503, 3520, 3523, 3529, 3532, 3539, 3595, 3665, 3670, + 3737, 3773, 3781, 3824, 3863, 3883, 3910, 3950, 3978, 4006, + 4010, 4014, 4042, 4081, 4120, 4141, 4162, 4189, 4193, 4203, + 4238, 4239, 4240, 4244, 4250, 4262, 4280, 4308, 4309, 4310, + 4311, 4312, 4313, 4314, 4315, 4316, 4323, 4324, 4325, 4326, + 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, + 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, + 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4364, + 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4378, + 4377, 4385, 4402, 4420, 4438, 4443, 4449, 4461, 4478, 4496, + 4517, 4522, 4527, 4537, 4547, 4552, 4561, 4566, 4593, 4597, + 4601, 4605, 4609, 4616, 4620, 4624, 4628, 4635, 4640, 4647, + 4652, 4656, 4661, 4665, 4673, 4684, 4688, 4700, 4708, 4716, + 4723, 4733, 4762, 4766, 4770, 4774, 4778, 4807, 4836, 4865, + 4894, 4907, 4920, 4933, 4946, 4956, 4966, 4978, 4990, 5002, + 5020, 5041, 5046, 5050, 5054, 5066, 5070, 5082, 5089, 5099, + 5103, 5118, 5123, 5130, 5134, 5147, 5155, 5166, 5170, 5178, + 5184, 5192, 5200, 5215, 5229, 5243, 5255, 5271, 5275, 5295, + 5294, 5307, 5312, 5318, 5327, 5340, 5343 }; #endif @@ -7607,20 +7607,14 @@ yyreduce: #line 2704 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); - if(n != 1 && n != 2){ - yymsg(0, "OnelabRun takes one or two arguments"); + if(n < 1 || n > 3){ + yymsg(0, "OnelabRun takes from one to three arguments"); } else{ - char *s0; - List_Read((yyvsp[(3) - (5)].l), 0, &s0); - if(n == 2){ - char *s1; - List_Read((yyvsp[(3) - (5)].l), 1, &s1); - Msg::RunOnelabClient(s0, s1); - } - else{ - Msg::RunOnelabClient(s0); - } + char *s[3] = {"", "", ""}; + for(int i = 0; i < n; i++) + List_Read((yyvsp[(3) - (5)].l), i, &s[i]); + Msg::RunOnelabClient(s[0], s[1], s[2]); } for(int i = 0; i < n; i++){ char *s; @@ -7633,7 +7627,7 @@ yyreduce: case 206: /* Line 1787 of yacc.c */ -#line 2729 "Gmsh.y" +#line 2723 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -7654,7 +7648,7 @@ yyreduce: case 207: /* Line 1787 of yacc.c */ -#line 2746 "Gmsh.y" +#line 2740 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -7673,7 +7667,7 @@ yyreduce: case 208: /* Line 1787 of yacc.c */ -#line 2761 "Gmsh.y" +#line 2755 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -7696,7 +7690,7 @@ yyreduce: case 209: /* Line 1787 of yacc.c */ -#line 2780 "Gmsh.y" +#line 2774 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7712,7 +7706,7 @@ yyreduce: case 210: /* Line 1787 of yacc.c */ -#line 2792 "Gmsh.y" +#line 2786 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -7740,7 +7734,7 @@ yyreduce: case 211: /* Line 1787 of yacc.c */ -#line 2816 "Gmsh.y" +#line 2810 "Gmsh.y" { Msg::Exit(0); } @@ -7748,7 +7742,7 @@ yyreduce: case 212: /* Line 1787 of yacc.c */ -#line 2820 "Gmsh.y" +#line 2814 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; @@ -7757,7 +7751,7 @@ yyreduce: case 213: /* Line 1787 of yacc.c */ -#line 2825 "Gmsh.y" +#line 2819 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -7768,7 +7762,7 @@ yyreduce: case 214: /* Line 1787 of yacc.c */ -#line 2832 "Gmsh.y" +#line 2826 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -7778,7 +7772,7 @@ yyreduce: case 215: /* Line 1787 of yacc.c */ -#line 2838 "Gmsh.y" +#line 2832 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -7787,7 +7781,7 @@ yyreduce: case 216: /* Line 1787 of yacc.c */ -#line 2843 "Gmsh.y" +#line 2837 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -7797,7 +7791,7 @@ yyreduce: case 217: /* Line 1787 of yacc.c */ -#line 2849 "Gmsh.y" +#line 2843 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -7809,7 +7803,7 @@ yyreduce: case 218: /* Line 1787 of yacc.c */ -#line 2857 "Gmsh.y" +#line 2851 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); } @@ -7817,7 +7811,7 @@ yyreduce: case 219: /* Line 1787 of yacc.c */ -#line 2861 "Gmsh.y" +#line 2855 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); } @@ -7825,7 +7819,7 @@ yyreduce: case 220: /* Line 1787 of yacc.c */ -#line 2865 "Gmsh.y" +#line 2859 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); @@ -7834,7 +7828,7 @@ yyreduce: case 221: /* Line 1787 of yacc.c */ -#line 2871 "Gmsh.y" +#line 2865 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -7892,7 +7886,7 @@ yyreduce: case 222: /* Line 1787 of yacc.c */ -#line 2925 "Gmsh.y" +#line 2919 "Gmsh.y" { #if defined(HAVE_MESH) SetOrderN(GModel::current(), (yyvsp[(2) - (3)].d), CTX::instance()->mesh.secondOrderLinear, @@ -7904,7 +7898,7 @@ yyreduce: case 223: /* Line 1787 of yacc.c */ -#line 2938 "Gmsh.y" +#line 2932 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -7925,7 +7919,7 @@ yyreduce: case 224: /* Line 1787 of yacc.c */ -#line 2955 "Gmsh.y" +#line 2949 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -7946,7 +7940,7 @@ yyreduce: case 225: /* Line 1787 of yacc.c */ -#line 2972 "Gmsh.y" +#line 2966 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -7971,7 +7965,7 @@ yyreduce: case 226: /* Line 1787 of yacc.c */ -#line 2993 "Gmsh.y" +#line 2987 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -7996,7 +7990,7 @@ yyreduce: case 227: /* Line 1787 of yacc.c */ -#line 3014 "Gmsh.y" +#line 3008 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -8035,7 +8029,7 @@ yyreduce: case 228: /* Line 1787 of yacc.c */ -#line 3049 "Gmsh.y" +#line 3043 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -8047,7 +8041,7 @@ yyreduce: case 229: /* Line 1787 of yacc.c */ -#line 3057 "Gmsh.y" +#line 3051 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -8057,7 +8051,7 @@ yyreduce: case 230: /* Line 1787 of yacc.c */ -#line 3063 "Gmsh.y" +#line 3057 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -8068,7 +8062,7 @@ yyreduce: case 231: /* Line 1787 of yacc.c */ -#line 3070 "Gmsh.y" +#line 3064 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); } @@ -8076,14 +8070,14 @@ yyreduce: case 232: /* Line 1787 of yacc.c */ -#line 3074 "Gmsh.y" +#line 3068 "Gmsh.y" { } break; case 233: /* Line 1787 of yacc.c */ -#line 3083 "Gmsh.y" +#line 3077 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -8095,7 +8089,7 @@ yyreduce: case 234: /* Line 1787 of yacc.c */ -#line 3091 "Gmsh.y" +#line 3085 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -8107,7 +8101,7 @@ yyreduce: case 235: /* Line 1787 of yacc.c */ -#line 3099 "Gmsh.y" +#line 3093 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -8119,7 +8113,7 @@ yyreduce: case 236: /* Line 1787 of yacc.c */ -#line 3107 "Gmsh.y" +#line 3101 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8129,7 +8123,7 @@ yyreduce: case 237: /* Line 1787 of yacc.c */ -#line 3113 "Gmsh.y" +#line 3107 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -8141,7 +8135,7 @@ yyreduce: case 238: /* Line 1787 of yacc.c */ -#line 3121 "Gmsh.y" +#line 3115 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8151,7 +8145,7 @@ yyreduce: case 239: /* Line 1787 of yacc.c */ -#line 3127 "Gmsh.y" +#line 3121 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -8163,7 +8157,7 @@ yyreduce: case 240: /* Line 1787 of yacc.c */ -#line 3135 "Gmsh.y" +#line 3129 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8173,7 +8167,7 @@ yyreduce: case 241: /* Line 1787 of yacc.c */ -#line 3141 "Gmsh.y" +#line 3135 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -8185,7 +8179,7 @@ yyreduce: case 242: /* Line 1787 of yacc.c */ -#line 3149 "Gmsh.y" +#line 3143 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8195,7 +8189,7 @@ yyreduce: case 243: /* Line 1787 of yacc.c */ -#line 3155 "Gmsh.y" +#line 3149 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -8206,7 +8200,7 @@ yyreduce: case 244: /* Line 1787 of yacc.c */ -#line 3163 "Gmsh.y" +#line 3157 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -8217,7 +8211,7 @@ yyreduce: case 245: /* Line 1787 of yacc.c */ -#line 3170 "Gmsh.y" +#line 3164 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -8228,7 +8222,7 @@ yyreduce: case 246: /* Line 1787 of yacc.c */ -#line 3177 "Gmsh.y" +#line 3171 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -8239,7 +8233,7 @@ yyreduce: case 247: /* Line 1787 of yacc.c */ -#line 3184 "Gmsh.y" +#line 3178 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -8250,7 +8244,7 @@ yyreduce: case 248: /* Line 1787 of yacc.c */ -#line 3191 "Gmsh.y" +#line 3185 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -8261,7 +8255,7 @@ yyreduce: case 249: /* Line 1787 of yacc.c */ -#line 3198 "Gmsh.y" +#line 3192 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -8272,7 +8266,7 @@ yyreduce: case 250: /* Line 1787 of yacc.c */ -#line 3205 "Gmsh.y" +#line 3199 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -8283,7 +8277,7 @@ yyreduce: case 251: /* Line 1787 of yacc.c */ -#line 3212 "Gmsh.y" +#line 3206 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -8294,7 +8288,7 @@ yyreduce: case 252: /* Line 1787 of yacc.c */ -#line 3219 "Gmsh.y" +#line 3213 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -8305,7 +8299,7 @@ yyreduce: case 253: /* Line 1787 of yacc.c */ -#line 3226 "Gmsh.y" +#line 3220 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8315,7 +8309,7 @@ yyreduce: case 254: /* Line 1787 of yacc.c */ -#line 3232 "Gmsh.y" +#line 3226 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -8326,7 +8320,7 @@ yyreduce: case 255: /* Line 1787 of yacc.c */ -#line 3239 "Gmsh.y" +#line 3233 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8336,7 +8330,7 @@ yyreduce: case 256: /* Line 1787 of yacc.c */ -#line 3245 "Gmsh.y" +#line 3239 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -8347,7 +8341,7 @@ yyreduce: case 257: /* Line 1787 of yacc.c */ -#line 3252 "Gmsh.y" +#line 3246 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8357,7 +8351,7 @@ yyreduce: case 258: /* Line 1787 of yacc.c */ -#line 3258 "Gmsh.y" +#line 3252 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -8368,7 +8362,7 @@ yyreduce: case 259: /* Line 1787 of yacc.c */ -#line 3265 "Gmsh.y" +#line 3259 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8378,7 +8372,7 @@ yyreduce: case 260: /* Line 1787 of yacc.c */ -#line 3271 "Gmsh.y" +#line 3265 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -8389,7 +8383,7 @@ yyreduce: case 261: /* Line 1787 of yacc.c */ -#line 3278 "Gmsh.y" +#line 3272 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8399,7 +8393,7 @@ yyreduce: case 262: /* Line 1787 of yacc.c */ -#line 3284 "Gmsh.y" +#line 3278 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -8410,7 +8404,7 @@ yyreduce: case 263: /* Line 1787 of yacc.c */ -#line 3291 "Gmsh.y" +#line 3285 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8420,7 +8414,7 @@ yyreduce: case 264: /* Line 1787 of yacc.c */ -#line 3297 "Gmsh.y" +#line 3291 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -8431,7 +8425,7 @@ yyreduce: case 265: /* Line 1787 of yacc.c */ -#line 3304 "Gmsh.y" +#line 3298 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8441,7 +8435,7 @@ yyreduce: case 266: /* Line 1787 of yacc.c */ -#line 3310 "Gmsh.y" +#line 3304 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -8452,7 +8446,7 @@ yyreduce: case 267: /* Line 1787 of yacc.c */ -#line 3317 "Gmsh.y" +#line 3311 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8462,7 +8456,7 @@ yyreduce: case 268: /* Line 1787 of yacc.c */ -#line 3323 "Gmsh.y" +#line 3317 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -8473,7 +8467,7 @@ yyreduce: case 269: /* Line 1787 of yacc.c */ -#line 3330 "Gmsh.y" +#line 3324 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -8483,7 +8477,7 @@ yyreduce: case 270: /* Line 1787 of yacc.c */ -#line 3336 "Gmsh.y" +#line 3330 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -8494,21 +8488,21 @@ yyreduce: case 271: /* Line 1787 of yacc.c */ -#line 3347 "Gmsh.y" +#line 3341 "Gmsh.y" { } break; case 272: /* Line 1787 of yacc.c */ -#line 3350 "Gmsh.y" +#line 3344 "Gmsh.y" { } break; case 273: /* Line 1787 of yacc.c */ -#line 3356 "Gmsh.y" +#line 3350 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -8524,7 +8518,7 @@ yyreduce: case 274: /* Line 1787 of yacc.c */ -#line 3368 "Gmsh.y" +#line 3362 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -8548,7 +8542,7 @@ yyreduce: case 275: /* Line 1787 of yacc.c */ -#line 3388 "Gmsh.y" +#line 3382 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -8575,7 +8569,7 @@ yyreduce: case 276: /* Line 1787 of yacc.c */ -#line 3412 "Gmsh.y" +#line 3406 "Gmsh.y" { extr.mesh.ScaleLast = true; } @@ -8583,7 +8577,7 @@ yyreduce: case 277: /* Line 1787 of yacc.c */ -#line 3416 "Gmsh.y" +#line 3410 "Gmsh.y" { extr.mesh.Recombine = true; } @@ -8591,7 +8585,7 @@ yyreduce: case 278: /* Line 1787 of yacc.c */ -#line 3420 "Gmsh.y" +#line 3414 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); } @@ -8599,7 +8593,7 @@ yyreduce: case 279: /* Line 1787 of yacc.c */ -#line 3424 "Gmsh.y" +#line 3418 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); } @@ -8607,7 +8601,7 @@ yyreduce: case 280: /* Line 1787 of yacc.c */ -#line 3428 "Gmsh.y" +#line 3422 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -8617,7 +8611,7 @@ yyreduce: case 281: /* Line 1787 of yacc.c */ -#line 3434 "Gmsh.y" +#line 3428 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -8627,7 +8621,7 @@ yyreduce: case 282: /* Line 1787 of yacc.c */ -#line 3440 "Gmsh.y" +#line 3434 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; } @@ -8635,7 +8629,7 @@ yyreduce: case 283: /* Line 1787 of yacc.c */ -#line 3444 "Gmsh.y" +#line 3438 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; } @@ -8643,7 +8637,7 @@ yyreduce: case 284: /* Line 1787 of yacc.c */ -#line 3448 "Gmsh.y" +#line 3442 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; } @@ -8651,7 +8645,7 @@ yyreduce: case 285: /* Line 1787 of yacc.c */ -#line 3452 "Gmsh.y" +#line 3446 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; } @@ -8659,7 +8653,7 @@ yyreduce: case 286: /* Line 1787 of yacc.c */ -#line 3456 "Gmsh.y" +#line 3450 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -8682,7 +8676,7 @@ yyreduce: case 287: /* Line 1787 of yacc.c */ -#line 3475 "Gmsh.y" +#line 3469 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -8694,7 +8688,7 @@ yyreduce: case 288: /* Line 1787 of yacc.c */ -#line 3487 "Gmsh.y" +#line 3481 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; } @@ -8702,7 +8696,7 @@ yyreduce: case 289: /* Line 1787 of yacc.c */ -#line 3491 "Gmsh.y" +#line 3485 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -8719,7 +8713,7 @@ yyreduce: case 290: /* Line 1787 of yacc.c */ -#line 3506 "Gmsh.y" +#line 3500 "Gmsh.y" { (yyval.i) = -1; // left } @@ -8727,7 +8721,7 @@ yyreduce: case 291: /* Line 1787 of yacc.c */ -#line 3510 "Gmsh.y" +#line 3504 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -8745,7 +8739,7 @@ yyreduce: case 292: /* Line 1787 of yacc.c */ -#line 3526 "Gmsh.y" +#line 3520 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); } @@ -8753,7 +8747,7 @@ yyreduce: case 293: /* Line 1787 of yacc.c */ -#line 3530 "Gmsh.y" +#line 3524 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); } @@ -8761,7 +8755,7 @@ yyreduce: case 294: /* Line 1787 of yacc.c */ -#line 3535 "Gmsh.y" +#line 3529 "Gmsh.y" { (yyval.i) = 45; } @@ -8769,7 +8763,7 @@ yyreduce: case 295: /* Line 1787 of yacc.c */ -#line 3539 "Gmsh.y" +#line 3533 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); } @@ -8777,7 +8771,7 @@ yyreduce: case 296: /* Line 1787 of yacc.c */ -#line 3546 "Gmsh.y" +#line 3540 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -8837,7 +8831,7 @@ yyreduce: case 297: /* Line 1787 of yacc.c */ -#line 3602 "Gmsh.y" +#line 3596 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -8911,7 +8905,7 @@ yyreduce: case 298: /* Line 1787 of yacc.c */ -#line 3672 "Gmsh.y" +#line 3666 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); @@ -8920,7 +8914,7 @@ yyreduce: case 299: /* Line 1787 of yacc.c */ -#line 3677 "Gmsh.y" +#line 3671 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -8991,7 +8985,7 @@ yyreduce: case 300: /* Line 1787 of yacc.c */ -#line 3744 "Gmsh.y" +#line 3738 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -9031,7 +9025,7 @@ yyreduce: case 301: /* Line 1787 of yacc.c */ -#line 3780 "Gmsh.y" +#line 3774 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (7)].l)); i++){ double d; @@ -9043,7 +9037,7 @@ yyreduce: case 302: /* Line 1787 of yacc.c */ -#line 3788 "Gmsh.y" +#line 3782 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -9090,7 +9084,7 @@ yyreduce: case 303: /* Line 1787 of yacc.c */ -#line 3831 "Gmsh.y" +#line 3825 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -9133,7 +9127,7 @@ yyreduce: case 304: /* Line 1787 of yacc.c */ -#line 3870 "Gmsh.y" +#line 3864 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -9157,7 +9151,7 @@ yyreduce: case 305: /* Line 1787 of yacc.c */ -#line 3890 "Gmsh.y" +#line 3884 "Gmsh.y" { if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){ yymsg(0, "Number of master (%d) different from number of slave (%d) lines", @@ -9188,7 +9182,7 @@ yyreduce: case 306: /* Line 1787 of yacc.c */ -#line 3918 "Gmsh.y" +#line 3912 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -9231,7 +9225,7 @@ yyreduce: case 307: /* Line 1787 of yacc.c */ -#line 3957 "Gmsh.y" +#line 3951 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -9263,7 +9257,7 @@ yyreduce: case 308: /* Line 1787 of yacc.c */ -#line 3985 "Gmsh.y" +#line 3979 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -9295,7 +9289,7 @@ yyreduce: case 309: /* Line 1787 of yacc.c */ -#line 4013 "Gmsh.y" +#line 4007 "Gmsh.y" { Msg::Error("Point in Volume not implemented yet"); } @@ -9303,7 +9297,7 @@ yyreduce: case 310: /* Line 1787 of yacc.c */ -#line 4017 "Gmsh.y" +#line 4011 "Gmsh.y" { Msg::Error("Line in Volume not implemented yet"); } @@ -9311,7 +9305,7 @@ yyreduce: case 311: /* Line 1787 of yacc.c */ -#line 4021 "Gmsh.y" +#line 4015 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -9343,7 +9337,7 @@ yyreduce: case 312: /* Line 1787 of yacc.c */ -#line 4049 "Gmsh.y" +#line 4043 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -9386,7 +9380,7 @@ yyreduce: case 313: /* Line 1787 of yacc.c */ -#line 4088 "Gmsh.y" +#line 4082 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -9429,7 +9423,7 @@ yyreduce: case 314: /* Line 1787 of yacc.c */ -#line 4127 "Gmsh.y" +#line 4121 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -9454,7 +9448,7 @@ yyreduce: case 315: /* Line 1787 of yacc.c */ -#line 4148 "Gmsh.y" +#line 4142 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -9479,7 +9473,7 @@ yyreduce: case 316: /* Line 1787 of yacc.c */ -#line 4169 "Gmsh.y" +#line 4163 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -9504,7 +9498,7 @@ yyreduce: case 317: /* Line 1787 of yacc.c */ -#line 4196 "Gmsh.y" +#line 4190 "Gmsh.y" { ReplaceAllDuplicates(); } @@ -9512,7 +9506,7 @@ yyreduce: case 318: /* Line 1787 of yacc.c */ -#line 4200 "Gmsh.y" +#line 4194 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -9526,7 +9520,7 @@ yyreduce: case 319: /* Line 1787 of yacc.c */ -#line 4210 "Gmsh.y" +#line 4204 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -9560,25 +9554,25 @@ yyreduce: case 320: /* Line 1787 of yacc.c */ -#line 4244 "Gmsh.y" +#line 4238 "Gmsh.y" { (yyval.c) = (char*)"Homology"; } break; case 321: /* Line 1787 of yacc.c */ -#line 4245 "Gmsh.y" +#line 4239 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; } break; case 322: /* Line 1787 of yacc.c */ -#line 4246 "Gmsh.y" +#line 4240 "Gmsh.y" { (yyval.c) = (char*)"Betti"; } break; case 323: /* Line 1787 of yacc.c */ -#line 4251 "Gmsh.y" +#line 4245 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -9588,7 +9582,7 @@ yyreduce: case 324: /* Line 1787 of yacc.c */ -#line 4257 "Gmsh.y" +#line 4251 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -9604,7 +9598,7 @@ yyreduce: case 325: /* Line 1787 of yacc.c */ -#line 4269 "Gmsh.y" +#line 4263 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -9626,7 +9620,7 @@ yyreduce: case 326: /* Line 1787 of yacc.c */ -#line 4287 "Gmsh.y" +#line 4281 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -9653,55 +9647,55 @@ yyreduce: case 327: /* Line 1787 of yacc.c */ -#line 4314 "Gmsh.y" +#line 4308 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); } break; case 328: /* Line 1787 of yacc.c */ -#line 4315 "Gmsh.y" +#line 4309 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); } break; case 329: /* Line 1787 of yacc.c */ -#line 4316 "Gmsh.y" +#line 4310 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); } break; case 330: /* Line 1787 of yacc.c */ -#line 4317 "Gmsh.y" +#line 4311 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); } break; case 331: /* Line 1787 of yacc.c */ -#line 4318 "Gmsh.y" +#line 4312 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); } break; case 332: /* Line 1787 of yacc.c */ -#line 4319 "Gmsh.y" +#line 4313 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); } break; case 333: /* Line 1787 of yacc.c */ -#line 4320 "Gmsh.y" +#line 4314 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); } break; case 334: /* Line 1787 of yacc.c */ -#line 4321 "Gmsh.y" +#line 4315 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); } break; case 335: /* Line 1787 of yacc.c */ -#line 4323 "Gmsh.y" +#line 4317 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -9712,271 +9706,271 @@ yyreduce: case 336: /* Line 1787 of yacc.c */ -#line 4329 "Gmsh.y" +#line 4323 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); } break; case 337: /* Line 1787 of yacc.c */ -#line 4330 "Gmsh.y" +#line 4324 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); } break; case 338: /* Line 1787 of yacc.c */ -#line 4331 "Gmsh.y" +#line 4325 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); } break; case 339: /* Line 1787 of yacc.c */ -#line 4332 "Gmsh.y" +#line 4326 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); } break; case 340: /* Line 1787 of yacc.c */ -#line 4333 "Gmsh.y" +#line 4327 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); } break; case 341: /* Line 1787 of yacc.c */ -#line 4334 "Gmsh.y" +#line 4328 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); } break; case 342: /* Line 1787 of yacc.c */ -#line 4335 "Gmsh.y" +#line 4329 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); } break; case 343: /* Line 1787 of yacc.c */ -#line 4336 "Gmsh.y" +#line 4330 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); } break; case 344: /* Line 1787 of yacc.c */ -#line 4337 "Gmsh.y" +#line 4331 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); } break; case 345: /* Line 1787 of yacc.c */ -#line 4338 "Gmsh.y" +#line 4332 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); } break; case 346: /* Line 1787 of yacc.c */ -#line 4339 "Gmsh.y" +#line 4333 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); } break; case 347: /* Line 1787 of yacc.c */ -#line 4340 "Gmsh.y" +#line 4334 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); } break; case 348: /* Line 1787 of yacc.c */ -#line 4341 "Gmsh.y" +#line 4335 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); } break; case 349: /* Line 1787 of yacc.c */ -#line 4342 "Gmsh.y" +#line 4336 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); } break; case 350: /* Line 1787 of yacc.c */ -#line 4343 "Gmsh.y" +#line 4337 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); } break; case 351: /* Line 1787 of yacc.c */ -#line 4344 "Gmsh.y" +#line 4338 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); } break; case 352: /* Line 1787 of yacc.c */ -#line 4345 "Gmsh.y" +#line 4339 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); } break; case 353: /* Line 1787 of yacc.c */ -#line 4346 "Gmsh.y" +#line 4340 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); } break; case 354: /* Line 1787 of yacc.c */ -#line 4347 "Gmsh.y" +#line 4341 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); } break; case 355: /* Line 1787 of yacc.c */ -#line 4348 "Gmsh.y" +#line 4342 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); } break; case 356: /* Line 1787 of yacc.c */ -#line 4349 "Gmsh.y" +#line 4343 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); } break; case 357: /* Line 1787 of yacc.c */ -#line 4350 "Gmsh.y" +#line 4344 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));} break; case 358: /* Line 1787 of yacc.c */ -#line 4351 "Gmsh.y" +#line 4345 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); } break; case 359: /* Line 1787 of yacc.c */ -#line 4352 "Gmsh.y" +#line 4346 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); } break; case 360: /* Line 1787 of yacc.c */ -#line 4353 "Gmsh.y" +#line 4347 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); } break; case 361: /* Line 1787 of yacc.c */ -#line 4354 "Gmsh.y" +#line 4348 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); } break; case 362: /* Line 1787 of yacc.c */ -#line 4355 "Gmsh.y" +#line 4349 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); } break; case 363: /* Line 1787 of yacc.c */ -#line 4356 "Gmsh.y" +#line 4350 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); } break; case 364: /* Line 1787 of yacc.c */ -#line 4357 "Gmsh.y" +#line 4351 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); } break; case 365: /* Line 1787 of yacc.c */ -#line 4358 "Gmsh.y" +#line 4352 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); } break; case 366: /* Line 1787 of yacc.c */ -#line 4359 "Gmsh.y" +#line 4353 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); } break; case 367: /* Line 1787 of yacc.c */ -#line 4360 "Gmsh.y" +#line 4354 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); } break; case 368: /* Line 1787 of yacc.c */ -#line 4361 "Gmsh.y" +#line 4355 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; } break; case 369: /* Line 1787 of yacc.c */ -#line 4370 "Gmsh.y" +#line 4364 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); } break; case 370: /* Line 1787 of yacc.c */ -#line 4371 "Gmsh.y" +#line 4365 "Gmsh.y" { (yyval.d) = 3.141592653589793; } break; case 371: /* Line 1787 of yacc.c */ -#line 4372 "Gmsh.y" +#line 4366 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); } break; case 372: /* Line 1787 of yacc.c */ -#line 4373 "Gmsh.y" +#line 4367 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); } break; case 373: /* Line 1787 of yacc.c */ -#line 4374 "Gmsh.y" +#line 4368 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); } break; case 374: /* Line 1787 of yacc.c */ -#line 4375 "Gmsh.y" +#line 4369 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); } break; case 375: /* Line 1787 of yacc.c */ -#line 4376 "Gmsh.y" +#line 4370 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); } break; case 376: /* Line 1787 of yacc.c */ -#line 4377 "Gmsh.y" +#line 4371 "Gmsh.y" { (yyval.d) = Cpu(); } break; case 377: /* Line 1787 of yacc.c */ -#line 4378 "Gmsh.y" +#line 4372 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; } break; case 378: /* Line 1787 of yacc.c */ -#line 4379 "Gmsh.y" +#line 4373 "Gmsh.y" { (yyval.d) = TotalRam(); } break; case 379: /* Line 1787 of yacc.c */ -#line 4384 "Gmsh.y" +#line 4378 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); } break; case 380: /* Line 1787 of yacc.c */ -#line 4386 "Gmsh.y" +#line 4380 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -9986,7 +9980,7 @@ yyreduce: case 381: /* Line 1787 of yacc.c */ -#line 4392 "Gmsh.y" +#line 4386 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -10007,7 +10001,7 @@ yyreduce: case 382: /* Line 1787 of yacc.c */ -#line 4409 "Gmsh.y" +#line 4403 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -10029,7 +10023,7 @@ yyreduce: case 383: /* Line 1787 of yacc.c */ -#line 4427 "Gmsh.y" +#line 4421 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -10051,7 +10045,7 @@ yyreduce: case 384: /* Line 1787 of yacc.c */ -#line 4445 "Gmsh.y" +#line 4439 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -10060,7 +10054,7 @@ yyreduce: case 385: /* Line 1787 of yacc.c */ -#line 4450 "Gmsh.y" +#line 4444 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -10070,7 +10064,7 @@ yyreduce: case 386: /* Line 1787 of yacc.c */ -#line 4456 "Gmsh.y" +#line 4450 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -10086,7 +10080,7 @@ yyreduce: case 387: /* Line 1787 of yacc.c */ -#line 4468 "Gmsh.y" +#line 4462 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -10107,7 +10101,7 @@ yyreduce: case 388: /* Line 1787 of yacc.c */ -#line 4485 "Gmsh.y" +#line 4479 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -10129,7 +10123,7 @@ yyreduce: case 389: /* Line 1787 of yacc.c */ -#line 4503 "Gmsh.y" +#line 4497 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -10151,7 +10145,7 @@ yyreduce: case 390: /* Line 1787 of yacc.c */ -#line 4524 "Gmsh.y" +#line 4518 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -10160,7 +10154,7 @@ yyreduce: case 391: /* Line 1787 of yacc.c */ -#line 4529 "Gmsh.y" +#line 4523 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -10169,7 +10163,7 @@ yyreduce: case 392: /* Line 1787 of yacc.c */ -#line 4534 "Gmsh.y" +#line 4528 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -10183,7 +10177,7 @@ yyreduce: case 393: /* Line 1787 of yacc.c */ -#line 4544 "Gmsh.y" +#line 4538 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -10197,7 +10191,7 @@ yyreduce: case 394: /* Line 1787 of yacc.c */ -#line 4554 "Gmsh.y" +#line 4548 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -10206,7 +10200,7 @@ yyreduce: case 395: /* Line 1787 of yacc.c */ -#line 4559 "Gmsh.y" +#line 4553 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -10219,7 +10213,7 @@ yyreduce: case 396: /* Line 1787 of yacc.c */ -#line 4568 "Gmsh.y" +#line 4562 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -10228,7 +10222,7 @@ yyreduce: case 397: /* Line 1787 of yacc.c */ -#line 4573 "Gmsh.y" +#line 4567 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -10256,7 +10250,7 @@ yyreduce: case 398: /* Line 1787 of yacc.c */ -#line 4600 "Gmsh.y" +#line 4594 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); } @@ -10264,7 +10258,7 @@ yyreduce: case 399: /* Line 1787 of yacc.c */ -#line 4604 "Gmsh.y" +#line 4598 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; } @@ -10272,7 +10266,7 @@ yyreduce: case 400: /* Line 1787 of yacc.c */ -#line 4608 "Gmsh.y" +#line 4602 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; } @@ -10280,7 +10274,7 @@ yyreduce: case 401: /* Line 1787 of yacc.c */ -#line 4612 "Gmsh.y" +#line 4606 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; } @@ -10288,7 +10282,7 @@ yyreduce: case 402: /* Line 1787 of yacc.c */ -#line 4616 "Gmsh.y" +#line 4610 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; } @@ -10296,7 +10290,7 @@ yyreduce: case 403: /* Line 1787 of yacc.c */ -#line 4623 "Gmsh.y" +#line 4617 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); } @@ -10304,7 +10298,7 @@ yyreduce: case 404: /* Line 1787 of yacc.c */ -#line 4627 "Gmsh.y" +#line 4621 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; } @@ -10312,7 +10306,7 @@ yyreduce: case 405: /* Line 1787 of yacc.c */ -#line 4631 "Gmsh.y" +#line 4625 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; } @@ -10320,7 +10314,7 @@ yyreduce: case 406: /* Line 1787 of yacc.c */ -#line 4635 "Gmsh.y" +#line 4629 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; } @@ -10328,7 +10322,7 @@ yyreduce: case 407: /* Line 1787 of yacc.c */ -#line 4642 "Gmsh.y" +#line 4636 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -10337,7 +10331,7 @@ yyreduce: case 408: /* Line 1787 of yacc.c */ -#line 4647 "Gmsh.y" +#line 4641 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); } @@ -10345,7 +10339,7 @@ yyreduce: case 409: /* Line 1787 of yacc.c */ -#line 4654 "Gmsh.y" +#line 4648 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -10354,7 +10348,7 @@ yyreduce: case 410: /* Line 1787 of yacc.c */ -#line 4659 "Gmsh.y" +#line 4653 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); } @@ -10362,7 +10356,7 @@ yyreduce: case 411: /* Line 1787 of yacc.c */ -#line 4663 "Gmsh.y" +#line 4657 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -10371,7 +10365,7 @@ yyreduce: case 412: /* Line 1787 of yacc.c */ -#line 4668 "Gmsh.y" +#line 4662 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); } @@ -10379,7 +10373,7 @@ yyreduce: case 413: /* Line 1787 of yacc.c */ -#line 4672 "Gmsh.y" +#line 4666 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -10391,7 +10385,7 @@ yyreduce: case 414: /* Line 1787 of yacc.c */ -#line 4680 "Gmsh.y" +#line 4674 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -10403,7 +10397,7 @@ yyreduce: case 415: /* Line 1787 of yacc.c */ -#line 4691 "Gmsh.y" +#line 4685 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); } @@ -10411,7 +10405,7 @@ yyreduce: case 416: /* Line 1787 of yacc.c */ -#line 4695 "Gmsh.y" +#line 4689 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -10424,7 +10418,7 @@ yyreduce: case 417: /* Line 1787 of yacc.c */ -#line 4707 "Gmsh.y" +#line 4701 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -10436,7 +10430,7 @@ yyreduce: case 418: /* Line 1787 of yacc.c */ -#line 4715 "Gmsh.y" +#line 4709 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -10448,7 +10442,7 @@ yyreduce: case 419: /* Line 1787 of yacc.c */ -#line 4723 "Gmsh.y" +#line 4717 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -10459,7 +10453,7 @@ yyreduce: case 420: /* Line 1787 of yacc.c */ -#line 4730 "Gmsh.y" +#line 4724 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -10473,7 +10467,7 @@ yyreduce: case 421: /* Line 1787 of yacc.c */ -#line 4740 "Gmsh.y" +#line 4734 "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 @@ -10506,7 +10500,7 @@ yyreduce: case 422: /* Line 1787 of yacc.c */ -#line 4769 "Gmsh.y" +#line 4763 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(0); } @@ -10514,7 +10508,7 @@ yyreduce: case 423: /* Line 1787 of yacc.c */ -#line 4773 "Gmsh.y" +#line 4767 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(1); } @@ -10522,7 +10516,7 @@ yyreduce: case 424: /* Line 1787 of yacc.c */ -#line 4777 "Gmsh.y" +#line 4771 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(2); } @@ -10530,7 +10524,7 @@ yyreduce: case 425: /* Line 1787 of yacc.c */ -#line 4781 "Gmsh.y" +#line 4775 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(3); } @@ -10538,7 +10532,7 @@ yyreduce: case 426: /* Line 1787 of yacc.c */ -#line 4785 "Gmsh.y" +#line 4779 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -10571,7 +10565,7 @@ yyreduce: case 427: /* Line 1787 of yacc.c */ -#line 4814 "Gmsh.y" +#line 4808 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -10604,7 +10598,7 @@ yyreduce: case 428: /* Line 1787 of yacc.c */ -#line 4843 "Gmsh.y" +#line 4837 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -10637,7 +10631,7 @@ yyreduce: case 429: /* Line 1787 of yacc.c */ -#line 4872 "Gmsh.y" +#line 4866 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -10670,7 +10664,7 @@ yyreduce: case 430: /* Line 1787 of yacc.c */ -#line 4902 "Gmsh.y" +#line 4896 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -10686,7 +10680,7 @@ yyreduce: case 431: /* Line 1787 of yacc.c */ -#line 4915 "Gmsh.y" +#line 4909 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -10702,7 +10696,7 @@ yyreduce: case 432: /* Line 1787 of yacc.c */ -#line 4928 "Gmsh.y" +#line 4922 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -10718,7 +10712,7 @@ yyreduce: case 433: /* Line 1787 of yacc.c */ -#line 4941 "Gmsh.y" +#line 4935 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -10734,7 +10728,7 @@ yyreduce: case 434: /* Line 1787 of yacc.c */ -#line 4953 "Gmsh.y" +#line 4947 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -10748,7 +10742,7 @@ yyreduce: case 435: /* Line 1787 of yacc.c */ -#line 4963 "Gmsh.y" +#line 4957 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -10762,7 +10756,7 @@ yyreduce: case 436: /* Line 1787 of yacc.c */ -#line 4973 "Gmsh.y" +#line 4967 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -10778,7 +10772,7 @@ yyreduce: case 437: /* Line 1787 of yacc.c */ -#line 4985 "Gmsh.y" +#line 4979 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -10794,7 +10788,7 @@ yyreduce: case 438: /* Line 1787 of yacc.c */ -#line 4997 "Gmsh.y" +#line 4991 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -10810,7 +10804,7 @@ yyreduce: case 439: /* Line 1787 of yacc.c */ -#line 5009 "Gmsh.y" +#line 5003 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -10832,7 +10826,7 @@ yyreduce: case 440: /* Line 1787 of yacc.c */ -#line 5027 "Gmsh.y" +#line 5021 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -10854,7 +10848,7 @@ yyreduce: case 441: /* Line 1787 of yacc.c */ -#line 5048 "Gmsh.y" +#line 5042 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -10863,7 +10857,7 @@ yyreduce: case 442: /* Line 1787 of yacc.c */ -#line 5053 "Gmsh.y" +#line 5047 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); } @@ -10871,7 +10865,7 @@ yyreduce: case 443: /* Line 1787 of yacc.c */ -#line 5057 "Gmsh.y" +#line 5051 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); } @@ -10879,7 +10873,7 @@ yyreduce: case 444: /* Line 1787 of yacc.c */ -#line 5061 "Gmsh.y" +#line 5055 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -10892,7 +10886,7 @@ yyreduce: case 445: /* Line 1787 of yacc.c */ -#line 5073 "Gmsh.y" +#line 5067 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); } @@ -10900,7 +10894,7 @@ yyreduce: case 446: /* Line 1787 of yacc.c */ -#line 5077 "Gmsh.y" +#line 5071 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); } @@ -10908,7 +10902,7 @@ yyreduce: case 447: /* Line 1787 of yacc.c */ -#line 5089 "Gmsh.y" +#line 5083 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(-1, (yyvsp[(1) - (1)].c), &flag); @@ -10919,7 +10913,7 @@ yyreduce: case 448: /* Line 1787 of yacc.c */ -#line 5096 "Gmsh.y" +#line 5090 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -10930,7 +10924,7 @@ yyreduce: case 449: /* Line 1787 of yacc.c */ -#line 5106 "Gmsh.y" +#line 5100 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); } @@ -10938,7 +10932,7 @@ yyreduce: case 450: /* Line 1787 of yacc.c */ -#line 5110 "Gmsh.y" +#line 5104 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -10954,7 +10948,7 @@ yyreduce: case 451: /* Line 1787 of yacc.c */ -#line 5125 "Gmsh.y" +#line 5119 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -10963,7 +10957,7 @@ yyreduce: case 452: /* Line 1787 of yacc.c */ -#line 5130 "Gmsh.y" +#line 5124 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); } @@ -10971,7 +10965,7 @@ yyreduce: case 453: /* Line 1787 of yacc.c */ -#line 5137 "Gmsh.y" +#line 5131 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); } @@ -10979,7 +10973,7 @@ yyreduce: case 454: /* Line 1787 of yacc.c */ -#line 5141 "Gmsh.y" +#line 5135 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -10996,7 +10990,7 @@ yyreduce: case 455: /* Line 1787 of yacc.c */ -#line 5154 "Gmsh.y" +#line 5148 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -11008,7 +11002,7 @@ yyreduce: case 456: /* Line 1787 of yacc.c */ -#line 5162 "Gmsh.y" +#line 5156 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -11020,7 +11014,7 @@ yyreduce: case 457: /* Line 1787 of yacc.c */ -#line 5173 "Gmsh.y" +#line 5167 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); } @@ -11028,7 +11022,7 @@ yyreduce: case 458: /* Line 1787 of yacc.c */ -#line 5177 "Gmsh.y" +#line 5171 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -11040,7 +11034,7 @@ yyreduce: case 459: /* Line 1787 of yacc.c */ -#line 5185 "Gmsh.y" +#line 5179 "Gmsh.y" { std::string action = Msg::GetGmshOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -11050,7 +11044,7 @@ yyreduce: case 460: /* Line 1787 of yacc.c */ -#line 5191 "Gmsh.y" +#line 5185 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -11062,7 +11056,7 @@ yyreduce: case 461: /* Line 1787 of yacc.c */ -#line 5199 "Gmsh.y" +#line 5193 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -11074,7 +11068,7 @@ yyreduce: case 462: /* Line 1787 of yacc.c */ -#line 5207 "Gmsh.y" +#line 5201 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -11093,7 +11087,7 @@ yyreduce: case 463: /* Line 1787 of yacc.c */ -#line 5222 "Gmsh.y" +#line 5216 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -11111,7 +11105,7 @@ yyreduce: case 464: /* Line 1787 of yacc.c */ -#line 5236 "Gmsh.y" +#line 5230 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -11129,7 +11123,7 @@ yyreduce: case 465: /* Line 1787 of yacc.c */ -#line 5250 "Gmsh.y" +#line 5244 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -11145,7 +11139,7 @@ yyreduce: case 466: /* Line 1787 of yacc.c */ -#line 5262 "Gmsh.y" +#line 5256 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -11165,7 +11159,7 @@ yyreduce: case 467: /* Line 1787 of yacc.c */ -#line 5278 "Gmsh.y" +#line 5272 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); } @@ -11173,7 +11167,7 @@ yyreduce: case 468: /* Line 1787 of yacc.c */ -#line 5282 "Gmsh.y" +#line 5276 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -11196,13 +11190,13 @@ yyreduce: case 469: /* Line 1787 of yacc.c */ -#line 5301 "Gmsh.y" +#line 5295 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); } break; case 470: /* Line 1787 of yacc.c */ -#line 5303 "Gmsh.y" +#line 5297 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -11214,7 +11208,7 @@ yyreduce: case 471: /* Line 1787 of yacc.c */ -#line 5314 "Gmsh.y" +#line 5308 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -11223,13 +11217,13 @@ yyreduce: case 472: /* Line 1787 of yacc.c */ -#line 5319 "Gmsh.y" +#line 5313 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); } break; case 473: /* Line 1787 of yacc.c */ -#line 5325 "Gmsh.y" +#line 5319 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -11241,7 +11235,7 @@ yyreduce: case 474: /* Line 1787 of yacc.c */ -#line 5334 "Gmsh.y" +#line 5328 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -11253,19 +11247,19 @@ yyreduce: case 475: /* Line 1787 of yacc.c */ -#line 5347 "Gmsh.y" +#line 5341 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); } break; case 476: /* Line 1787 of yacc.c */ -#line 5350 "Gmsh.y" +#line 5344 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); } break; /* Line 1787 of yacc.c */ -#line 11269 "Gmsh.tab.cpp" +#line 11263 "Gmsh.tab.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -11497,7 +11491,7 @@ yyreturn: /* Line 2050 of yacc.c */ -#line 5354 "Gmsh.y" +#line 5348 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 3e83da6e53e012842ca9bbdfbc3f42022ea97445..04737825a5149ac77eaaa0178f01e9b92a8fb3bf 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2703,20 +2703,14 @@ Command : | tOnelabRun '(' RecursiveListOfStringExprVar ')' tEND { int n = List_Nbr($3); - if(n != 1 && n != 2){ - yymsg(0, "OnelabRun takes one or two arguments"); + if(n < 1 || n > 3){ + yymsg(0, "OnelabRun takes from one to three arguments"); } else{ - char *s0; - List_Read($3, 0, &s0); - if(n == 2){ - char *s1; - List_Read($3, 1, &s1); - Msg::RunOnelabClient(s0, s1); - } - else{ - Msg::RunOnelabClient(s0); - } + char *s[3] = {"", "", ""}; + for(int i = 0; i < n; i++) + List_Read($3, i, &s[i]); + Msg::RunOnelabClient(s[0], s[1], s[2]); } for(int i = 0; i < n; i++){ char *s;