5.3. After the main loop

There are five exit points of the main loop:

  1. The last BP in the hyphenation try has exceeded the line length.
  2. The last BP has exceeded the line length, and we cannot get a hyphenation context.
  3. The last BP has exceeded the line length, and we do not hyphenate.
  4. The last BP has not exceeded the line length but forces a line break.
  5. We have run out of hyphenation points (and the last BP has not exceeded the line length).
  6. Natural end of the while loop: we are through the list of child layout managers.

If the last BP has exceeded the line length, it is not in the list of inline breaks, and prevBP points to the last good break; otherwise it is in the list of inline breaks, and prevBP points to it.