# # patch "work.cc" # from [282514ca3b0a5d94909e209a085e068c2bf985bf] # to [bef03df39e62418f577265be2807b8d27a7d2b4e] # # patch "work.hh" # from [b632c7b9bda8e2df8b392b3606d554398e6ddb97] # to [e9705a990f7cfb9469bc3dfb8246a80833fef1b7] # ======================================================================== --- work.cc 282514ca3b0a5d94909e209a085e068c2bf985bf +++ work.cc bef03df39e62418f577265be2807b8d27a7d2b4e @@ -692,28 +692,35 @@ return true; } -bool get_attribute_from_db(file_path const & file, - std::string const & attr_key, - manifest_map const & man, - std::string & attr_val, - app_state & app) +void +read_attr_map_from_db(manifest_map const & man, + attr_map & attr, + app_state & app) { file_path fp; get_attr_path(fp); manifest_map::const_iterator i = man.find(fp); if (i == man.end()) - return false; + return; file_id fid = manifest_entry_id(i); if (!app.db.file_version_exists(fid)) - return false; + return; file_data attr_data; app.db.get_file_version(fid, attr_data); - attr_map attr; read_attr_map(data(attr_data.inner()()), attr); +} +bool get_attribute_from_db(file_path const & file, + std::string const & attr_key, + manifest_map const & man, + std::string & attr_val, + app_state & app) +{ + attr_map attr; + read_attr_map_from_db(man, attr, app); return find_in_attr_map(attr, file, attr_key, attr_val); } ======================================================================== --- work.hh b632c7b9bda8e2df8b392b3606d554398e6ddb97 +++ work.hh e9705a990f7cfb9469bc3dfb8246a80833fef1b7 @@ -167,6 +167,10 @@ extern std::string const encoding_attribute; extern std::string const manual_merge_attribute; +void read_attr_map_from_db(manifest_map const & man, + attr_map & attr, + app_state & app); + bool get_attribute_from_db(file_path const & file, std::string const & attr_key, manifest_map const & man,