# # # patch "ChangeLog" # from [9c93c573292d02257be62e88889ed5ae78408bb8] # to [d74c2f4dfda44e2cc954f3f1331297db5c4d4e2a] # # patch "paths.cc" # from [d3290e08f71dd807af63d32ffbefbe84c8e61757] # to [7c773970143528c704d12b661c6e86aaf4e070b2] # # patch "paths.hh" # from [f61b1b0f8a6fe9f4b6a55ff1a5513412856cb75c] # to [b89fdc422541e0754a3e6cf60c8dfd95eef52564] # ============================================================ --- ChangeLog 9c93c573292d02257be62e88889ed5ae78408bb8 +++ ChangeLog d74c2f4dfda44e2cc954f3f1331297db5c4d4e2a @@ -1,5 +1,9 @@ 2005-12-10 Timothy Brownawell + * paths.{cc,hh}: operator<() for split_path's + +2005-12-10 Timothy Brownawell + * sanity.{cc,hh}: Fix musing dumps so that the header line always gets printed, even if printing the body throws an exception. * database.cc, packet,cc, revision.cc: sprinkle MMs ============================================================ --- paths.cc d3290e08f71dd807af63d32ffbefbe84c8e61757 +++ paths.cc 7c773970143528c704d12b661c6e86aaf4e070b2 @@ -17,6 +17,11 @@ #include "interner.hh" #include "transforms.hh" +bool operator<(split_path const & l, split_path const & r) +{ + return file_path(l).as_internal() < file_path(r).as_internal(); +} + // some structure to ensure we aren't doing anything broken when resolving // filenames. the idea is to make sure // -- we don't depend on the existence of something before it has been set ============================================================ --- paths.hh f61b1b0f8a6fe9f4b6a55ff1a5513412856cb75c +++ paths.hh b89fdc422541e0754a3e6cf60c8dfd95eef52564 @@ -107,6 +107,8 @@ typedef std::vector split_path; +bool operator<(split_path const & l, split_path const & r); + const path_component the_null_component; inline bool