- /* If a single line is taller than a page, we need to consider it as
- a possible solution (but we give it a very bad score). */
- if (isinf (space.force_) && page_start == line)
- demerits = BAD_SPACING_PENALTY;
+
+ // Clamp the demerits at BAD_SPACING_PENALTY, even if the page
+ // is overfull. This ensures that TERRIBLE_SPACING_PENALTY takes
+ // precedence over overfull pages.
+ demerits = min (demerits, BAD_SPACING_PENALTY);