summaryrefslogtreecommitdiff
path: root/src/buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-09-01 13:59:40 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-09-01 20:49:47 +0100
commite9d7d70e47fd57476797508cc3ee415c54e86646 (patch)
tree28fdf57686a1fca4a1436b5e65c96e6dd1b385c0 /src/buffer.cc
parentae7dc3c576a0b44ed8eed7ace23b8ebedee3fdf2 (diff)
Cache buffer display name
Diffstat (limited to 'src/buffer.cc')
-rw-r--r--src/buffer.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/buffer.cc b/src/buffer.cc
index 3f76f20c..0685e5b3 100644
--- a/src/buffer.cc
+++ b/src/buffer.cc
@@ -20,7 +20,8 @@ namespace Kakoune
Buffer::Buffer(String name, Flags flags, BufferLines lines,
time_t fs_timestamp)
: Scope(GlobalScope::instance()),
- m_name(flags & Flags::File ? real_path(parse_filename(name)) : std::move(name)),
+ m_name((flags & Flags::File) ? real_path(parse_filename(name)) : std::move(name)),
+ m_display_name((flags & Flags::File) ? compact_path(m_name) : m_name),
m_flags(flags | Flags::NoUndo),
m_history(), m_history_cursor(m_history.begin()),
m_last_save_undo_index(0),
@@ -71,22 +72,21 @@ Buffer::~Buffer()
m_values.clear();
}
-String Buffer::display_name() const
-{
- if (m_flags & Flags::File)
- return compact_path(m_name);
- return m_name;
-}
-
bool Buffer::set_name(String name)
{
Buffer* other = BufferManager::instance().get_buffer_ifp(name);
if (other == nullptr or other == this)
{
if (m_flags & Flags::File)
+ {
m_name = real_path(name);
+ m_display_name = compact_path(m_name);
+ }
else
+ {
m_name = std::move(name);
+ m_display_name = m_name;
+ }
return true;
}
return false;