summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-05-15 10:37:01 +0100
committerMaxime Coste <frrrwww@gmail.com>2016-05-15 10:37:01 +0100
commitbaf219ee2fc0ffaad73015c35d650a53b84294c5 (patch)
treebca97a9ba33de3215a2657eac59ccc3aaec1622b /src/buffer_manager.cc
parent1788126f385c0d656b6addb0731f6205cc4856e5 (diff)
Fix duplicate buffer problem, fix real_path beahviour
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc
index 95a27df4..d6dc9ae0 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -25,9 +25,11 @@ BufferManager::~BufferManager()
Buffer* BufferManager::create_buffer(String name, Buffer::Flags flags,
StringView data, timespec fs_timestamp)
{
+ auto path = real_path(parse_filename(name));
for (auto& buf : m_buffers)
{
- if (buf->name() == name)
+ if (buf->name() == name or
+ (buf->flags() & Buffer::Flags::File and buf->name() == path))
throw name_not_unique();
}