]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-system.cc
Doc-fr: NR-1.5.2 merging rests
[lilypond.git] / lily / paper-system.cc
index 711d919446d4f8d21a3205563d6dde914aceb8b2..b67eb0123b1154dadc5ab2e7a6c92ea81a8d7758 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2004--2011 Jan Nieuwenhuizen <janneke@gnu.org>
+  Copyright (C) 2004--2015 Jan Nieuwenhuizen <janneke@gnu.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
 */
 
 #include "paper-system.hh"
 */
 
 #include "paper-system.hh"
+#include "international.hh"
 #include "item.hh"
 
 Prob *
 #include "item.hh"
 
 Prob *
@@ -30,9 +31,9 @@ make_paper_system (SCM immutable_init)
 /*
   TODO
   it might be interesting to split off the footnotes as well, ie.
 /*
   TODO
   it might be interesting to split off the footnotes as well, ie.
-  
-  get_footnotes(SCM expr, SCM* footnotes, SCM* cleaned) 
-    
+
+  get_footnotes(SCM expr, SCM* footnotes, SCM* cleaned)
+
   by doing it this way and overwriting the old expr in the caller,
   you can make sure nobody tries to handle footnotes differently
   downstream.
   by doing it this way and overwriting the old expr in the caller,
   you can make sure nobody tries to handle footnotes differently
   downstream.
@@ -45,13 +46,13 @@ get_footnotes (SCM expr)
 
   SCM head = scm_car (expr);
 
 
   SCM head = scm_car (expr);
 
-  if (head == ly_symbol2scm ("delay-stencil-evaluation"))
+  if (scm_is_eq (head, ly_symbol2scm ("delay-stencil-evaluation")))
     {
       // we likely need to do something here...just don't know what...
       return SCM_EOL;
     }
     {
       // we likely need to do something here...just don't know what...
       return SCM_EOL;
     }
-  
-  if (head == ly_symbol2scm ("combine-stencil"))
+
+  if (scm_is_eq (head, ly_symbol2scm ("combine-stencil")))
     {
       SCM out = SCM_EOL;
       SCM *tail = &out;
     {
       SCM out = SCM_EOL;
       SCM *tail = &out;
@@ -59,32 +60,23 @@ get_footnotes (SCM expr)
       for (SCM x = scm_cdr (expr); scm_is_pair (x); x = scm_cdr (x))
         {
           SCM footnote = get_footnotes (scm_car (x));
       for (SCM x = scm_cdr (expr); scm_is_pair (x); x = scm_cdr (x))
         {
           SCM footnote = get_footnotes (scm_car (x));
-          if (scm_is_pair (footnote))
-            {
-              for (SCM y = footnote; scm_is_pair (y); y = scm_cdr (y))
-                {
-                  *tail = scm_cons (scm_car (y), SCM_EOL);
-                  tail = SCM_CDRLOC (*tail);
-                }
-            }
-          else if (SCM_EOL != footnote)
+          if (!scm_is_null (footnote))
             {
               *tail = scm_cons (footnote, SCM_EOL);
               tail = SCM_CDRLOC (*tail);
             }
         }
             {
               *tail = scm_cons (footnote, SCM_EOL);
               tail = SCM_CDRLOC (*tail);
             }
         }
-      return out;
+      return scm_append (out);
     }
     }
-  if (head == ly_symbol2scm ("translate-stencil"))
+  if (scm_is_eq (head, ly_symbol2scm ("translate-stencil")))
     return get_footnotes (scm_caddr (expr));
 
     return get_footnotes (scm_caddr (expr));
 
-  if (head == ly_symbol2scm ("footnote"))
-    return scm_cadr (expr);
+  if (scm_is_eq (head, ly_symbol2scm ("footnote")))
+    return scm_list_1 (scm_cdr (expr));
 
   return SCM_EOL;
 }
 
 
   return SCM_EOL;
 }
 
-
 void
 paper_system_set_stencil (Prob *prob, Stencil s)
 {
 void
 paper_system_set_stencil (Prob *prob, Stencil s)
 {