From 36115f92a7fdebaf13cb968b1acfe3c9973c0df4 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 21 Dec 2021 21:37:02 +0300 Subject: Adapt to package manifest requirement classes change --- mod/mod-package-version-details.cxx | 45 ++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 11 deletions(-) (limited to 'mod/mod-package-version-details.cxx') diff --git a/mod/mod-package-version-details.cxx b/mod/mod-package-version-details.cxx index e271c45..f1a641b 100644 --- a/mod/mod-package-version-details.cxx +++ b/mod/mod-package-version-details.cxx @@ -362,32 +362,55 @@ handle (request& rq, response& rs) << TABLE(CLASS="proplist", ID="requires") << TBODY; - for (const auto& ras: rm) + for (const requirement_alternatives& ras: rm) { s << TR(CLASS="requires") << TH; - if (ras.conditional) - s << "?"; - if (ras.buildtime) - s << "*"; - - if (ras.conditional || ras.buildtime) - s << " "; + s << '*'; s << ~TH << TD << SPAN(CLASS="value"); - for (const auto& ra: ras) + for (const requirement_alternative& ra: ras) { if (&ra != &ras[0]) s << " | "; - assert (ra.size () == 1); // @@ DEP + // Should we enclose multiple requirement ids into curly braces as in + // the manifest? Somehow feels redundant here, since there can't be + // any ambiguity (requirement group version constraint is already + // punched into the specific requirements without constraints). + // + for (const string& r: ra) + { + if (&r != &ra[0]) + s << ' '; + + s << r; + } - s << ra[0]; + if (ra.enable) + { + if (!ra.simple () || !ra[0].empty ()) + s << ' '; + + s << '?'; + + if (!ra.enable->empty ()) + { + s << " ("; + + if (full) + s << *ra.enable; + else + s << "..."; + + s << ')'; + } + } } s << ~SPAN -- cgit v1.1