|
@@ -289,6 +289,7 @@ int break_lines(struct Map_info *Map, struct ilist *List_break,
|
|
|
/* bline: line to break */
|
|
|
|
|
|
if (j == -1) {
|
|
|
+ /* check first for self-intersections */
|
|
|
if (aline <= nlines_org)
|
|
|
bline = aline;
|
|
|
else
|
|
@@ -319,12 +320,9 @@ int break_lines(struct Map_info *Map, struct ilist *List_break,
|
|
|
if (!break_a && !break_b)
|
|
|
continue;
|
|
|
|
|
|
- /* check intersection of aline with bline only once */
|
|
|
- if (0 && break_a && break_b &&
|
|
|
- aline > bline &&
|
|
|
- (!List_ref || b_is_ref)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
+ /* DO NOT check intersection of aline with bline only once
|
|
|
+ * because it can happen that one line is broken, but not
|
|
|
+ * the other line, in which case some breaks are not detected */
|
|
|
|
|
|
G_debug(3, " j = %d bline = %d", j, bline);
|
|
|
|