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>2010-07-30 02:34:46 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-07-30 02:34:46 +0400
commitb1f53d98e4332cfa17b7e30fb8fa11feda5d826e (patch)
tree0d0633f65dfe266bcc7d3af462575b728782ad65 /source/blender/blenkernel/intern/text.c
parentc1fd3ae7a0228ed44a6c4ce481694b41eca0f030 (diff)
patch [#23088] 2.5 Text Editor: Preserve indentation with spaces
from Fabian Fricke (frigi)
Diffstat (limited to 'source/blender/blenkernel/intern/text.c')
-rw-r--r--source/blender/blenkernel/intern/text.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 71c5963c52b..5a6ebb187cf 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -2683,19 +2683,20 @@ void uncomment(Text *text)
}
}
-int setcurr_tab (Text *text)
+int setcurr_tab_spaces (Text *text, int space)
{
int i = 0;
int test = 0;
- char *word = ":";
- char *comm = "#";
+ const char *word = ":";
+ const char *comm = "#";
+ const char indent= (text->flags & TXT_TABSTOSPACES) ? ' ' : '\t';
static char *back_words[]= {"return", "break", "continue", "pass", "yield", NULL};
if (!text) return 0;
if (!text->curl) return 0;
-
- while (text->curl->line[i] == '\t')
+
+ while (text->curl->line[i] == indent)
{
- //we only count thos tabs that are before any text or before the curs;
+ //we only count those tabs/spaces that are before any text or before the curs;
if (i == text->curc)
{
return i;
@@ -2718,7 +2719,7 @@ int setcurr_tab (Text *text)
}
}
if (indent) {
- i++;
+ i += space;
}
}
@@ -2729,7 +2730,7 @@ int setcurr_tab (Text *text)
{
if(strcspn(text->curl->line, back_words[test]) < strcspn(text->curl->line, comm))
{
- i--;
+ i -= space;
}
}
}