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 ); } }