From b665c32c29795164184fe5ab90a1b2d14c3cc551 Mon Sep 17 00:00:00 2001
From: Joe Neeman <joeneeman@gmail.com>
Date: Wed, 9 Dec 2009 19:56:15 -0800
Subject: [PATCH] Ensure non-breakpoints are also non-turnpoints.

---
 lily/page-turn-page-breaking.cc | 12 +++++++++++-
 lily/paper-column-engraver.cc   |  1 +
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lily/page-turn-page-breaking.cc b/lily/page-turn-page-breaking.cc
index 163cdd1fc0..c9029cf7b5 100644
--- a/lily/page-turn-page-breaking.cc
+++ b/lily/page-turn-page-breaking.cc
@@ -32,7 +32,17 @@
 static bool
 is_break (Grob *g)
 {
-  return scm_is_symbol (g->get_property ("page-turn-permission"));
+  bool turnable = scm_is_symbol (g->get_property ("page-turn-permission"));
+
+  if (turnable &&
+      (!scm_is_symbol (g->get_property ("page-break-permission"))
+       || !scm_is_symbol (g->get_property ("line-break-permission"))))
+    {
+      programming_error ("found a page-turnable place which was not breakable");
+      turnable = false;
+    }
+
+  return turnable;
 }
 
 Page_turn_page_breaking::Page_turn_page_breaking (Paper_book *pb)
diff --git a/lily/paper-column-engraver.cc b/lily/paper-column-engraver.cc
index 0ee946131f..bce6febc43 100644
--- a/lily/paper-column-engraver.cc
+++ b/lily/paper-column-engraver.cc
@@ -223,6 +223,7 @@ Paper_column_engraver::stop_translation_timestep ()
   if (to_boolean (get_property ("forbidBreak"))
      && breaks_) /* don't honour forbidBreak if it occurs on the first moment of a score */
     {
+      command_column_->set_property ("page-turn-permission", SCM_EOL);
       command_column_->set_property ("page-break-permission", SCM_EOL);
       command_column_->set_property ("line-break-permission", SCM_EOL);
       for (vsize i = 0; i < break_events_.size (); i++)
-- 
2.39.5