From 63e7a4a77cb8ceed7b42561fe3202b0b48d86db6 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Jun 2015 14:41:45 +0200 Subject: Move path and filesystem from build2 to libbutl --- build/path-map | 88 ---------------------------------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 build/path-map (limited to 'build/path-map') diff --git a/build/path-map b/build/path-map deleted file mode 100644 index 8355ccc..0000000 --- a/build/path-map +++ /dev/null @@ -1,88 +0,0 @@ -// file : build/path-map -*- C++ -*- -// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BUILD_PATH_MAP -#define BUILD_PATH_MAP - -#include - -#include - -namespace butl -{ - - // @@ Remove butl:: when move to libbutl. - - // prefix_map for paths - // - // The paths should be normalized. - // - // Note that the path's representation of POSIX root ('/') is - // inconsistent in that we have a trailing delimiter at the end of - // the path (its "proper" representation would have been an empty - // string but that would have clashed with empty paths). To work - // around this snag, this implementation, during key comparison, - // detects '/' and treats it as empty. Note that the map will - // still store the key as you have first inserted it. So if you - // want a particular representation, pre-populate the map with - // it. - // - template - struct compare_prefix>: compare_prefix> - { - typedef build::basic_path key_type; - - typedef C delimiter_type; - typedef std::basic_string string_type; - typedef compare_prefix> base; - - explicit - compare_prefix (delimiter_type d): base (d) {} - - bool - operator() (const key_type& x, const key_type& y) const - { - const auto& xs (x.string ()); - const auto& ys (y.string ()); - -#ifdef _WIN32 - return base::compare (xs.c_str (), - xs.size (), - ys.c_str (), - ys.size ()) < 0; -#else - return base::compare (xs.c_str (), - x.root () ? 0 : xs.size (), - ys.c_str (), - y.root () ? 0 : ys.size ()) < 0; -#endif - } - - bool - prefix (const key_type& p, const key_type& k) const - { - const auto& ps (p.string ()); - const auto& ks (k.string ()); - -#ifdef _WIN32 - return base::prefix (ps, ks); -#else - return base::prefix (p.root () ? string_type () : ps, - k.root () ? string_type () : ks); -#endif - } - }; -} - -namespace build -{ - template - using path_map = butl::prefix_map; - - template - using dir_path_map = - butl::prefix_map; -} - -#endif // BUILD_PATH_MAP -- cgit v1.1