diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-08-11 13:50:02 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-08-11 13:52:45 +0300 |
commit | c3a9fc5efb4a81f6efb28d0c787e17503deaee46 (patch) | |
tree | b4962e940b58d6d8bdd96886346563321f32277d /source/blender/blenkernel | |
parent | e2c6cfec184336e6820e805c232a19ffb5f8bfd9 (diff) |
Text: support comment without selection
D5451 by @Poulpator with fixes.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/text.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index 1a3e42a7da2..83be64e84c9 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -1931,7 +1931,7 @@ bool txt_replace_char(Text *text, unsigned int add) * * \note caller must handle undo. */ -static void txt_select_prefix(Text *text, const char *add) +static void txt_select_prefix(Text *text, const char *add, bool skip_blank_lines) { int len, num, curc_old, selc_old; char *tmp; @@ -1947,7 +1947,7 @@ static void txt_select_prefix(Text *text, const char *add) while (true) { /* don't indent blank lines */ - if (text->curl->len != 0) { + if ((text->curl->len != 0) || (skip_blank_lines == 0)) { tmp = MEM_mallocN(text->curl->len + indentlen + 1, "textline_string"); text->curc = 0; @@ -1971,7 +1971,9 @@ static void txt_select_prefix(Text *text, const char *add) } if (text->curl == text->sell) { - text->selc += indentlen; + if (text->curl->len != 0) { + text->selc += indentlen; + } break; } else { @@ -1995,7 +1997,9 @@ static void txt_select_prefix(Text *text, const char *add) text->curc = 0; } else { - text->curc = curc_old + indentlen; + if (text->curl->len != 0) { + text->curc = curc_old + indentlen; + } } } @@ -2089,7 +2093,8 @@ void txt_comment(Text *text) return; } - txt_select_prefix(text, prefix); + const bool skip_blank_lines = txt_has_sel(text); + txt_select_prefix(text, prefix, skip_blank_lines); } bool txt_uncomment(Text *text) @@ -2111,7 +2116,7 @@ void txt_indent(Text *text) return; } - txt_select_prefix(text, prefix); + txt_select_prefix(text, prefix, true); } bool txt_unindent(Text *text) |