Ticket #590: pds-final-hyphens.patch

File pds-final-hyphens.patch, 2.7 kB (added by ColdWind, 6 months ago)

pds-final-hyphens.patch

  • paludis/user_dep_spec.cc

     
    160160        VersionOperator op(s.substr(0, p)); 
    161161        std::string::size_type q(p); 
    162162 
     163        ++q; 
    163164        while (true) 
    164165        { 
    165166            if (p >= s.length()) 
    166167                throw PackageDepSpecError("Couldn't parse dep spec '" + ss + "'"); 
    167             q = s.find('-', q + 1); 
     168            q = s.find('-', q); 
    168169            if ((std::string::npos == q) || (++q >= s.length())) 
    169170                throw PackageDepSpecError("Couldn't parse dep spec '" + ss + "'"); 
    170171            if ((s.at(q) >= '0' && s.at(q) <= '9') || (0 == s.compare(q, 3, "scm"))) 
  • paludis/elike_package_dep_spec.cc

     
    233233 
    234234        std::string::size_type q(p); 
    235235 
     236        ++q; 
    236237        while (true) 
    237238        { 
    238239            if (p >= s.length()) 
    239240                throw PackageDepSpecError("Couldn't parse dep spec '" + ss + "'"); 
    240             q = s.find('-', q + 1); 
     241            q = s.find('-', q); 
    241242            if ((std::string::npos == q) || (++q >= s.length())) 
    242243                throw PackageDepSpecError("Couldn't parse dep spec '" + ss + "'"); 
    243244            if ((s.at(q) >= '0' && s.at(q) <= '9') || (0 == s.compare(q, 3, "scm"))) 
  • paludis/user_dep_spec_TEST.cc

     
    147147            TEST_CHECK_STRINGIFY_EQUAL(next(next(m.version_requirements_ptr()->begin()))->version_spec, "1.4"); 
    148148            TEST_CHECK_EQUAL(next(next(m.version_requirements_ptr()->begin()))->version_operator, vo_tilde); 
    149149            TEST_CHECK(! m.slot_requirement_ptr()); 
     150 
     151            PackageDepSpec n(parse_user_package_dep_spec(">=foo/bar--1.2.3", UserPackageDepSpecOptions())); 
     152            TEST_CHECK_STRINGIFY_EQUAL(n, ">=foo/bar--1.2.3"); 
     153            TEST_CHECK_STRINGIFY_EQUAL(*n.package_ptr(), "foo/bar-"); 
     154            TEST_CHECK(! n.slot_requirement_ptr()); 
     155            TEST_CHECK(n.version_requirements_ptr()); 
     156            TEST_CHECK_EQUAL(std::distance(n.version_requirements_ptr()->begin(), 
     157                        n.version_requirements_ptr()->end()), 1); 
     158            TEST_CHECK_STRINGIFY_EQUAL(n.version_requirements_ptr()->begin()->version_spec, "1.2.3"); 
     159            TEST_CHECK_EQUAL(n.version_requirements_ptr()->begin()->version_operator, vo_greater_equal); 
     160 
    150161        } 
    151162    } test_user_package_dep_spec; 
    152163