diff --git a/VERSION b/VERSION index bcc565f2..de1a208d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.18 +1.11.19 diff --git a/src/metkit/mars/TypeParam.cc b/src/metkit/mars/TypeParam.cc index f417f221..aa18eaac 100644 --- a/src/metkit/mars/TypeParam.cc +++ b/src/metkit/mars/TypeParam.cc @@ -359,6 +359,7 @@ std::string Rule::lookup(const MarsExpandContext& ctx, const std::string & s, bo if (!paramid.empty()) { return paramid; } + return metkit::mars::MarsLanguage::bestMatch(c, s, defaultValues_, fail, false, defaultMapping_); } @@ -436,7 +437,7 @@ static void init() { std::set shortnames; std::set associatedIDs; - + const eckit::Value pc = eckit::YAMLParser::decodeFile(LibMetkit::shortnameContextYamlFile()); ASSERT(pc.isList()); @@ -446,11 +447,10 @@ static void init() { for (size_t i=0; i < keys.size(); i++) { auto el = ids.element(keys[i]); - ASSERT(el.size() > 0); - auto val = el[0]; - - if (shortnames.find(val) != shortnames.end()) { - associatedIDs.emplace(keys[i]); + for (size_t j=0; j < el.size(); j++) { + if (shortnames.find(el[j]) != shortnames.end()) { + associatedIDs.emplace(keys[i]); + } } } diff --git a/tests/test_expand.cc b/tests/test_expand.cc index 9480e06c..1b25fdbf 100644 --- a/tests/test_expand.cc +++ b/tests/test_expand.cc @@ -377,6 +377,23 @@ CASE( "test_metkit_expand_param" ) { EXPECT_EQUAL(params[4], "164"); EXPECT_EQUAL(params[5], "228"); } + { + const char* text = "retrieve,class=od,expver=1,stream=msmm,date=-1,time=0000,type=em,levtype=sfc,step=24,param=e"; + MarsRequest r = MarsRequest::parse(text); + auto params = r.values("param"); + EXPECT_EQUAL(params.size(), 1); + + EXPECT_EQUAL(params[0], "172182"); + } + { + const char* text = "retrieve,class=od,expver=1,stream=msmm,date=-1,time=0000,type=em,levtype=sfc,step=24,param=e/erate"; + MarsRequest r = MarsRequest::parse(text); + auto params = r.values("param"); + EXPECT_EQUAL(params.size(), 2); + + EXPECT_EQUAL(params[0], "172182"); + EXPECT_EQUAL(params[1], "172182"); + } } //-----------------------------------------------------------------------------