From 22bf92af2c54f3b4a7ff083f5e6f0364cef08a08 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 28 Aug 2016 16:12:05 +0200 Subject: [PATCH] Forgot to switch terminal flags when orienting AutoSegments (again!). --- anabatic/src/AutoHorizontal.cpp | 5 +++++ anabatic/src/AutoSegment.cpp | 3 ++- anabatic/src/AutoVertical.cpp | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index f87c587b..d21369f0 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -410,6 +410,11 @@ namespace Anabatic { unsetFlags( SegInvalidatedSource|SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource ); + + unsigned int terminalFlags = _flags & SegStrongTerminal; + unsetFlags( SegStrongTerminal ); + if (terminalFlags & SegSourceTerminal) setFlags( SegTargetTerminal ); + if (terminalFlags & SegTargetTerminal) setFlags( SegSourceTerminal ); } } diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index a1f6af6c..684bd31c 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -886,8 +886,9 @@ namespace Anabatic { case SegWeakTerminal1: terminalFlag = SegWeakTerminal1; break; case SegWeakTerminal2: terminalFlag = SegWeakTerminal2; break; default: - cerr << Warning("%s has multiple terminal flag sets: %x." + cerr << Warning("%s has multiple terminal flag sets:%s (%x)." ,getString(this).c_str() + ,_getStringFlags().c_str() ,_flags ) << endl; terminalFlag = SegWeakTerminal2; break; diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index 9976ec1b..79fc9396 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -347,6 +347,11 @@ namespace Anabatic { unsetFlags( SegInvalidatedSource|SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource ); + + unsigned int terminalFlags = _flags & SegStrongTerminal; + unsetFlags( SegStrongTerminal ); + if (terminalFlags & SegSourceTerminal) setFlags( SegTargetTerminal ); + if (terminalFlags & SegTargetTerminal) setFlags( SegSourceTerminal ); } }