# # patch "ChangeLog" # from [bb1c3dfc33b832506c9c0d98d51d35fabdd7e8f6] # to [6ae1f61fc259020ff9c6c21f687627ba56de086c] # # patch "file_io.cc" # from [0e2a02b579ad96e8211ca0f75244893a624b2cc5] # to [f6f3fba02d7e53668e372df88fd276acc8c6b7ce] # # patch "paths.cc" # from [f159edb723e7ab488b5044eb7991d20e3d974083] # to [c9dd97711a5c2bb7f2fe432b5b3a8b078d3ed460] # ======================================================================== --- ChangeLog bb1c3dfc33b832506c9c0d98d51d35fabdd7e8f6 +++ ChangeLog 6ae1f61fc259020ff9c6c21f687627ba56de086c @@ -1,5 +1,11 @@ 2005-08-25 Nathaniel Smith + * paths.cc (test_file_path_internal): Add tests for + file_path.empty(). + * file_io.cc (walk_tree_recursive): Add explicit fs::native. + +2005-08-25 Nathaniel Smith + * paths.cc: Many small changes. Unit tests now pass. 72 unexpected autotest failures. ======================================================================== --- file_io.cc 0e2a02b579ad96e8211ca0f75244893a624b2cc5 +++ file_io.cc f6f3fba02d7e53668e372df88fd276acc8c6b7ce @@ -359,7 +359,9 @@ di != ei; ++di) { fs::path entry = *di; - fs::path rel_entry = relative / entry.leaf(); + // the fs::native is necessary here, or it will bomb out on any paths + // that look at it funny. (E.g., rcs files with "," in the name.) + fs::path rel_entry = relative / fs::path(entry.leaf(), fs::native); if (bookkeeping_path::is_bookkeeping_path(rel_entry.normalize().string())) { ======================================================================== --- paths.cc f159edb723e7ab488b5044eb7991d20e3d974083 +++ paths.cc c9dd97711a5c2bb7f2fe432b5b3a8b078d3ed460 @@ -498,6 +498,9 @@ for (char const ** c = baddies; *c; ++c) BOOST_CHECK_THROW(file_path_internal(*c), std::logic_error); + BOOST_CHECK(file_path().empty()); + BOOST_CHECK(file_path_internal("").empty()); + char const * goodies[] = {"", "a", "foo",