summaryrefslogtreecommitdiff
path: root/src/commands.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-10-16 13:58:56 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-10-17 11:33:09 +0100
commit76fadd81081d7bb762d143dfd2ecca73637328a7 (patch)
tree8619b5d6b599abd7ef7471f5ee224d89eabbd6a1 /src/commands.cc
parentfe704b9b8433145602b1ec63f030ea98b378811d (diff)
More cleanups in the buffer open/reload code
Diffstat (limited to 'src/commands.cc')
-rw-r--r--src/commands.cc13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/commands.cc b/src/commands.cc
index 338686b1..311520c8 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -135,7 +135,7 @@ void edit(const ParametersParser& parser, Context& context)
Buffer* buffer = buffer_manager.get_buffer_ifp(name);
Buffer* oldbuf = &context.buffer();
- // TODO fifo reload
+
if (force_reload and buffer and buffer->flags() & Buffer::Flags::File)
reload_file_buffer(*buffer);
else
@@ -154,16 +154,11 @@ void edit(const ParametersParser& parser, Context& context)
buffer = open_fifo(name, *fifo, (bool)parser.get_switch("scroll"));
else if (not buffer)
{
- buffer = create_file_buffer(name);
- if (not buffer)
- {
- if (parser.get_switch("existing"))
- throw runtime_error(format("unable to open '{}'", name));
-
+ buffer = parser.get_switch("existing") ? open_file_buffer(name)
+ : open_or_create_file_buffer(name);
+ if (buffer->flags() & Buffer::Flags::New)
context.print_status({ format("new file '{}'", name),
get_face("StatusLine") });
- buffer = new Buffer(name, Buffer::Flags::File | Buffer::Flags::New);
- }
}
}