summaryrefslogtreecommitdiff
path: root/src/dged/buffer_view.c
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2024-11-12 20:19:56 +0100
committerAlbert Cervin <albert@acervin.com>2024-11-12 20:19:56 +0100
commit5ef45ab88f853f4eed273bc7341f3208fda0423c (patch)
tree730383baeb560a156b291c69ecd8e1ccaa9b3db1 /src/dged/buffer_view.c
parent19fb6109b8d222e3c870fbd3901369f1a5f06fdb (diff)
downloaddged-5ef45ab88f853f4eed273bc7341f3208fda0423c.tar.gz
dged-5ef45ab88f853f4eed273bc7341f3208fda0423c.tar.xz
dged-5ef45ab88f853f4eed273bc7341f3208fda0423c.zip
Skip empty lines when indenting region
Diffstat (limited to 'src/dged/buffer_view.c')
-rw-r--r--src/dged/buffer_view.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/dged/buffer_view.c b/src/dged/buffer_view.c
index 29ce307..a9bbe19 100644
--- a/src/dged/buffer_view.c
+++ b/src/dged/buffer_view.c
@@ -144,8 +144,13 @@ void buffer_view_indent(struct buffer_view *view) {
struct region reg = region_new(view->dot, view->mark);
if (view->mark_set && region_has_size(reg)) {
for (uint32_t line = reg.begin.line; line <= reg.end.line; ++line) {
- view->dot = buffer_indent(view->buffer,
- (struct location){.line = line, .col = 0});
+ if (buffer_line_length(view->buffer, line) == 0) {
+ continue;
+ }
+
+ struct location after = buffer_indent(
+ view->buffer, (struct location){.line = line, .col = 0});
+ view->dot.col += after.col;
}
} else {
view->dot = buffer_indent(view->buffer, view->dot);
@@ -156,8 +161,13 @@ void buffer_view_indent_alt(struct buffer_view *view) {
struct region reg = region_new(view->dot, view->mark);
if (view->mark_set && region_has_size(reg)) {
for (uint32_t line = reg.begin.line; line <= reg.end.line; ++line) {
- view->dot = buffer_indent_alt(view->buffer,
- (struct location){.line = line, .col = 0});
+ if (buffer_line_length(view->buffer, line) == 0) {
+ continue;
+ }
+
+ struct location after = buffer_indent_alt(
+ view->buffer, (struct location){.line = line, .col = 0});
+ view->dot.col += after.col;
}
} else {
view->dot = buffer_indent_alt(view->buffer, view->dot);