From e9d7d70e47fd57476797508cc3ee415c54e86646 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 1 Sep 2015 13:59:40 +0100 Subject: Cache buffer display name --- src/buffer.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/buffer.cc') 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; -- cgit v1.2.3