boost-1.78.diff 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. diff --git a/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp b/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp
  2. index 3077276..af9afd2 100644
  3. --- a/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp
  4. +++ b/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp
  5. @@ -39,7 +39,7 @@ inline tss_slots* get_slots()
  6. slots = static_cast<tss_slots*>( pthread_getspecific(tss_data_native_key()));
  7. if (slots == 0)
  8. {
  9. - std::auto_ptr<tss_slots> temp( new_object_ensure_delete<tss_slots>() );
  10. + std::unique_ptr<tss_slots> temp( new_object_ensure_delete<tss_slots>() );
  11. // pre-allocate a few elems, so that we'll be fast
  12. temp->resize(BOOST_LOG_TSS_SLOTS_SIZE);
  13. diff --git a/src/mbase/project/media.cpp b/src/mbase/project/media.cpp
  14. index 81e44d2..5f9e4f6 100644
  15. --- a/src/mbase/project/media.cpp
  16. +++ b/src/mbase/project/media.cpp
  17. @@ -58,7 +58,9 @@ void StorageMD::MakeByPath(const std::string& path, bool cnv_to_utf8,
  18. std::string MakeAutoName(const std::string& str, int old_sz)
  19. {
  20. - return (str::stream() << str << " " << old_sz+1).str();
  21. + str::stream ss;
  22. + ss << str << " " << old_sz+1;
  23. + return ss.str();
  24. }
  25. void VideoMD::AddChapter(ChapterItem chp)
  26. diff --git a/src/mbase/project/menu.cpp b/src/mbase/project/menu.cpp
  27. index 1f25817..94b8755 100644
  28. --- a/src/mbase/project/menu.cpp
  29. +++ b/src/mbase/project/menu.cpp
  30. @@ -166,7 +166,9 @@ void MenuMD::SerializeImpl(Archieve& ar)
  31. static std::string MakeObjectPath(int idx, const char* type)
  32. {
  33. ASSERT( idx != NO_HNDL );
  34. - return (str::stream() << type << "." << idx).str();
  35. + str::stream ss;
  36. + ss << type << "." << idx;
  37. + return ss.str();
  38. }
  39. std::string GetMediaRef(MediaItem mi)
  40. @@ -197,7 +199,9 @@ class RefMaker: public ObjVisitor
  41. void RefMaker::Visit(VideoChapterMD& obj)
  42. {
  43. refStr = GetMediaRef(obj.owner);
  44. - refStr += (str::stream() << "." << ChapterPosInt(&obj)).str();
  45. + str::stream ss;
  46. + ss << "." << ChapterPosInt(&obj);
  47. + refStr += ss.str();
  48. }
  49. std::string Media2Ref(MediaItem mi)
  50. @@ -233,8 +237,9 @@ int GetRefIndex(const char*& str)
  51. std::string ThrowBadIndex(const char* prefix, int idx)
  52. {
  53. - throw std::runtime_error(
  54. - (str::stream() << prefix << idx).str() );
  55. + str::stream ss;
  56. + ss << prefix << idx;
  57. + throw std::runtime_error(ss.str());
  58. }
  59. MediaItem TryGetMedia(int idx)
  60. diff --git a/src/mbase/project/serialization.h b/src/mbase/project/serialization.h
  61. index ff5b7a9..547c438 100644
  62. --- a/src/mbase/project/serialization.h
  63. +++ b/src/mbase/project/serialization.h
  64. @@ -75,7 +75,9 @@ namespace ToString
  65. template<typename T>
  66. std::string MakeString(const T& t)
  67. {
  68. - return (str::stream() << t).str();
  69. + str::stream ss;
  70. + ss << t;
  71. + return ss.str();
  72. }
  73. template<typename T>
  74. diff --git a/src/mbase/project/srl-common.cpp b/src/mbase/project/srl-common.cpp
  75. index c2c92b5..ab1c62b 100644
  76. --- a/src/mbase/project/srl-common.cpp
  77. +++ b/src/mbase/project/srl-common.cpp
  78. @@ -36,10 +36,12 @@ void Serialize(Archieve& ar, MenuParams& mp)
  79. std::string ToString(const RGBA::Pixel& pxl)
  80. {
  81. using Mpeg::set_hms;
  82. - return (str::stream("#") << std::hex
  83. - << set_hms() << (int)pxl.red
  84. - << set_hms() << (int)pxl.green
  85. - << set_hms() << (int)pxl.blue << (int)pxl.alpha).str();
  86. + str::stream ss ("#");
  87. + ss << std::hex
  88. + << set_hms() << (int)pxl.red
  89. + << set_hms() << (int)pxl.green
  90. + << set_hms() << (int)pxl.blue << (int)pxl.alpha;
  91. + return ss.str();
  92. }
  93. // как pango_color_parse()
  94. diff --git a/src/mbase/project/srl-db.cpp b/src/mbase/project/srl-db.cpp
  95. index c3babec..e50a523 100644
  96. --- a/src/mbase/project/srl-db.cpp
  97. +++ b/src/mbase/project/srl-db.cpp
  98. @@ -102,7 +102,7 @@ void DbSerializeProjectImpl(Archieve& ar)
  99. }
  100. void ADatabase::Load(const std::string& fname,
  101. - const std::string& cur_dir) throw (std::exception)
  102. + const std::string& cur_dir)
  103. {
  104. try
  105. {
  106. diff --git a/src/mbase/project/table.cpp b/src/mbase/project/table.cpp
  107. index 455c334..3e52383 100644
  108. --- a/src/mbase/project/table.cpp
  109. +++ b/src/mbase/project/table.cpp
  110. @@ -29,6 +29,7 @@
  111. #include "theme.h"
  112. #include <mbase/resources.h>
  113. +#include <boost/filesystem/directory.hpp>
  114. const char* APROJECT_VERSION = "1.2.4";
  115. @@ -154,7 +155,7 @@ NameValueT<Media> LoadMedia(Archieve& ar, MediaList& md_list)
  116. void SerializePath(Archieve& ar, const char* tag_name, std::string& fpath)
  117. {
  118. //ar & NameValue("Path", mdPath);
  119. - fs::path rel_to_dir = fs::path(AData().GetProjectFName()).branch_path();
  120. + fs::path rel_to_dir = fs::path(AData().GetProjectFName()).parent_path();
  121. if( ar.IsLoad() )
  122. {
  123. ar >> NameValue(tag_name, fpath);
  124. @@ -162,7 +163,7 @@ void SerializePath(Archieve& ar, const char* tag_name, std::string& fpath)
  125. if( !fpath.empty() )
  126. {
  127. fs::path pth(fpath);
  128. - if( !pth.is_complete() )
  129. + if( !pth.is_absolute() )
  130. fpath = (rel_to_dir/fpath).string();
  131. }
  132. }
  133. diff --git a/src/mbase/project/table.h b/src/mbase/project/table.h
  134. index 7c73085..cc7e36d 100644
  135. --- a/src/mbase/project/table.h
  136. +++ b/src/mbase/project/table.h
  137. @@ -128,7 +128,7 @@ class ADatabase: public Singleton<ADatabase>, public DataWare
  138. void ClearSettings();
  139. void Load(const std::string& fname,
  140. - const std::string& cur_dir = std::string()) throw (std::exception);
  141. + const std::string& cur_dir = std::string());
  142. bool Save();
  143. bool SaveAs(const std::string& fname,
  144. diff --git a/src/mbase/project/tests/test_table.cpp b/src/mbase/project/tests/test_table.cpp
  145. index f8a1c20..3e7115a 100644
  146. --- a/src/mbase/project/tests/test_table.cpp
  147. +++ b/src/mbase/project/tests/test_table.cpp
  148. @@ -129,7 +129,7 @@ BOOST_AUTO_TEST_CASE( TestMediaList )
  149. // проверка чтения/записи путей
  150. boost::intrusive_ptr<StillImageMD> pict2 = ptr::dynamic_pointer_cast<StillImageMD>(ml[2]);
  151. fs::path pth = pict2->GetPath();
  152. - BOOST_CHECK( pth.is_complete() );
  153. + BOOST_CHECK( pth.is_absolute() );
  154. BOOST_CHECK( fs::exists(pth) );
  155. // проверка ссылок
  156. diff --git a/src/mdemux/dvdread.cpp b/src/mdemux/dvdread.cpp
  157. index d8392b1..12fcae6 100644
  158. --- a/src/mdemux/dvdread.cpp
  159. +++ b/src/mdemux/dvdread.cpp
  160. @@ -35,8 +35,10 @@ namespace DVD {
  161. std::string VobFName(VobPos& pos, const std::string& suffix)
  162. {
  163. using Mpeg::set_hms;
  164. - return (str::stream("Video") << set_hms() << int(pos.Vts())
  165. - << "-" << set_hms() << pos.VobId() << suffix << ".vob").str();
  166. + str::stream ss ("Video");
  167. + ss << set_hms() << int(pos.Vts())
  168. + << "-" << set_hms() << pos.VobId() << suffix << ".vob";
  169. + return ss.str();
  170. }
  171. typedef boost::function<void(int, double)> VobTimeFnr;
  172. @@ -282,9 +284,11 @@ VobPtr FindVob(VobArr& dvd_vobs, uint8_t vts, uint16_t vob_id)
  173. static void TryDVDReadBlocks(dvd_file_t* file, int off, size_t cnt, char* buf)
  174. {
  175. int real_cnt = DVDReadBlocks(file, off, cnt, (unsigned char*)buf);
  176. - if( (int)cnt != real_cnt )
  177. - throw std::runtime_error( (str::stream() << real_cnt <<
  178. - " != DVDReadBlocks(" << cnt << ")").str() );
  179. + if( (int)cnt != real_cnt ) {
  180. + str::stream ss;
  181. + ss << real_cnt << " != DVDReadBlocks(" << cnt << ")";
  182. + throw std::runtime_error( ss.str() );
  183. + }
  184. }
  185. // размер буфера должен соответствовать читаемому диапазону
  186. diff --git a/src/mdemux/mpeg2demux.cpp b/src/mdemux/mpeg2demux.cpp
  187. index bb7b1b1..ecb3774 100644
  188. --- a/src/mdemux/mpeg2demux.cpp
  189. +++ b/src/mdemux/mpeg2demux.cpp
  190. @@ -71,7 +71,9 @@ bool DemuxSvc::Filter(uint32_t code)
  191. static std::string MakePESKey(int id, const char* ext)
  192. {
  193. - return (str::stream() << id << "." << ext).str();
  194. + str::stream ss;
  195. + ss << id << "." << ext;
  196. + return ss.str();
  197. }
  198. static bool ReadPart(io::stream& strm, uint8_t* buf, int sz, int& len)
  199. @@ -110,7 +112,9 @@ static std::string MakeKeyNameForLPCM(int track, uint8_t inf)
  200. ASSERT(0);
  201. }
  202. - std::string header_str = (str::stream() << sample_rate << ":" << channels << ":" << bps << ".lpcm").str();
  203. + str::stream ss;
  204. + ss << sample_rate << ":" << channels << ":" << bps << ".lpcm";
  205. + std::string header_str = ss.str();
  206. return MakePESKey(track, header_str.c_str());
  207. }
  208. diff --git a/src/mdemux/seek.cpp b/src/mdemux/seek.cpp
  209. index e46658f..f0ce934 100644
  210. --- a/src/mdemux/seek.cpp
  211. +++ b/src/mdemux/seek.cpp
  212. @@ -37,8 +37,10 @@ std::string SecToHMS(double len, bool round_sec)
  213. int hh = min / 60;
  214. int mm = min - hh*60;
  215. - return (str::stream() << set_hms() << hh << ":"
  216. - << set_hms() << mm << ":" << set_hms() << ss).str();
  217. + str::stream strss;
  218. + strss << set_hms() << hh << ":"
  219. + << set_hms() << mm << ":" << set_hms() << ss;
  220. + return strss.str();
  221. }
  222. bool MediaInfo::InitBegin(VideoLine& vl)
  223. diff --git a/src/mgui/author/burn.cpp b/src/mgui/author/burn.cpp
  224. index ddfad0a..578429e 100644
  225. --- a/src/mgui/author/burn.cpp
  226. +++ b/src/mgui/author/burn.cpp
  227. @@ -85,7 +85,7 @@ BurnData& GetInitedBD()
  228. return bd;
  229. }
  230. -re::pattern WriteSpeed_RE("Write Speed #"RG_NUM":"RG_SPS RG_NUM"\\."RG_NUM "x1385");
  231. +re::pattern WriteSpeed_RE("Write Speed #" RG_NUM ":" RG_SPS RG_NUM "\\." RG_NUM "x1385");
  232. RefPtr<Gtk::ListStore> sp_store;
  233. @@ -253,7 +253,7 @@ DVDInfo ParseDVDInfo(bool is_good, const std::string& out_info)
  234. }
  235. else
  236. {
  237. - static re::pattern media_type_re("Mounted Media:"RG_SPS"[0-9A-F]+h, ([^ \n]+)");
  238. + static re::pattern media_type_re("Mounted Media:" RG_SPS "[0-9A-F]+h, ([^ \n]+)");
  239. re::match_results what;
  240. bool is_found = re::search(out_info, what, media_type_re);
  241. @@ -277,7 +277,7 @@ DVDInfo ParseDVDInfo(bool is_good, const std::string& out_info)
  242. // isBlank
  243. if( res != dvdOTHER )
  244. {
  245. - static re::pattern media_status_re("Disc status:"RG_SPS"([a-z]+)\n");
  246. + static re::pattern media_status_re("Disc status:" RG_SPS "([a-z]+)\n");
  247. bool is_found = re::search(out_info, what, media_status_re);
  248. ASSERT_RTL( is_found );
  249. diff --git a/src/mgui/author/execute.cpp b/src/mgui/author/execute.cpp
  250. index 5b2330c..e308552 100644
  251. --- a/src/mgui/author/execute.cpp
  252. +++ b/src/mgui/author/execute.cpp
  253. @@ -64,9 +64,9 @@ static void InitFoundStageTag(RefPtr<Gtk::TextTag> tag)
  254. tag->property_foreground() = "darkgreen";
  255. }
  256. -re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor"RG_EW ".*-x"RG_EW RG_SPS RG_BW"DVDAuthor\\.xml"RG_EW);
  257. -re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video"RG_EW ".*>.*"RG_BW"dvd.iso"RG_EW);
  258. -re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs"RG_EW ".*-dvd-compat"RG_EW ".*-dvd-video"RG_EW);
  259. +re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor" RG_EW ".*-x" RG_EW RG_SPS RG_BW "DVDAuthor\\.xml" RG_EW);
  260. +re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video" RG_EW ".*>.*" RG_BW "dvd.iso" RG_EW);
  261. +re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs" RG_EW ".*-dvd-compat" RG_EW ".*-dvd-video" RG_EW);
  262. //static void PrintMatchResults(const re::match_results& what)
  263. //{
  264. @@ -94,7 +94,7 @@ class MkIsoFsPP: public ProgressParser
  265. virtual void Filter(const std::string& line);
  266. };
  267. -re::pattern MkIsoFsPercent_RE( RG_FLT"?% done");
  268. +re::pattern MkIsoFsPercent_RE( RG_FLT "?% done");
  269. void MkIsoFsPP::Filter(const std::string& line)
  270. {
  271. @@ -126,8 +126,8 @@ class DVDAuthorPP: public ProgressParser
  272. bool fixStage;
  273. };
  274. -re::pattern DVDAuthorVOB_RE( "^STAT: VOBU "RG_NUM" at "RG_NUM"MB");
  275. -re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at "RG_NUM"MB \\("RG_NUM"/"RG_NUM", "RG_NUM"%\\)");
  276. +re::pattern DVDAuthorVOB_RE( "^STAT: VOBU " RG_NUM " at " RG_NUM "MB");
  277. +re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at " RG_NUM "MB \\(" RG_NUM "/" RG_NUM ", " RG_NUM "%\\)");
  278. void DVDAuthorPP::Filter(const std::string& line)
  279. {
  280. @@ -157,7 +157,7 @@ void DVDAuthorPP::Filter(const std::string& line)
  281. if( p )
  282. of.SetProgress(p);
  283. - static re::pattern ch_error_re("ERR:.*Cannot jump to chapter "RG_NUM" of title "RG_NUM", only "RG_NUM" exist");
  284. + static re::pattern ch_error_re("ERR:.*Cannot jump to chapter " RG_NUM " of title " RG_NUM ", only " RG_NUM " exist");
  285. if( re::search(line, what, ch_error_re) )
  286. {
  287. std::string& err_str = of.firstError;
  288. diff --git a/src/mgui/author/render.cpp b/src/mgui/author/render.cpp
  289. index 1ffbca2..81720d7 100644
  290. --- a/src/mgui/author/render.cpp
  291. +++ b/src/mgui/author/render.cpp
  292. @@ -866,7 +866,7 @@ std::string FFmpegPostArgs(const std::string& out_fname, bool is_4_3, bool is_pa
  293. //
  294. // :KLUDGE: (только) в ffmpeg, avformat 53.13.0, поменяли . на : => надо
  295. // самим открывать файл и узнавать индекс!
  296. - static re::pattern audio_idx("Stream #"RG_NUM"[\\.|:]"RG_NUM".*Audio:");
  297. + static re::pattern audio_idx("Stream #" RG_NUM "[\\.|:]" RG_NUM ".*Audio:");
  298. re::match_results what;
  299. // флаг означает, что перевод строки не может быть точкой
  300. @@ -1221,17 +1221,17 @@ void TestFFmpegForDVDEncoding(const std::string& conts)
  301. {
  302. CheckNoCodecs(CheckForCodecList(conts));
  303. - static re::pattern dvd_format("^ .E dvd"RG_EW);
  304. + static re::pattern dvd_format("^ .E dvd" RG_EW);
  305. CheckStrippedFFmpeg(dvd_format, conts, "dvd format");
  306. // :TRICKY: с версии libavcodec 54 при выводе начальный пробел не ставят => поэтому ?
  307. // ("спасибо" Anton Khirnov за очередное "улучшение")
  308. #define _CPP_ "^ ?"
  309. - static re::pattern mpeg2video_codec(_CPP_".EV... mpeg2video"RG_EW);
  310. + static re::pattern mpeg2video_codec(_CPP_ ".EV... mpeg2video" RG_EW);
  311. CheckStrippedFFmpeg(mpeg2video_codec, conts, "mpeg2 video encoder");
  312. // по факту ffmpeg всегда использует ac3, однако mp2 тоже возможен
  313. - static re::pattern ac3_codec(_CPP_".EA... ac3"RG_EW);
  314. + static re::pattern ac3_codec(_CPP_ ".EA... ac3" RG_EW);
  315. CheckStrippedFFmpeg(ac3_codec, conts, "ac3 audio encoder");
  316. #undef _CPP_
  317. }
  318. @@ -1241,7 +1241,7 @@ TripleVersion FindAVVersion(const std::string& conts, const char* avlib_name)
  319. // * ищем версию libavfilter
  320. // пример: " libavfilter 0. 4. 0 / "
  321. #define RG_PADNUM RG_SPS RG_NUM
  322. - std::string reg_str = boost::format(RG_BW"%1%"RG_PADNUM"\\."RG_PADNUM"\\."RG_PADNUM" / ")
  323. + std::string reg_str = boost::format(RG_BW "%1%" RG_PADNUM "\\." RG_PADNUM "\\." RG_PADNUM " / ")
  324. % avlib_name % bf::stop;
  325. re::pattern avfilter_version(reg_str.c_str());
  326. return FindVersion(conts, avfilter_version, AVCnvBin(), avlib_name);
  327. @@ -1307,7 +1307,9 @@ FFmpegVersion CheckFFDVDEncoding()
  328. bool RenderMainPicture(const std::string& out_dir, Menu mn, int i)
  329. {
  330. - Author::Info((str::stream() << "Rendering menu \"" << mn->mdName << "\" ...").str());
  331. + str::stream ss;
  332. + ss << "Rendering menu \"" << mn->mdName << "\" ...";
  333. + Author::Info(ss.str());
  334. const std::string mn_dir = MakeMenuPath(out_dir, mn, i);
  335. if( IsMotion(mn) )
  336. diff --git a/src/mgui/author/script.cpp b/src/mgui/author/script.cpp
  337. index ccfd32f..f2b1c7e 100644
  338. --- a/src/mgui/author/script.cpp
  339. +++ b/src/mgui/author/script.cpp
  340. @@ -130,7 +130,9 @@ static std::string MakeFPTarget(MediaItem mi)
  341. {
  342. VideoItem vi = IsVideo(mi);
  343. ASSERT( vi );
  344. - str = (str::stream() << "title " << GetAuthorNumber(vi)).str();
  345. + str::stream ss;
  346. + ss << "title " << GetAuthorNumber(vi);
  347. + str = ss.str();
  348. }
  349. return str;
  350. }
  351. @@ -179,7 +181,9 @@ void TargetCommandVis::Visit(VideoChapterMD& obj)
  352. // Потому: для удоства пользователей даем создавать нулевую главу, разрешая это здесь
  353. // (однако доп. нулевые главы будут приводить к ошибке Cannot jump to chapter N ... only M exist)
  354. int c_num = ChapterPosInt(&obj) + (owner->List()[0]->chpTime ? 2 : 1) ;
  355. - res = (str::stream() << "jump title " << v_num << " chapter " << c_num << ";").str();
  356. + str::stream ss;
  357. + ss << "jump title " << v_num << " chapter " << c_num << ";";
  358. + res = ss.str();
  359. }
  360. static std::string MakeButtonJump(MediaItem mi, bool vts_domain)
  361. @@ -204,7 +208,9 @@ std::string MenuAuthorDir(Menu mn, int idx, bool cnv_from_utf8)
  362. if( !fs::native(name) )
  363. name = "Menu";
  364. - std::string fname = (str::stream() << idx+1 << "." << name).str();
  365. + str::stream ss;
  366. + ss << idx+1 << "." << name;
  367. + std::string fname = ss.str();
  368. return cnv_from_utf8 ? ConvertPathFromUtf8(fname) : fname ;
  369. }
  370. @@ -626,7 +632,9 @@ static void CopyRootFile(const std::string& fname, const std::string& out_dir)
  371. void AuthorSectionInfo(const std::string& str)
  372. {
  373. Author::Info("\n#", false);
  374. - Author::Info((str::stream() << "# " << str).str(), false);
  375. + str::stream ss;
  376. + ss << "# " << str;
  377. + Author::Info(ss.str(), false);
  378. Author::Info("#\n", false);
  379. }
  380. @@ -676,7 +684,7 @@ static void CheckSpumuxFontFile()
  381. if( !fs::exists(font_path) )
  382. {
  383. std::string err_str;
  384. - if( !CreateDirs(font_path.branch_path(), err_str) )
  385. + if( !CreateDirs(font_path.parent_path(), err_str) )
  386. Error(err_str.c_str());
  387. fs::copy_file(DataDirPath("copy-n-paste/FreeSans.ttf"), font_path);
  388. }
  389. @@ -755,9 +763,9 @@ static void CalcTransPercent(double cur_dur, Job& job, JobData& jd, double full_
  390. // ffmpeg выводит статистику первого создаваемого файла каждые полсекунды,
  391. // см. print_report() (при verbose=1, по умолчанию)
  392. // Формат размера: "size=%8.0fkB"
  393. -re::pattern FFmpegSizePat( "size= *"RG_NUM"kB");
  394. +re::pattern FFmpegSizePat( "size= *" RG_NUM "kB");
  395. // Формат длительности: "time=%0.2f"
  396. -re::pattern FFmpegDurPat( "time="RG_FLT);
  397. +re::pattern FFmpegDurPat( "time=" RG_FLT);
  398. static void OnTranscodePrintParse(const char* dat, int sz, const PercentFunctor& fnr)
  399. {
  400. @@ -787,7 +795,7 @@ static void OnTranscodePrintParse(const char* dat, int sz, const PercentFunctor&
  401. // Формат длительности для ffmpeg c коммита dd471070: "time=%02d:%02d:%02d.%02d"
  402. // Образец: frame= 208 fps= 58 q=2.0 size= 476kB time=00:00:08.44 bitrate= 461.9kbits/s dup=1 drop=0
  403. -re::pattern FFmpegNewDurPat( "time="RG_NUM":"RG_NUM":"RG_FLT);
  404. +re::pattern FFmpegNewDurPat( "time=" RG_NUM ":" RG_NUM ":" RG_FLT);
  405. static void OnTranscodeHMSParse(const char* dat, int sz, const PercentFunctor& fnr)
  406. {
  407. @@ -1082,7 +1090,9 @@ static void TranscodeVideos(int pass, const std::string& out_dir)
  408. static void AuthorImpl(const std::string& out_dir)
  409. {
  410. - AuthorSectionInfo((str::stream() << "Build DVD-Video in folder: " << out_dir).str());
  411. + str::stream ss;
  412. + ss << "Build DVD-Video in folder: " << out_dir;
  413. + AuthorSectionInfo(ss.str());
  414. IteratePendingEvents();
  415. IndexVideosForAuthoring();
  416. @@ -1136,7 +1146,7 @@ static void AuthorImpl(const std::string& out_dir)
  417. // 2) парсер dvdauthor не любит незнакомые ему атрибуты => spumux < 0.7 не работает
  418. std::string help_str;
  419. PipeOutput("spumux -h", help_str);
  420. - static re::pattern spumux_version("DVDAuthor::spumux, version "RG_NUM"\\."RG_NUM"\\."RG_NUM"\\.\n");
  421. + static re::pattern spumux_version("DVDAuthor::spumux, version " RG_NUM "\\." RG_NUM "\\." RG_NUM "\\.\n");
  422. if( IsVersionGE(FindVersion(help_str, spumux_version, "spumux"), TripleVersion(0, 7, 0)) )
  423. AddFormatAttr(sp);
  424. diff --git a/src/mgui/dvdimport.cpp b/src/mgui/dvdimport.cpp
  425. index 44dcdec..fc9b965 100644
  426. --- a/src/mgui/dvdimport.cpp
  427. +++ b/src/mgui/dvdimport.cpp
  428. @@ -211,10 +211,11 @@ static void OnPreparePage(ImportData& id)
  429. row[VF().selState] = false;
  430. row[VF().name] = VobFName(vob.pos);
  431. row[VF().thumbnail] = vob.aspect == af4_3 ? pix4_3 : pix16_9;
  432. - std::string desc = (str::stream(Mpeg::SecToHMS(vob.tmLen, true)) << ", "
  433. - << vob.sz.x << "x" << vob.sz.y << ", "
  434. - << (vob.aspect == af4_3 ? "4:3" : "16:9") << ", "
  435. - << std::fixed << std::setprecision(2) << vob.Count()/512. << " " << _("MB")).str();
  436. + str::stream ss (Mpeg::SecToHMS(vob.tmLen, true));
  437. + ss << ", " << vob.sz.x << "x" << vob.sz.y << ", "
  438. + << (vob.aspect == af4_3 ? "4:3" : "16:9") << ", "
  439. + << std::fixed << std::setprecision(2) << vob.Count()/512. << " " << _("MB");
  440. + std::string desc = ss.str();
  441. row[VF().desc] = desc;
  442. }
  443. CompleteSelection(id, false);
  444. @@ -275,7 +276,7 @@ static ReaderPtr OpenDVD(const std::string& dvd_path, ImportData& id)
  445. id.errLbl.hide();
  446. id.reader = rd;
  447. - SetCurPageComplete(id.ast, id.reader);
  448. + SetCurPageComplete(id.ast, bool(id.reader));
  449. return rd;
  450. }
  451. diff --git a/src/mgui/editor/toolbar.cpp b/src/mgui/editor/toolbar.cpp
  452. index 6a1894c..a039c3a 100644
  453. --- a/src/mgui/editor/toolbar.cpp
  454. +++ b/src/mgui/editor/toolbar.cpp
  455. @@ -45,6 +45,8 @@
  456. #include <mlib/sdk/logger.h>
  457. #include <mlib/range/enumerate.h>
  458. +#include <boost/filesystem/directory.hpp>
  459. +
  460. namespace Editor
  461. {
  462. diff --git a/src/mgui/ffviewer.cpp b/src/mgui/ffviewer.cpp
  463. index 64ea813..a8dc6cb 100644
  464. --- a/src/mgui/ffviewer.cpp
  465. +++ b/src/mgui/ffviewer.cpp
  466. @@ -36,6 +36,10 @@
  467. #define AVFORMAT_54
  468. #endif
  469. +C_LINKAGE_BEGIN
  470. +#include <libavutil/imgutils.h>
  471. +C_LINKAGE_END
  472. +
  473. // разрабы libav считают себя самыми умными и потому решили
  474. // закрыть простым смертным доступ к ffurl_register_protocol()
  475. // (бывшая av_register_protocol2()),- https://bugzilla.libav.org/show_bug.cgi?id=224
  476. @@ -74,7 +78,7 @@ C_LINKAGE_BEGIN
  477. typedef struct AVCodecTag {
  478. #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52,39,00)
  479. - enum CodecID id;
  480. + enum AVCodecID id;
  481. #else
  482. int id;
  483. #endif
  484. @@ -82,14 +86,14 @@ typedef struct AVCodecTag {
  485. } AVCodecTag;
  486. #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52,34,00)
  487. -static uint FFCodecID2Tag(CodecID codec_id)
  488. +static uint FFCodecID2Tag(AVCodecID codec_id)
  489. {
  490. unsigned int ff_codec_get_tag(const AVCodecTag *tags, int id);
  491. extern const AVCodecTag ff_codec_bmp_tags[];
  492. return ff_codec_get_tag(ff_codec_bmp_tags, codec_id);
  493. }
  494. #else
  495. -static uint FFCodecID2Tag(CodecID codec_id)
  496. +static uint FFCodecID2Tag(AVCodecID codec_id)
  497. {
  498. unsigned int codec_get_tag(const AVCodecTag *tags, int id);
  499. extern const AVCodecTag codec_bmp_tags[];
  500. @@ -400,7 +404,7 @@ static unsigned char GetChar(uint tag, int bit_begin)
  501. return (tag>>bit_begin) & 0xFF;
  502. }
  503. -static std::string CodecID2Str(CodecID codec_id)
  504. +static std::string CodecID2Str(AVCodecID codec_id)
  505. {
  506. #ifdef _MSC_VER
  507. std::string tag_str = boost::format("%1%") % codec_id % bf::stop;
  508. @@ -807,7 +811,7 @@ static void DoVideoDecode(FFViewer& ffv, int& got_picture, AVPacket* pkt)
  509. #ifdef AVFRAME_INIT_CHANGE
  510. // avcodec_get_frame_defaults() перенесли в avcodec_decode_video2()
  511. #else
  512. - avcodec_get_frame_defaults(&picture); // ffmpeg.c очищает каждый раз
  513. + av_frame_unref (&picture);
  514. #endif
  515. #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,25,00)
  516. diff --git a/src/mgui/mux.cpp b/src/mgui/mux.cpp
  517. index 427058e..885dde7 100644
  518. --- a/src/mgui/mux.cpp
  519. +++ b/src/mgui/mux.cpp
  520. @@ -162,7 +162,7 @@ static void OnVideoSelected(Gtk::FileChooserButton& v_btn, Gtk::FileChooserButto
  521. fs::path pth = GetFilename(v_btn);
  522. if( pth.empty() )
  523. return;
  524. - std::string folder = pth.branch_path().string();
  525. + std::string folder = pth.parent_path().string();
  526. if( a_btn.get_filename().empty() )
  527. a_btn.set_current_folder(folder);
  528. diff --git a/src/mgui/project/add.cpp b/src/mgui/project/add.cpp
  529. index 9454578..e8ae94f 100644
  530. --- a/src/mgui/project/add.cpp
  531. +++ b/src/mgui/project/add.cpp
  532. @@ -86,7 +86,9 @@ static void SetImportError(ErrorDesc& ed, bool is_good, const std::string& out_s
  533. static std::string FpsToStr(const Point& frate)
  534. {
  535. - return (str::stream() << (double)frate.x/frate.y).str();
  536. + str::stream ss;
  537. + ss << (double)frate.x/frate.y;
  538. + return ss.str();
  539. }
  540. static std::string TVTypeStr(bool is_ntsc)
  541. @@ -163,7 +165,9 @@ void CheckVideoFormat(ErrorDesc& ed, const Mpeg::SequenceData& vid, bool is_ntsc
  542. // *
  543. bool is_aspect_ok = vid.sarCode == af4_3 || vid.sarCode == af16_9;
  544. Point aspect = vid.SizeAspect();
  545. - std::string aspect_str = (str::stream() << aspect.x << ':' << aspect.y).str();
  546. + str::stream ss;
  547. + ss << aspect.x << ':' << aspect.y;
  548. + std::string aspect_str = ss.str();
  549. SetImportError(ed, is_aspect_ok,
  550. std::string(_("Aspect ratio")) + ": \t" + MarkError(aspect_str, is_aspect_ok),
  551. BF_(Descriptions[2]) % tv_type % bf::stop);
  552. @@ -479,7 +483,7 @@ void TryAddMedias(const Str::List& paths, MediaBrowser& brw,
  553. MessageBox(BF_("The file \"%1%\" looks like VOB from DVD.\nRun import?") % leaf % bf::stop,
  554. Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_OK_CANCEL) == Gtk::RESPONSE_OK )
  555. {
  556. - DVD::RunImport(*GetTopWindow(brw), pth.branch_path().string());
  557. + DVD::RunImport(*GetTopWindow(brw), pth.parent_path().string());
  558. return;
  559. }
  560. }
  561. diff --git a/src/mgui/project/browser.cpp b/src/mgui/project/browser.cpp
  562. index 02d95a1..47b730b 100644
  563. --- a/src/mgui/project/browser.cpp
  564. +++ b/src/mgui/project/browser.cpp
  565. @@ -328,7 +328,7 @@ Gtk::HButtonBox& CreateMListButtonBox()
  566. return hb;
  567. }
  568. -std::string MediaItemDnDTVType() { return "DnDTreeView<"DND_MI_NAME">"; }
  569. +std::string MediaItemDnDTVType() { return "DnDTreeView<" DND_MI_NAME ">"; }
  570. void SetupBrowser(ObjectBrowser& brw, int dnd_column, bool is_media_brw)
  571. {
  572. diff --git a/src/mgui/project/mconstructor.cpp b/src/mgui/project/mconstructor.cpp
  573. index 3b56587..754f9f8 100644
  574. --- a/src/mgui/project/mconstructor.cpp
  575. +++ b/src/mgui/project/mconstructor.cpp
  576. @@ -52,6 +52,8 @@
  577. // COPY_N_PASTE_ETALON из go-file.c, проект Gnumeric, http://projects.gnome.org/gnumeric/
  578. //
  579. +#include <boost/filesystem/directory.hpp>
  580. +
  581. #ifndef GOFFICE_WITH_GNOME
  582. static char *
  583. check_program (char const *prog)
  584. diff --git a/src/mgui/project/serialize.cpp b/src/mgui/project/serialize.cpp
  585. index a5366aa..03583ec 100644
  586. --- a/src/mgui/project/serialize.cpp
  587. +++ b/src/mgui/project/serialize.cpp
  588. @@ -73,7 +73,7 @@ static std::string MakeProjectTitle(bool with_path_breakdown = false)
  589. fs::path full_path(db.GetProjectFName());
  590. std::string res_str = fs::name_str(full_path);
  591. if( with_path_breakdown )
  592. - res_str += " (" + full_path.branch_path().string() + ")";
  593. + res_str += " (" + full_path.parent_path().string() + ")";
  594. return res_str;
  595. }
  596. diff --git a/src/mgui/sdk/cairo_utils.cpp b/src/mgui/sdk/cairo_utils.cpp
  597. index 14f11be..10c1f97 100644
  598. --- a/src/mgui/sdk/cairo_utils.cpp
  599. +++ b/src/mgui/sdk/cairo_utils.cpp
  600. @@ -27,6 +27,8 @@
  601. std::string MakeSVGFilename(const char* prefix)
  602. {
  603. static int idx = 1;
  604. - return (str::stream() << prefix << "-" << Mpeg::set_hms() << idx++ << ".svg" ).str();
  605. + str::stream ss;
  606. + ss << prefix << "-" << Mpeg::set_hms() << idx++ << ".svg";
  607. + return ss.str();
  608. }
  609. diff --git a/src/mgui/timeline/layout.cpp b/src/mgui/timeline/layout.cpp
  610. index c139626..b5b5ca7 100644
  611. --- a/src/mgui/timeline/layout.cpp
  612. +++ b/src/mgui/timeline/layout.cpp
  613. @@ -600,8 +600,10 @@ time4_t FramesToTime(int cnt, double fps)
  614. void FramesToTime(std::string& str, int cnt, double fps)
  615. {
  616. time4_t t4 = FramesToTime(cnt, fps);
  617. - str = (str::stream() << Mpeg::set_hms() << t4.hh << ":" << Mpeg::set_hms() << t4.mm << ":"
  618. - << Mpeg::set_hms() << t4.ss << ";" << Mpeg::set_hms() << t4.ff).str();
  619. + str::stream ss;
  620. + ss << Mpeg::set_hms() << t4.hh << ":" << Mpeg::set_hms() << t4.mm << ":"
  621. + << Mpeg::set_hms() << t4.ss << ";" << Mpeg::set_hms() << t4.ff;
  622. + str = ss.str();
  623. }
  624. } // namespace TimeLine
  625. diff --git a/src/mgui/timeline/select.cpp b/src/mgui/timeline/select.cpp
  626. index 9d8ec5a..337ada6 100644
  627. --- a/src/mgui/timeline/select.cpp
  628. +++ b/src/mgui/timeline/select.cpp
  629. @@ -152,7 +152,7 @@ static void SaveFrame(DAMonitor& mon)
  630. mon.FramePixbuf()->save(fnam, ext);
  631. - SaveFrameDir() = fs::path(fnam).branch_path().string();
  632. + SaveFrameDir() = fs::path(fnam).parent_path().string();
  633. if( add_btn.get_active() )
  634. Project::TryAddMediaQuiet(fnam, "SaveFrame");
  635. }
  636. diff --git a/src/mgui/win_utils.cpp b/src/mgui/win_utils.cpp
  637. index e135f1a..beafca8 100644
  638. --- a/src/mgui/win_utils.cpp
  639. +++ b/src/mgui/win_utils.cpp
  640. @@ -132,7 +132,9 @@ void Scale(RefPtr<Context> cr, RefPtr<ImageSurface> src,
  641. std::string ColorToString(const unsigned int rgba)
  642. {
  643. - return (str::stream() << std::hex << (rgba >> 8)).str();
  644. + str::stream ss;
  645. + ss << std::hex << (rgba >> 8);
  646. + return ss.str();
  647. }
  648. CR::Color GetBGColor(Gtk::Widget& wdg)
  649. diff --git a/src/mlib/filesystem.cpp b/src/mlib/filesystem.cpp
  650. index 7ae7162..278dfc5 100644
  651. --- a/src/mlib/filesystem.cpp
  652. +++ b/src/mlib/filesystem.cpp
  653. @@ -30,6 +30,7 @@
  654. #if BOOST_MINOR_VERSION >= 51
  655. #define BOOST_FS_3 boost::filesystem
  656. #include <boost/filesystem/path_traits.hpp> // boost::filesystem::convert()
  657. +#include <boost/filesystem/directory.hpp>
  658. #else
  659. #define BOOST_FS_3 boost::filesystem3
  660. #include <boost/filesystem/v3/path_traits.hpp>
  661. @@ -161,25 +162,16 @@ namespace Project
  662. fs::path MakeAbsolutePath(const fs::path& pth, const fs::path& cur_dir)
  663. {
  664. - fs::path res;
  665. -
  666. - if( pth.is_complete() )
  667. - res = pth;
  668. - else
  669. - {
  670. - fs::path dir = cur_dir.empty() ? fs::current_path() : cur_dir ;
  671. - res = dir/pth;
  672. - }
  673. - return res.normalize();
  674. + return absolute(pth, cur_dir);
  675. }
  676. // оба аргумента должны быть абсолютными путями
  677. bool MakeRelativeToDir(fs::path& pth, fs::path dir)
  678. {
  679. - pth.normalize();
  680. - dir.normalize();
  681. - ASSERT( pth.is_complete() );
  682. - ASSERT( dir.is_complete() );
  683. + pth = canonical(pth);
  684. + dir = canonical(dir);
  685. + ASSERT( pth.is_absolute() );
  686. + ASSERT( dir.is_absolute() );
  687. fs::path::iterator p_itr = pth.begin(), p_end = pth.end();
  688. fs::path::iterator d_itr = dir.begin(), d_end = dir.end();
  689. diff --git a/src/mlib/read_stream.h b/src/mlib/read_stream.h
  690. index 9806ae3..05c6e1f 100644
  691. --- a/src/mlib/read_stream.h
  692. +++ b/src/mlib/read_stream.h
  693. @@ -22,6 +22,8 @@
  694. #ifndef __MLIB_READ_STREAM_H__
  695. #define __MLIB_READ_STREAM_H__
  696. +#include <boost/mpl/bool.hpp>
  697. +
  698. #include "stream.h"
  699. #include "filesystem.h"
  700. diff --git a/src/mlib/regex.cpp b/src/mlib/regex.cpp
  701. index df98fdb..dc9ea62 100644
  702. --- a/src/mlib/regex.cpp
  703. +++ b/src/mlib/regex.cpp
  704. @@ -22,7 +22,7 @@
  705. #include "regex.h"
  706. #include "string.h"
  707. -#include <boost/regex.hpp>
  708. +#include <boost/regex/v4/regex.hpp>
  709. namespace re
  710. {
  711. diff --git a/src/mlib/regex.h b/src/mlib/regex.h
  712. index 4a18717..8da1214 100644
  713. --- a/src/mlib/regex.h
  714. +++ b/src/mlib/regex.h
  715. @@ -27,6 +27,7 @@
  716. #include <boost/regex/v4/regbase.hpp>
  717. #include <boost/regex/v4/match_flags.hpp>
  718. +#include <boost/mpl/bool.hpp>
  719. #include <mlib/ptr.h>
  720. #include <string>
  721. @@ -185,7 +186,7 @@ bool search(const std::string& s,
  722. #define RG_EW "\\>" // конец слова
  723. #define RG_SPS "[[:space:]]*" // пробелы
  724. #define RG_NUM "([0-9]+)" // число
  725. -#define RG_FLT RG_NUM"([\\.,]"RG_NUM")" // вещ. число, в паре с ExtractDouble()
  726. +#define RG_FLT RG_NUM "([\\.,]" RG_NUM ")" // вещ. число, в паре с ExtractDouble()
  727. #define RG_CMD_BEG RG_BW // "^"RG_SPS // начало команды
  728. bool ExtractDouble(double& val, const re::match_results& what, int idx = 1);
  729. diff --git a/src/mlib/sdk/bfs.h b/src/mlib/sdk/bfs.h
  730. index c12b5d0..6e172cc 100644
  731. --- a/src/mlib/sdk/bfs.h
  732. +++ b/src/mlib/sdk/bfs.h
  733. @@ -7,6 +7,7 @@
  734. //#define BOOST_FILESYSTEM_NO_DEPRECATED
  735. #include <boost/filesystem/path.hpp>
  736. +#include <boost/filesystem/exception.hpp>
  737. #include <boost/filesystem/operations.hpp>
  738. #include <boost/filesystem/convenience.hpp> // fs::create_directories()
  739. diff --git a/src/mlib/sdk/misc.cpp b/src/mlib/sdk/misc.cpp
  740. index 5d3f297..803187b 100644
  741. --- a/src/mlib/sdk/misc.cpp
  742. +++ b/src/mlib/sdk/misc.cpp
  743. @@ -173,12 +173,16 @@ std::string PointToStr(const Point& pnt)
  744. std::string Double2Str(double val)
  745. {
  746. //return boost::format("%1%") % val % bf::stop;
  747. - return (str::stream() << val).str();
  748. + str::stream ss;
  749. + ss << val;
  750. + return ss.str();
  751. }
  752. std::string Int2Str(int val)
  753. {
  754. - return (str::stream() << val).str();
  755. + str::stream ss;
  756. + ss << val;
  757. + return ss.str();
  758. }
  759. static bool ICaseMatch(const std::string& str, const std::string& pat_str)
  760. diff --git a/src/mlib/sdk/system.cpp b/src/mlib/sdk/system.cpp
  761. index 8d10e3f..e9508bd 100644
  762. --- a/src/mlib/sdk/system.cpp
  763. +++ b/src/mlib/sdk/system.cpp
  764. @@ -28,7 +28,9 @@
  765. int GetMemSize()
  766. {
  767. pid_t pid = getpid();
  768. - std::string str = (str::stream() << "/proc/" << pid << "/statm").str();
  769. + str::stream ss;
  770. + ss << "/proc/" << pid << "/statm";
  771. + std::string str = ss.str();
  772. io::stream strm(str.c_str(), iof::in);
  773. int mem;
  774. diff --git a/src/mlib/tech.h b/src/mlib/tech.h
  775. index 6ddadf8..f2e2c2a 100644
  776. --- a/src/mlib/tech.h
  777. +++ b/src/mlib/tech.h
  778. @@ -26,7 +26,7 @@
  779. // Технические вещи
  780. //
  781. #include <boost/current_function.hpp> // для BOOST_CURRENT_FUNCTION
  782. -#include <boost/detail/endian.hpp> // для BOOST_XXX_ENDIAN
  783. +#include <boost/predef/other/endian.h> // BOOST_ENDIAN_*_BYTE
  784. #include <boost/version.hpp> // для BOOST_MINOR_VERSION
  785. // для С-шного кода в С++
  786. @@ -78,9 +78,9 @@ void AssertImpl(const char* assertion, const char* file,
  787. long line, const char* function);
  788. // endianness
  789. -#if defined(BOOST_BIG_ENDIAN)
  790. +#if defined(BOOST_ENDIAN_BIG_BYTE)
  791. # define HAS_BIG_ENDIAN
  792. -#elif defined(BOOST_LITTLE_ENDIAN)
  793. +#elif defined(BOOST_ENDIAN_LITTLE_BYTE)
  794. # define HAS_LITTLE_ENDIAN
  795. #else
  796. # error mlib/tech.h: unknown endianness (legacy PDP arch?)
  797. diff --git a/src/mlib/tests/test_utils.cpp b/src/mlib/tests/test_utils.cpp
  798. index c4712e8..99a2e94 100644
  799. --- a/src/mlib/tests/test_utils.cpp
  800. +++ b/src/mlib/tests/test_utils.cpp
  801. @@ -139,17 +139,17 @@ BOOST_AUTO_TEST_CASE( TestFilesystem )
  802. #endif
  803. }
  804. - // is_complete
  805. + // is_absolute
  806. {
  807. fs::path pth("../some_file");
  808. - BOOST_CHECK( !pth.is_complete() );
  809. - BOOST_CHECK( fs::current_path().is_complete() );
  810. + BOOST_CHECK( !pth.is_absolute() );
  811. + BOOST_CHECK( fs::current_path().is_absolute() );
  812. fs::path apth = Project::MakeAbsolutePath(pth);
  813. //LOG_INF << "Making abs path: " << pth.string() << " => " << apth.string() << io::endl;
  814. - BOOST_CHECK( Project::MakeAbsolutePath(pth, MakeRootComplete("/")).is_complete() );
  815. - BOOST_CHECK( !Project::MakeAbsolutePath(pth, "./").is_complete() );
  816. + BOOST_CHECK( Project::MakeAbsolutePath(pth, MakeRootComplete("/")).is_absolute() );
  817. + BOOST_CHECK( !Project::MakeAbsolutePath(pth, "./").is_absolute() );
  818. }
  819. // MakeRelativeToDir