13 #include "boost/tokenizer.hpp"
17 #include <string_view>
27 DHHFixer( F f ) : m_f(
std::
move( f ) ) {}
34 r = m_f(
h->objKey() );
35 if (
r !=
h->objKey() )
h->updateKey(
r );
38 r = m_f(
h->objKey() );
39 if (
r !=
h->objKey() )
h->updateKey(
r );
45 auto make_unique_DHHFixer( F f ) {
46 return std::make_unique<DHHFixer<F>>(
std::move( f ) );
75 if ( !rootName.
empty() &&
'/' != rootName.
back() ) rootName +=
"/";
77 auto tokens = boost::tokenizer{
location, boost::char_separator{
":" } };
80 std::string r = fullTESLocation( tok, rit );
82 if ( r[0] !=
'/' ) r = rootName + r;
83 return s.empty() ? r : s +
':' + r;