]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/repeat-acknowledge-engraver.cc
Issue 1320: preliminary work - repeat bars defined as context properties
[lilypond.git] / lily / repeat-acknowledge-engraver.cc
index 4e4b91e3a27104452df81d56e3ca29b28853d4a5..6d2b508481d062d73dcf7475ad0c9dc0c420915c 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  repeat-acknowledge-engraver.cc -- implement Repeat_acknowledge_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 2000--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "engraver.hh"
@@ -74,20 +85,20 @@ Repeat_acknowledge_engraver::process_music ()
     {
       SCM command = scm_car (cs);
       if (command == ly_symbol2scm ("start-repeat"))
-       start = true;
+        start = true;
       else if (command == ly_symbol2scm ("end-repeat"))
-       end = true;
+        end = true;
       else if (scm_is_pair (command) && scm_car (command) == ly_symbol2scm ("volta"))
-       volta_found = true;
+        volta_found = true;
       cs = scm_cdr (cs);
     }
 
   if (start && end)
     s = robust_scm2string (get_property ("doubleRepeatType"), ":|:");
   else if (start)
-    s = "|:";
+    s = robust_scm2string (get_property ("startRepeatType"), "|:");
   else if (end)
-    s = ":|";
+    s =  robust_scm2string (get_property ("endRepeatType"), ":|");
 
   /*
     TODO: line breaks might be allowed if we set whichBar to "".
@@ -102,24 +113,24 @@ Repeat_acknowledge_engraver::process_music ()
   if (!scm_is_string (wb) || ly_is_equal (db, wb))
     {
       if (s != "" || (volta_found && !scm_is_string (wb)))
-       context ()->set_property ("whichBar", ly_string2scm (s));
+        context ()->set_property ("whichBar", ly_string2scm (s));
     }
 }
 
 ADD_TRANSLATOR (Repeat_acknowledge_engraver,
-               /* doc */
-               "Acknowledge repeated music, and convert the contents of"
-               " @code{repeatCommands} into an appropriate setting for"
-               " @code{whichBar}.",
-
-               /* create */
-               "",
-
-               /* read */
-               "doubleRepeatType "
-               "repeatCommands "
-               "whichBar ",
-
-               /* write */
-               ""
-               );
+                /* doc */
+                "Acknowledge repeated music, and convert the contents of"
+                " @code{repeatCommands} into an appropriate setting for"
+                " @code{whichBar}.",
+
+                /* create */
+                "",
+
+                /* read */
+                "doubleRepeatType "
+                "repeatCommands "
+                "whichBar ",
+
+                /* write */
+                ""
+               );