#include "support/Package.h"
#include "support/lassert.h"
-#include "support/bind.h"
#include <algorithm>
-#include <functional>
#include <iterator>
#include <memory>
Buffer * BufferList::createNewBuffer(string const & s)
{
- auto_ptr<Buffer> tmpbuf;
+ unique_ptr<Buffer> tmpbuf;
try {
- tmpbuf.reset(new Buffer(s));
+ tmpbuf = make_unique<Buffer>(s);
} catch (ExceptionMessage const & message) {
if (message.type_ == ErrorException) {
Alert::error(message.title_, message.details_);
}
+void BufferList::invalidateConverterCache() const
+{
+ BufferStorage::const_iterator it = bstore.begin();
+ BufferStorage::const_iterator const en = bstore.end();
+ for (; it != en; ++it)
+ (*it)->params().invalidateConverterCache();
+}
+
+
bool BufferList::exists(FileName const & fname) const
{
return getBuffer(fname) != 0;
Buffer const * parent_ = child->parent();
if (parent_ && parent_ != parent)
return true;
-
- BufferStorage::iterator it = bstore.begin();
- BufferStorage::iterator end = bstore.end();
- for (; it != end; ++it) {
- Buffer * buf = *it;
+
+ for(Buffer * buf : bstore)
if (buf != parent && buf->isChild(child))
return true;
- }
return false;
}
-namespace {
-
-struct equivalent_to : public binary_function<FileName, FileName, bool>
-{
- bool operator()(FileName const & x, FileName const & y) const
- { return equivalent(x, y); }
-};
-
-}
-
-
Buffer * BufferList::getBuffer(support::FileName const & fname, bool internal) const
{
// 1) cheap test, using string comparison of file names
- BufferStorage::const_iterator it = find_if(bstore.begin(), bstore.end(),
- lyx::bind(equal_to<FileName>(), lyx::bind(&Buffer::fileName, _1), fname));
- if (it != bstore.end())
- return *it;
+ for (Buffer * b : bstore)
+ if (b->fileName() == fname)
+ return b;
// 2) possibly expensive test, using equivalence test of file names
- it = find_if(bstore.begin(), bstore.end(),
- lyx::bind(equivalent_to(), lyx::bind(&Buffer::fileName, _1), fname));
- if (it != bstore.end())
- return *it;
-
+ for (Buffer * b : bstore)
+ if (equivalent(b->fileName(), fname))
+ return b;
if (internal) {
// 1) cheap test, using string comparison of file names
- BufferStorage::const_iterator it = find_if(binternal.begin(), binternal.end(),
- lyx::bind(equal_to<FileName>(), lyx::bind(&Buffer::fileName, _1), fname));
- if (it != binternal.end())
- return *it;
+ for (Buffer * b : binternal)
+ if (b->fileName() == fname)
+ return b;
// 2) possibly expensive test, using equivalence test of file names
- it = find_if(binternal.begin(), binternal.end(),
- lyx::bind(equivalent_to(), lyx::bind(&Buffer::fileName, _1), fname));
- if (it != binternal.end())
- return *it;
+ for (Buffer * b : binternal)
+ if (equivalent(b->fileName(), fname))
+ return b;
}
-
return 0;
}