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:
authorIan Thompson <quornian@googlemail.com>2008-08-16 18:38:08 +0400
committerIan Thompson <quornian@googlemail.com>2008-08-16 18:38:08 +0400
commit310a6e2179a9c55acbe3bdb833ff8420bd6eb216 (patch)
tree600444f8def0f5f7f5973c4ddb6b2e783d026365 /source/blender/blenkernel
parentd1d1d2b8702230138d4fddbafa63ce1e66a7ea0c (diff)
Esc removes markers in stages. Temporary markers are removed first (if any) then other markers follow.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_text.h4
-rw-r--r--source/blender/blenkernel/intern/text.c16
2 files changed, 14 insertions, 6 deletions
diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index 0094030e757..a80f3cec6c1 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -102,8 +102,8 @@ void txt_copy_clipboard (struct Text *text);
void txt_paste_clipboard (struct Text *text);
void txt_add_marker (struct Text *text, struct TextLine *line, int start, int end, char clr[4], int flags);
-void txt_clear_marker_region (struct Text *text, struct TextLine *line, int start, int end, int flags);
-void txt_clear_markers (struct Text *text, int flags);
+short txt_clear_marker_region (struct Text *text, struct TextLine *line, int start, int end, int flags);
+short txt_clear_markers (struct Text *text, int flags);
struct TextMarker *txt_find_marker (struct Text *text, struct TextLine *line, int curs, int flags);
struct TextMarker *txt_find_marker_region (struct Text *text, struct TextLine *line, int start, int end, int flags);
struct TextMarker *txt_prev_marker (struct Text *text, struct TextMarker *marker);
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index db5b568f043..451642c4670 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -2727,9 +2727,10 @@ TextMarker *txt_find_marker_region(Text *text, TextLine *line, int start, int en
/* Clears all markers on the specified line between two points with at least
the specified flags set. If flags is zero, all markers will be cleared */
-void txt_clear_marker_region(Text *text, TextLine *line, int start, int end, int flags) {
+short txt_clear_marker_region(Text *text, TextLine *line, int start, int end, int flags) {
TextMarker *marker, *next;
int lineno= txt_get_span(text->lines.first, line);
+ short cleared= 0;
for (marker=text->markers.first; marker; marker=next) {
next= marker->next;
@@ -2739,22 +2740,29 @@ void txt_clear_marker_region(Text *text, TextLine *line, int start, int end, int
else if (marker->lineno > lineno) break;
if ((marker->start==marker->end && start<=marker->start && marker->start<=end) ||
- (marker->start<end && marker->end>start))
+ (marker->start<end && marker->end>start)) {
BLI_freelinkN(&text->markers, marker);
+ cleared= 1;
+ }
}
+ return cleared;
}
/* Clears all markers with at least the specified flags set (useful for
clearing temporary markers) */
-void txt_clear_markers(Text *text, int flags) {
+short txt_clear_markers(Text *text, int flags) {
TextMarker *marker, *next;
+ short cleared= 0;
for (marker=text->markers.first; marker; marker=next) {
next= marker->next;
- if ((marker->flags & flags) == flags)
+ if ((marker->flags & flags) == flags) {
BLI_freelinkN(&text->markers, marker);
+ cleared= 1;
+ }
}
+ return cleared;
}
/* Finds the marker at the specified line and cursor position with at least the