summaryrefslogtreecommitdiff
path: root/src/buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2023-06-21 17:36:33 +1000
committerMaxime Coste <mawww@kakoune.org>2023-06-21 17:36:33 +1000
commite06e409dc16cd98e0353b6bd33b311efbc792000 (patch)
treee665f6b201bb21b9799012ea200546abbc7767a9 /src/buffer.cc
parente365c42b4be5c342c9fe97500a7232e43cc9ae25 (diff)
Another small structured binding conversion
Diffstat (limited to 'src/buffer.cc')
-rw-r--r--src/buffer.cc28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/buffer.cc b/src/buffer.cc
index c968690f..4460bab7 100644
--- a/src/buffer.cc
+++ b/src/buffer.cc
@@ -221,36 +221,36 @@ void Buffer::reload(BufferLines lines, ByteOrderMark bom, EolFormat eolformat, F
auto it = m_lines.begin();
auto new_it = lines.begin();
- for (auto& d : diff)
+ for (auto& [op, len] : diff)
{
- if (d.op == DiffOp::Keep)
+ if (op == DiffOp::Keep)
{
- it += d.len;
- new_it += d.len;
+ it += len;
+ new_it += len;
}
- else if (d.op == DiffOp::Add)
+ else if (op == DiffOp::Add)
{
const LineCount cur_line = (int)(it - m_lines.begin());
- for (LineCount line = 0; line < d.len; ++line)
+ for (LineCount line = 0; line < len; ++line)
m_current_undo_group.push_back({Modification::Insert, cur_line + line, *(new_it + (int)line)});
- m_changes.push_back({Change::Insert, cur_line, cur_line + d.len});
- m_lines.insert(it, new_it, new_it + d.len);
- it = m_lines.begin() + (int)(cur_line + d.len);
- new_it += d.len;
+ m_changes.push_back({Change::Insert, cur_line, cur_line + len});
+ m_lines.insert(it, new_it, new_it + len);
+ it = m_lines.begin() + (int)(cur_line + len);
+ new_it += len;
}
- else if (d.op == DiffOp::Remove)
+ else if (op == DiffOp::Remove)
{
const LineCount cur_line = (int)(it - m_lines.begin());
- for (LineCount line = d.len-1; line >= 0; --line)
+ for (LineCount line = len-1; line >= 0; --line)
m_current_undo_group.push_back({
Modification::Erase, cur_line + line,
m_lines.get_storage(cur_line + line)});
- it = m_lines.erase(it, it + d.len);
- m_changes.push_back({ Change::Erase, cur_line, cur_line + d.len });
+ it = m_lines.erase(it, it + len);
+ m_changes.push_back({ Change::Erase, cur_line, cur_line + len });
}
}
}