Print number of lines and bytes written to file
This commit is contained in:
parent
68b2c7e0e7
commit
93719bf042
@ -119,8 +119,9 @@ void Buffer::load_text_in_buffer(uint8_t * buffer, size_t buffer_size, size_t da
|
||||
m_line_endings = text_loader.get_line_endings();
|
||||
}
|
||||
|
||||
bool Buffer::write_to_file(const char * filename)
|
||||
bool Buffer::write_to_file(const char * filename, size_t * n_lines, size_t * n_bytes)
|
||||
{
|
||||
size_t l_n_lines = 0;
|
||||
File file;
|
||||
if (!file.open(filename, true))
|
||||
{
|
||||
@ -134,6 +135,7 @@ bool Buffer::write_to_file(const char * filename)
|
||||
|
||||
while (start_of_line.valid())
|
||||
{
|
||||
l_n_lines++;
|
||||
Iterator iterator = start_of_line;
|
||||
iterator.go_end_of_line(true);
|
||||
size_t len = iterator.address() - start_of_line.address();
|
||||
@ -161,6 +163,14 @@ bool Buffer::write_to_file(const char * filename)
|
||||
start_of_line = iterator;
|
||||
}
|
||||
|
||||
if (n_lines != nullptr)
|
||||
{
|
||||
*n_lines = l_n_lines;
|
||||
}
|
||||
if (n_bytes != nullptr)
|
||||
{
|
||||
*n_bytes = bytes_written;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ public:
|
||||
Buffer();
|
||||
Buffer(const char * filename);
|
||||
Buffer(const uint8_t * data, size_t data_length);
|
||||
bool write_to_file(const char * filename);
|
||||
bool write_to_file(const char * filename, size_t * n_lines, size_t * n_bytes);
|
||||
|
||||
std::shared_ptr<Iterator> add_iterator()
|
||||
{
|
||||
|
@ -649,9 +649,14 @@ void Window::command_write_file(const CommandParser & cp)
|
||||
}
|
||||
if (path != "")
|
||||
{
|
||||
if (buffer->write_to_file(Path::clean(path).c_str()))
|
||||
size_t n_lines;
|
||||
size_t n_bytes;
|
||||
if (buffer->write_to_file(Path::clean(path).c_str(), &n_lines, &n_bytes))
|
||||
{
|
||||
set_status("Wrote file");
|
||||
char msg[100];
|
||||
sprintf(msg, "Wrote file: %u lines, %u bytes",
|
||||
(unsigned int)n_lines, (unsigned int)n_bytes);
|
||||
set_status(msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user