diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-01-31 14:01:48 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-01-31 14:01:48 +0000 |
| commit | 830d96f7a161e536469c4158bddcb771c13af607 (patch) | |
| tree | c34e9077452cfeb71c240117ce12d848ad3e6795 /src | |
| parent | 959ec46a167203e69f2f1bad1569034206f02420 (diff) | |
Buffer: add NewFile buffer type for buffer with an non existing yet file
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer.cc | 6 | ||||
| -rw-r--r-- | src/buffer.hh | 1 | ||||
| -rw-r--r-- | src/main.cc | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/src/buffer.cc b/src/buffer.cc index 4f792e38..d5cb762c 100644 --- a/src/buffer.cc +++ b/src/buffer.cc @@ -28,7 +28,11 @@ Buffer::Buffer(const std::string& name, Type type, { BufferManager::instance().register_buffer(this); - GlobalHooksManager::instance().run_hook("BufCreate", name, Context(*this)); + if (type == Type::NewFile) + GlobalHooksManager::instance().run_hook("BufCreate", name, Context(*this)); + else if (type == Type::File) + GlobalHooksManager::instance().run_hook("BufOpen", name, Context(*this)); + compute_lines(); } diff --git a/src/buffer.hh b/src/buffer.hh index 3cedffd3..7b010c9b 100644 --- a/src/buffer.hh +++ b/src/buffer.hh @@ -111,6 +111,7 @@ public: enum class Type { File, + NewFile, Scratch }; diff --git a/src/main.cc b/src/main.cc index d0164737..d1a0ae85 100644 --- a/src/main.cc +++ b/src/main.cc @@ -515,7 +515,7 @@ Buffer* open_or_create(const std::string& filename) catch (file_not_found& what) { print_status("new file " + filename); - buffer = new Buffer(filename, Buffer::Type::File); + buffer = new Buffer(filename, Buffer::Type::NewFile); } return buffer; } @@ -554,7 +554,7 @@ void quit(const CommandParameters& params, const Context& context) { for (auto& buffer : BufferManager::instance()) { - if (buffer.type() == Buffer::Type::File and buffer.is_modified()) + if (buffer.type() != Buffer::Type::Scratch and buffer.is_modified()) { print_status("modified buffer remaining"); return; |
