Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-08-11 13:50:02 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-08-11 13:52:45 +0300
commitc3a9fc5efb4a81f6efb28d0c787e17503deaee46 (patch)
treeb4962e940b58d6d8bdd96886346563321f32277d /source/blender/blenkernel/intern/text.c
parente2c6cfec184336e6820e805c232a19ffb5f8bfd9 (diff)
Text: support comment without selection
D5451 by @Poulpator with fixes.
Diffstat (limited to 'source/blender/blenkernel/intern/text.c')
-rw-r--r--source/blender/blenkernel/intern/text.c17
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)