From 9b1a6b69525a02c7cc7c989098427891ff184410 Mon Sep 17 00:00:00 2001
From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Wed, 31 Jan 2007 18:24:23 +0100
Subject: [PATCH] Fix #262.

Add extendersOverRests property.
---
 input/regression/lyric-extender-rest.ly | 25 +++++++++++++++++++++++++
 lily/extender-engraver.cc               |  7 +++++--
 scm/define-context-properties.scm       |  2 ++
 3 files changed, 32 insertions(+), 2 deletions(-)
 create mode 100644 input/regression/lyric-extender-rest.ly

diff --git a/input/regression/lyric-extender-rest.ly b/input/regression/lyric-extender-rest.ly
new file mode 100644
index 0000000000..ea096f7a7c
--- /dev/null
+++ b/input/regression/lyric-extender-rest.ly
@@ -0,0 +1,25 @@
+
+\header {
+
+  texidoc = "If @code{extendersOverRests} is set, an extender
+is not terminated upon encountering a rest. "
+
+}
+
+\paper {
+  ragged-right = ##T
+}
+
+\version "2.11.15"
+
+<<
+  \new Voice = "one" \relative c'' {
+    c4\melisma 
+    c4 r c\melismaEnd c
+  }
+  \new Lyrics \lyricsto "one" {
+    \set extendersOverRests = ##t 
+
+    Test __ end
+  }
+>>
diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc
index 46d43e0907..1fb1e1d3f9 100644
--- a/lily/extender-engraver.cc
+++ b/lily/extender-engraver.cc
@@ -34,7 +34,9 @@ public:
 protected:
   DECLARE_TRANSLATOR_LISTENER (extender);
   DECLARE_ACKNOWLEDGER (lyric_syllable);
+
   virtual void finalize ();
+
   void stop_translation_timestep ();
   void process_music ();
 };
@@ -99,7 +101,8 @@ Extender_engraver::stop_translation_timestep ()
 	}
       else
 	{
-	  if (pending_extender_)
+	  if (pending_extender_
+	      && !get_property ("extendersOverRests"))
 	    {
 	      completize_extender (pending_extender_);
 	      pending_extender_ = 0;
@@ -153,5 +156,5 @@ ADD_ACKNOWLEDGER (Extender_engraver, lyric_syllable);
 ADD_TRANSLATOR (Extender_engraver,
 		/* doc */ "Create lyric extenders",
 		/* create */ "LyricExtender",
-		/* read */ "",
+		/* read */ "extendersOverRests",
 		/* write */ "");
diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm
index e7107ead21..859c6b6ad9 100644
--- a/scm/define-context-properties.scm
+++ b/scm/define-context-properties.scm
@@ -206,6 +206,8 @@ note, one above and one below the chord.")
 changes. @samp{\\override} of the @code{break-visibility} property will set the
 visibility for normal (i.e. at the start of the line) key signatures.")
 
+     (extendersOverRests ,boolean? "Whether to continue extenders as
+they cross a rest.")
      (extraNatural ,boolean? "Whether to typeset an
 extra natural sign before accidentals changing from a non-natural to 
 another non-natural.")
-- 
2.39.5