]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.61
authorfred <fred>
Sun, 24 Mar 2002 20:11:26 +0000 (20:11 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:11:26 +0000 (20:11 +0000)
427 files changed:
bin/clean-diaper.sh
flower/axis.cc
flower/choleski.cc
flower/cpu-timer.cc
flower/directed-graph.cc
flower/dstream.cc
flower/file-path.cc [new file with mode: 0644]
flower/full-storage.cc
flower/include/acursor.hh
flower/include/arithmetic-operator.hh
flower/include/axes.hh
flower/include/cpu-timer.hh
flower/include/cursor.icc
flower/include/data-file.hh
flower/include/diagonal-storage.hh
flower/include/dictionary-iter.hh
flower/include/dictionary.hh
flower/include/directed-graph.hh
flower/include/dstream.hh
flower/include/file-path.hh [new file with mode: 0644]
flower/include/flower-debug.hh
flower/include/fproto.hh
flower/include/full-storage.hh
flower/include/full-storage.icc
flower/include/international.hh
flower/include/interval.hh
flower/include/interval.tcc
flower/include/iterate.hh
flower/include/libc-extension.hh
flower/include/list.icc
flower/include/list.tcc
flower/include/matrix-storage.hh
flower/include/matrix.hh
flower/include/nscalar.hh
flower/include/parray.hh
flower/include/plist.icc
flower/include/plist.tcc
flower/include/pointer.hh
flower/include/pointer.tcc
flower/include/pqueue.hh
flower/include/priorities.hh
flower/include/rational.hh
flower/include/real.hh
flower/include/scalar.hh
flower/include/string-data.hh
flower/include/string-data.icc
flower/include/string-handle.hh
flower/include/string-handle.icc
flower/include/string.icc
flower/include/virtual-methods.hh
flower/interval.cc
flower/libc-extension.cc
flower/matrix-debug.cc
flower/matrix.cc
flower/nscalar.cc
flower/offset.cc
flower/rational.cc
flower/scalar.cc
flower/string.cc
flower/stringutil.cc
lib/binary-source-file.cc
lib/include/duration-convert.hh
lib/include/duration-iter.hh [new file with mode: 0644]
lib/include/duration.hh
lib/include/file-storage.hh
lib/include/input.hh
lib/include/mapped-file-storage.hh
lib/include/plet.hh
lib/include/simple-file-storage.hh
lib/include/warn.hh
lib/input.cc
lib/mapped-file-storage.cc
lib/moment.cc
lib/plet.cc
lib/simple-file-storage.cc
lib/source-file.cc
lib/source.cc
lib/template.cc
lily/abbrev.cc
lily/abbreviation-beam-engraver.cc
lily/abbreviation-beam.cc
lily/atom.cc
lily/audio-column.cc
lily/audio-element.cc
lily/audio-item.cc
lily/audio-staff.cc
lily/axis-group-administration.cc
lily/axis-group-element.cc
lily/axis-group-item.cc
lily/axis-group-spanner.cc
lily/bar-column-grav.cc
lily/bar-column.cc
lily/bar-grav.cc
lily/bar-number-grav.cc
lily/bar.cc
lily/beam-grav.cc
lily/beam-swallow-trans.cc
lily/beam.cc
lily/bezier.cc
lily/bow.cc
lily/boxes.cc
lily/break-align-item.cc
lily/break.cc
lily/change-iterator.cc
lily/change-translator.cc
lily/chord-iterator.cc
lily/clef-grav.cc
lily/clef-item.cc
lily/col-info.cc
lily/colhpos.cc
lily/collision-grav.cc
lily/collision.cc
lily/command-request.cc
lily/crescendo.cc
lily/dot-column.cc
lily/dots.cc
lily/dynamic-grav.cc
lily/encompass-info.cc [new file with mode: 0644]
lily/engraver-group.cc
lily/engraver.cc
lily/file-results.cc [new file with mode: 0644]
lily/general-script-def.cc
lily/global-translator.cc
lily/gourlay-breaking.cc
lily/graphical-element.cc
lily/grouping.cc
lily/head-grav.cc
lily/header.cc
lily/horizontal-align-item.cc
lily/horizontal-group-item.cc
lily/horizontal-vertical-group-item.cc
lily/idealspacing.cc
lily/identifier.cc
lily/includable-lexer.cc
lily/include/abbrev.hh
lily/include/abbreviation-beam-engraver.hh
lily/include/abbreviation-beam.hh
lily/include/atom.hh
lily/include/audio-column.hh
lily/include/audio-element.hh
lily/include/audio-item.hh
lily/include/audio-staff.hh
lily/include/axis-group-administration.hh
lily/include/axis-group-element.hh
lily/include/axis-group-item.hh
lily/include/axis-group-spanner.hh
lily/include/bar-align-grav.hh
lily/include/bar-column-grav.hh
lily/include/bar-column.hh
lily/include/bar-grav.hh
lily/include/bar-number-grav.hh
lily/include/beam-grav.hh
lily/include/beam-swallow-trans.hh
lily/include/beam.hh
lily/include/bow.hh
lily/include/break-align-item.hh
lily/include/break-caching.hh
lily/include/break.hh
lily/include/change-iterator.hh
lily/include/change-translator.hh
lily/include/chord-iterator.hh
lily/include/clef-grav.hh
lily/include/col-info.hh
lily/include/colhpos.hh
lily/include/collision-grav.hh
lily/include/collision.hh
lily/include/command-request.hh
lily/include/crescendo.hh
lily/include/direction.hh
lily/include/dot-column-grav.hh
lily/include/dot-column.hh
lily/include/dots.hh
lily/include/drul-array.hh
lily/include/dynamic-grav.hh
lily/include/elem-group.hh
lily/include/encompass-info.hh [new file with mode: 0644]
lily/include/engraver-group.hh
lily/include/engraver.hh
lily/include/file-results.hh [new file with mode: 0644]
lily/include/general-script-def.hh
lily/include/global-translator.hh
lily/include/gourlay-breaking.hh
lily/include/graphical-element.hh
lily/include/head-grav.hh
lily/include/header.hh
lily/include/horizontal-align-item.hh
lily/include/horizontal-group-elem.hh
lily/include/horizontal-group-item.hh
lily/include/horizontal-vertical-group-elem.hh
lily/include/horizontal-vertical-group-item.hh
lily/include/identifier.hh
lily/include/includable-lexer.hh
lily/include/ineq-constrained-qp.hh
lily/include/item.hh
lily/include/key-grav.hh
lily/include/key-performer.hh
lily/include/lily-proto.hh
lily/include/line-group-grav.hh
lily/include/line-spacer.hh
lily/include/linear-programming.hh
lily/include/linespace.hh
lily/include/local-key-grav.hh
lily/include/lookup.hh
lily/include/lyric-engraver.hh
lily/include/lyric-performer.hh
lily/include/main.hh
lily/include/meter-grav.hh
lily/include/meter-performer.hh
lily/include/midi-def.hh
lily/include/midi-item.hh
lily/include/midi-stream.hh
lily/include/midi-walker.hh
lily/include/minterval.hh
lily/include/misc.hh
lily/include/molecule.hh
lily/include/music-iterator.hh
lily/include/music-list.hh
lily/include/music-output-def.hh
lily/include/music-output.hh
lily/include/music.hh
lily/include/musical-request.hh
lily/include/my-lily-lexer.hh
lily/include/my-lily-parser.hh
lily/include/note-column.hh
lily/include/note-performer.hh
lily/include/notename-table.hh
lily/include/outputter.hh
lily/include/p-col.hh
lily/include/p-score.hh
lily/include/paper-def.hh
lily/include/performance.hh
lily/include/performer-group-performer.hh
lily/include/performer.hh
lily/include/pitch-squash-grav.hh
lily/include/plet-engraver.hh
lily/include/plet-spanner.hh
lily/include/plet-swallow-engraver.hh
lily/include/priority-halign-grav.hh
lily/include/property-iterator.hh
lily/include/qlp.hh
lily/include/qlpsolve.hh
lily/include/request-iterator.hh
lily/include/request.hh
lily/include/rest-collision-grav.hh
lily/include/rest-collision.hh
lily/include/rest-grav.hh
lily/include/rest.hh
lily/include/rhythmic-column-grav.hh
lily/include/rhythmic-head.hh
lily/include/score-bar.hh
lily/include/score-column.hh
lily/include/score-elem-info.hh
lily/include/score-grav.hh
lily/include/score-performer.hh
lily/include/score-priority-grav.hh
lily/include/score.hh
lily/include/script-column.hh
lily/include/script-grav.hh
lily/include/single-malt-grouping-item.hh
lily/include/slur-grav.hh
lily/include/span-bar-grav.hh
lily/include/span-bar.hh
lily/include/span-score-bar-grav.hh
lily/include/span-score-bar.hh
lily/include/spring-spacer.hh
lily/include/staff-info.hh
lily/include/staff-performer.hh
lily/include/staff-side.hh
lily/include/staff-sym-grav.hh
lily/include/staff-sym.hh
lily/include/stem-grav.hh
lily/include/stem-info.hh
lily/include/stem.hh
lily/include/super-elem.hh
lily/include/swallow-grav.hh
lily/include/swallow-perf.hh
lily/include/symtable.hh
lily/include/tex.hh
lily/include/tie-grav.hh
lily/include/tie.hh
lily/include/timing-grav.hh
lily/include/timing-translator.hh
lily/include/translation-property.hh
lily/include/translator-change.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/type-swallow-trans.hh
lily/include/vertical-align-elem.hh
lily/include/vertical-align-grav.hh
lily/include/vertical-align-spanner.hh
lily/include/vertical-group-elem.hh
lily/include/vertical-group-spanner.hh
lily/include/voice-iterator.hh
lily/include/word-wrap.hh
lily/ineq-constrained-qp.cc
lily/item.cc
lily/key-grav.cc
lily/key-item.cc
lily/key-performer.cc
lily/key.cc
lily/lexerinit.cc
lily/line-group-grav.cc
lily/line-spacer.cc
lily/linear-programming.cc
lily/local-key-grav.cc
lily/local-key-item.cc
lily/lookup.cc
lily/lyric-grav.cc
lily/lyric-performer.cc
lily/main.cc
lily/meter-grav.cc
lily/meter-performer.cc
lily/midi-def.cc
lily/midi-item.cc
lily/midi-stream.cc
lily/midi-walker.cc
lily/misc.cc
lily/molecule.cc
lily/music-iterator.cc
lily/music-list.cc
lily/music-output-def.cc
lily/music.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/note-column.cc
lily/note-head.cc
lily/note-performer.cc
lily/notename-table.cc
lily/outputter.cc
lily/p-col.cc
lily/p-score.cc
lily/paper-def.cc
lily/performance.cc
lily/performer-group-performer.cc
lily/performer.cc
lily/pitch-squash-grav.cc
lily/plet-engraver.cc
lily/plet-spanner.cc
lily/plet-swallow-engraver.cc
lily/priority-halign-grav.cc
lily/property-iterator.cc
lily/ps-plet.cc
lily/qlp.cc
lily/qlpsolve.cc
lily/request-iterator.cc
lily/request.cc
lily/rest-collision-grav.cc
lily/rest-collision.cc
lily/rest-grav.cc
lily/rest.cc
lily/rhythmic-column-grav.cc
lily/rhythmic-head.cc
lily/score-bar.cc
lily/score-column.cc
lily/score-elem-info.cc
lily/score-elem.cc
lily/score-grav.cc
lily/score-performer.cc
lily/score-priority-grav.cc
lily/score.cc
lily/scoreline.cc
lily/scores.cc
lily/script-column.cc
lily/script-def.cc
lily/script-grav.cc
lily/script.cc
lily/slur-grav.cc
lily/slur.cc
lily/span-bar-grav.cc
lily/span-bar.cc
lily/span-score-bar-grav.cc
lily/span-score-bar.cc
lily/spanner.cc
lily/spring-spacer.cc
lily/staff-info.cc
lily/staff-performer.cc
lily/staff-side.cc
lily/staff-sym-grav.cc
lily/staff-sym.cc
lily/stem-grav.cc
lily/stem-info.cc
lily/stem.cc
lily/super-elem.cc
lily/swallow-grav.cc
lily/swallow-perf.cc
lily/symtable.cc
lily/template1.cc
lily/template2.cc
lily/template3.cc
lily/template4.cc
lily/template5.cc
lily/template7.cc
lily/template8.cc
lily/tex-beam.cc
lily/tex-stream.cc
lily/tex.cc
lily/text-def.cc
lily/text-item.cc
lily/text-spanner.cc
lily/tie-grav.cc
lily/tie.cc
lily/time-description.cc
lily/timing-grav.cc
lily/timing-translator.cc
lily/translation-property.cc
lily/translator-ctors.cc
lily/translator-group.cc
lily/translator.cc
lily/type-swallow-trans.cc
lily/vertical-align-elem.cc
lily/vertical-align-grav.cc
lily/vertical-align-spanner.cc
lily/vertical-group-elem.cc
lily/vertical-group-spanner.cc
lily/voice-iterator.cc
lily/warn.cc
lily/word-wrap.cc
mi2mu/include/mi2mu-proto.hh
mi2mu/include/midi-parser.hh
mi2mu/include/midi-score-parser.hh
mi2mu/include/midi-track-parser.hh
mi2mu/main.cc
mi2mu/midi-parser.cc
mi2mu/midi-score-parser.cc
mi2mu/midi-track-parser.cc
mi2mu/mudela-stream.cc

index 06be9040aebea8577292f8494176d7923ae0fee9..47c2a069db6f006cf0dfac631efdebfd87423516 100644 (file)
@@ -1,7 +1,9 @@
 #!/bin/sh
 
 # unclobber current dir.
-rm -vf *.aux *.log *.orig *~
+rm -vf *.aux *.log *.orig *~  *dvi *.dep
+
+# subdirs
 rm -vf `grep -li "^% Creator: GNU LilyPond" *.out *.tex` 
 rm -vf `grep -li "Creator: mi2mu" *.midi.ly`
 rm -vf `grep -li "%Creator: dvipsk" *.ps`
@@ -11,8 +13,10 @@ rm -vf `find -name 'core'`
 rm -vf `find -name '*.orig'`
 rm -vf `find -name '*.rej'`
 
+
+
+
     
 # docxx mess
-rm -vf *dvi
 rm -vf *.class  HIER*.html dxxgifs.tex gifs.db icon?.gif logo.gif down.gif \
     aindex.html index.html
index ff8566988dafe928bcb80209d3d800c4bee22629..92a1dea00132502821aab0de46c46c1dfcab457a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <assert.h>
index 5c803ab0a8af41581ddb0015b8aa7afce8905420..5793fceae4e968ef7baa89a53c3268fad8dd3338 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "choleski.hh"
index 1a6b0e83a62ab16fb8990e163f9d94eec2395e09..a4d79a37761431289d85258b77a72928c1945923 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "cpu-timer.hh"
index 50dafedf13e92cb801bb1aa3a519f9942700e41f..5c61a41963119a28b6dd1e56c09da66c34c5bf16 100644 (file)
@@ -3,7 +3,7 @@
 
   source file FlowerLib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "directed-graph.hh"
index 28f7a472aaf491ee7e0b38e00cf1b5a76ba7a6e9..7857d33338a7e36841d430054e82776ec1947b1f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <fstream.h>
diff --git a/flower/file-path.cc b/flower/file-path.cc
new file mode 100644 (file)
index 0000000..e6f9c4c
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+   path.cc - manipulation of paths and filenames.
+*/
+#include <stdio.h>
+#include "file-path.hh"
+#include "flower-debug.hh"
+
+#ifndef DIRSEP
+#define DIRSEP '/'
+#endif
+
+#ifndef PATHSEP
+#define PATHSEP ':'
+#endif
+
+/**
+   @param path the original full filename
+   @return 4 components of the path. They can be empty
+*/
+void
+split_path (String path,
+           String &drive, String &dirs, String &filebase, String &extension)
+{
+  // peel off components, one by one.
+  int di = path.index_i (':');
+  if (di >= 0)
+    {
+      drive = path.left_str (di + 1);
+      path = path.right_str (path.length_i () - di -1);
+    }
+  else
+    drive = "";
+
+  di = path.index_last_i (DIRSEP);
+  if (di >=0)
+    {
+      dirs = path.left_str (di + 1);
+      path = path.right_str (path.length_i ()-di -1);
+    }
+  else
+    dirs = "";
+
+  di = path.index_last_i ('.');
+  if (di >= 0)
+    {
+      filebase = path.left_str (di);
+      extension =path.right_str (path.length_i ()-di);
+    }
+  else
+    {
+      extension = "";
+      filebase = path;
+    }
+}
+
+void
+File_path::parse_path (String p)
+{
+  int l;
+  
+  while ( (l = p.length_i ()) )
+    {
+      int i = p.index_i(PATHSEP);
+      if (i <0) 
+       i = l;
+      add (p.left_str(i));
+      p = p.right_str (l- i - 1);
+    }
+}
+
+
+
+
+/** find a file.
+  It will search in the current dir, in the construction-arg, and
+  in any other added path, in this order.
+  */
+String
+File_path::find (String nm) const
+{
+  fdebug << _("looking for ") << nm << ": ";
+  if (!nm.length_i() || (nm == "-") )
+    return nm;
+  for (int i=0; i < size(); i++)
+    {
+      String path  = elem(i);
+      String sep (DIRSEP);
+      String right(path.right_str (1));
+      if (path.length_i () && right != sep)
+       path += DIRSEP;
+
+      path += nm;
+
+      fdebug << path << "? ";
+      FILE *f = fopen (path.ch_C(), "r"); // ugh!
+      if (f)
+       {
+         fdebug << _("found\n");
+         fclose (f);
+         return path;
+       }
+    }
+  fdebug << "\n";
+  return "";
+}
+
+void
+File_path::add (String s)
+{
+   push (s); 
+}
index 8389854361dd3aef1926d305f1fa5b2c59efb8e4..4fc5605cfb01b5d8f0e706bca174369b9b329362 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "full-storage.hh"
index 51ae3ea4d25b50d6869eec423bbca0467abba2e3..d49dbd6b4ef3950f412f0f0cbe4980b7eab5a815 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 6b95340495ac97d4d4e7684d9d0b791569e71949..4a472819e3d9507a45bb990e8496c7e9e0a5baff 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the Flower Library
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 82e561eb9fccac3f42eef1fdcf44158e5c10e24c..786e5157b76130201ce1396344e756cadf8803c2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3205c42b35db0826ff34e72ebc86c9cf8accfe28..65def573e533f87d465175048a24692a1f3ec8a4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 15549fb737cf7de74ad2bc256aae8e3def964600..a000736b1e4955bcba29b9b8017c8a78f4832900 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 93cd3f2bc5714a2b7f80b60c848a366940b8ee51..f371c39092553fc33cb3bbc9577df5585557a391 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index f3883e1ca400e0fc718dd4e6cc9affe80d4f9106..ae9572d5b724c9d737a43d5d4f80c6a0f475c44d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b80bb149246bcad54ce56d3526b2eef61dc75821..414d62b77f51f0d39432df1e374df10528987add 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 87af9f9f7ae2ede0fefb692f4dd715a6c01e689e..2e16bed20112658b951c65422f225ad664340820 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5c9b8bc8b0bbdda256d80a07033cf72087a952d0..33c9e4ee236ad8b405c1d65af29ac9688dbe21dd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d9f896e43449d5ee19544fad0dafb49248bcb400..c1c04f39219ca21326269df3a63d63a98bef59f8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef DSTREAM_HH
diff --git a/flower/include/file-path.hh b/flower/include/file-path.hh
new file mode 100644 (file)
index 0000000..67d3129
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+  path.hh -- declare File_path
+
+  source file of the Flower Library
+
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#ifndef PATH_HH
+#define PATH_HH
+#include "string.hh"
+#include "varray.hh"
+
+
+/**    
+  search in directories for a file.
+
+   Abstraction of PATH variable. An interface for searching input files.
+   Search a number of dirs for a file.
+
+   TODO: add a unix style PATH interface 
+   Should use kpathsea?
+   
+*/
+
+class File_path : private Array<String>
+{
+public:
+  /// locate a file in the search path
+  String find (String nm) const;
+
+  /// add to end of path.
+  Array<String>::push;
+  void add (String str);
+  void parse_path (String);
+};
+
+/** split a path into its components.
+
+  @params path
+
+  @return
+  String &drive, String &dirs, String &filebase, String &extension
+ */
+void split_path (String path, String &drive, String &dirs, String &filebase, String &extension);
+
+#endif
index b3855d15666d16262fe1fcb1ac5672411e7ec7fc..5c8138e94625e438c288302e3bdcd2908f6179c1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5c491d61144622fccc6bafdfaf6a22c259ddb42f..96cbfc5db6ca640ac8a5e408626a1178ef562f11 100644 (file)
@@ -17,6 +17,7 @@ typedef int i32;
 /// (i64)
 typedef long long I64;
 
+template<class T> struct Link_array;
 template<class T> struct Array;
 template<class T> struct sstack;
 template<class T,class K> struct Assoc;
@@ -35,6 +36,7 @@ template<class T> struct PQueue;
 #include "real.hh"
 
 typedef Interval_t<Real> Interval;
+typedef Interval_t<int> Slice;
 
 struct Choleski_decomposition;
 
index 10438e3a7e8c01795e8b1a06a9c8ad86d4e21173..4d68e128288df554312db85a0556245e956bba05 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a1b4c1bf41c2523afcb535b4d05804cfe123ec26..008f4169f5c5c58f4814679fe0571b641e7555a4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b14cc3bfaf432393991978921c77a9da74473570..730b9924e6e38511733763ef734f8aa63a155b86 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 2d7488aeeffa8efcbe71b7fc0a92006888bc8f1f..f33bcb5aa06de2366420bc17a585306aa78771a7 100644 (file)
@@ -171,12 +171,10 @@ Interval_t<T> operator *(Interval_t<T> i,T a){
   return a*i;
 }
 
+// again? see fproto.hh
 typedef Interval_t<Real> Interval;
-
-
+typedef Interval_t<int> Slice;
 
 
 #endif // INTERVAL_HH
 
-
-
index 01dbbb169592e16778b15f213faf8218a07ba4c7..d6c93b48f2e136d73ef6d70700f081a2de5fae32 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 65b092d1d53d4c0637742da335d8fed8159d8aa8..d68226777fd8b2ee41f63bce0776a866fe212ebc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the flowerlib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 2497910a2961e252372c3e524de119aa3f878814..051077b6e771620794a8083e302e721560468b92 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the flowerlib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3f930f02b9f85230cab5fb82e3d6ef2917e8f0d8..7192c4d9f6749353ba2e52c1ad7fa22095a223a5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996,1997
+  (c) 1996, 1997--1998
   Jan Nieuwenhuizen <jan@digicash.com>
   Han-Wen Nienhuys <hanwen@stack.nl>
 */
index c5084dce05fbc47920481f1358cd9378b20ea50f..6cba5338489c2a78859a10e5359327ee15d2b9ea 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #ifndef LIST_CC
 #define LIST_CC
index 7cb3f4c3d49d688a48b679fba7cb17a507075d92..581e6ee937f5659c897bedc6b8b9e3e33ebbaf1f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 660b2d776fd7b1b262dd30adab1c502878b14977..64ba718215d17eb38eb6cca4a7c27a7a6c830753 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d1b361b70dccda5093dced7a86da174b5ae2ee24..774f2e7dc1221062edae664739890fcb75817f1a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e1e597202030e8c61c118b6479fb7e0658bc05a1..c6caad2c2f0846e32efe2c494ebc74ad8ceccd70 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d81b322e48dac5e58461e86c6bffdcbf39dfeb7e..d149e8ebc83f97d05f99a2fd0bba64e66d7c8dad 100644 (file)
@@ -1,7 +1,7 @@
 /* -*-c++-*-
   plist.icc -- part of flowerlib
 
-  (c) 1996,1997 Han-Wen Nienhuys& Jan Nieuwenhuizen
+  (c) 1996, 1997--1998 Han-Wen Nienhuys& Jan Nieuwenhuizen
 */
 
 #ifndef PLIST_INL
index ee6889faef313c15d492e52c30c165356df55243..794e0b0fc1f0a03faf180b2d60b9b7a015116acd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index cc8097c3600da122acc9d0352741cf13a35e4416..803af25ab91661bfd2dbf8c455894f3fabdb0fa0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4ce1302189594ef71b71a3d3d0b09db7d8de9e42..4c82e7d27ed5e008c0ee1ffdd7e33feda612cce1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index cc352cb2da78ea7f4922dd657faed75c174e8cec..67726d47f1feb2ffa71195bb92350dc9021cd27d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 59949bd860cf483bc3d0adcb3bb933b17cddbb73..4b804ba275ab4b6ec60f571cd16e5ef37564bd20 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 587a7f63f1612be4c912e90d57dacb5a4fb31b85..3c15f76c4f5749c4d9f4e23cf770daac0d9d573f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3b030c4cba429b9dbf14b396cc9d27c880343614..05e214ac16d0667379a62707678f4b5d13b6ea06 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 457c78af04f1ddc6a72b45e412939162f0dd2949..e8c58e684e06f106930f219865f8b9c492a4c52e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 0b71643e98aa11e6cb60699f89131b0b012080ca..7695bedde6c8c234be48cdff422aaf2cb19284a2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7d62f1ffcbd179642966095c0b9f68252252ff13..599b9d82a632b01bd62a2e24d16f50eeeaa972de 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of Flower lib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef STRINGDATA_INL
index ccd149b9cf7e6ec84d1d8e6f89e94194580e9058..08b957c51f9aae49bec85087077f51e463027849 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 51db730a22eb8e93e17997a3978c03ffb79689c3..6f9d908f57d3c4dd5a569b1b66c5cba65aa04bfb 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of Flower lib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef STRINGHANDLE_INL
index 8a03288c04ef52f605975188fa13c9cdc3bee119..3bdbb0336e5ff3df41e64d07ae641aa5b6a0f590 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the Flower Library
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 278ed57190d2aef1dd23cc030cc96d6304e3ca79..2ce3d4056989ab9af030b5814f126b3be7d40727 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d4ca0f40f470117ffcf12b847b734a84bffd1516..2a71fea2327574039165014c90910f5aeebbb4d6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
 #include "real.hh"
 #include "interval.tcc"
 
-
-template INTERVAL__INSTANTIATE(Real);
-
-
+template INTERVAL__INSTANTIATE (Real);
 
 Real
-Interval_t<Real>::infinity() 
+Interval_t<Real>::infinity () 
 {
   return HUGE_VAL;
 }
@@ -27,3 +24,18 @@ Interval_t<Real>::T_to_str (Real r)
 {
   return String (r);
 }
+
+template INTERVAL__INSTANTIATE (int);
+
+int
+Interval_t<int>::infinity () 
+{
+  return INT_MAX;
+}
+
+String
+Interval_t<int>::T_to_str (int i)
+{
+  return String (i);
+}
+
index f44b468e8520d502752ff5bc0408496a4cc5f31a..c7f1b4bd0851e8ab404b03db02e9f4bbcf0843ed 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the flowerlib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include <stdarg.h>
 #include <stdio.h>
index 5a6149720c9cd4f56d0eafa28a41ef89914e056d..82080f2a6d8a560930ba15498a5ef22c4bbc99d1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 09a7668a05af84a68a1a004b383087db718305e7..314447220a3ec3ff000205cc54f7df233c03cec4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "matrix.hh"
index c8b829dd152c98e778023a82a4b59424cd4d7804..75bbe6bad468109dbd2ff48d602cb6af17069e8a 100644 (file)
@@ -3,6 +3,6 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
index 3085f246b5a2d12f0e4a24249adb925f39bcf27f..d92c3af31ac0ccaf2ae8414d4d7084005224cdd4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include <math.h>
 
index df18b4cbcd57cf5b0ecd2d8368d36d667e576698..a7b7d696c8b2d59860a1bc2259c15fcf1c9aa2b8 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include <stdlib.h>
 #include "rational.hh"
index 79bfd53d5f954eeeada0810c3462327e3bd6cc5e..bdd2452ad7b5216ac23afc71f617b621172bb491 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <assert.h>
index 65279ce0370549f4fef27267218f7bef051c067a..366abcd6bff7c95452a478ecb78ca9c33e1f7f99 100644 (file)
@@ -2,7 +2,7 @@
 
  string.cc - implement String
  
- (c) 1997 Han-Wen Nienhuys & Jan Nieuwenhuizen
+ (c)  1997--1998 Han-Wen Nienhuys & Jan Nieuwenhuizen
 
  */
 
index f8332672f01c481e0c72ea99fd88b1d822a3c32f..f10adcb623915706ef93aa150515df4a8eb046ba 100644 (file)
@@ -6,7 +6,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> */
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl> */
 
 #ifdef STRING_DEBUG 
 #define memmove mymemmove
index 75d7ce24caf011d2b2f619f5c620fa0696300d1b..971d4d0c21dfc58d63bf9cc5bfda6608d7132ae3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen
+  (c)  1997--1998 Jan Nieuwenhuizen
 */
 
 
index 747363832308284d3ec2f7fc5907f4acde17774d..82e102d4c89577474cfb4c5fbd3d19c934961043 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
 */
 struct Duration_convert {
        
-    /* Urgh. statics.
-     */
-    static bool const midi_as_plet_b_s = true;
-    static bool no_quantify_b_s;
-    static bool no_double_dots_b_s;
-    static bool no_triplets_b_s;
-    static int no_smaller_than_i_s;
-    static Array<Duration> dur_array_s;
-
-    /// Return number of ticks in (ticks, division_1) representation
-    static int dur2ticks_i (Duration dur );
+  /* Urgh. statics.
+   */
+  static bool const midi_as_plet_b_s = true;
+  static bool no_quantify_b_s;
+  static bool no_double_dots_b_s;
+  static bool no_triplets_b_s;
+  static int no_smaller_than_i_s;
+  static Array<Duration> dur_array_s;
+
+  /// Return number of ticks in (ticks, division_1) representation
+  static int dur2ticks_i (Duration dur );
        
-    /// Return the type_i representation of note length i
-    static int i2_type (int i);
+  /// Return the type_i representation of note length i
+  static int i2_type (int i);
 
-    /// Return the note length corresponding to the type_i representation
-    /// Return 0 if longer than whole note.
-    static int type2_i (int type);
+  /// Return the note length corresponding to the type_i representation
+  /// Return 0 if longer than whole note.
+  static int type2_i (int type);
 
-    /// Return Moment representation (fraction of whole note).
-    static Moment dur2_mom (Duration dur );
+  /// Return Moment representation (fraction of whole note).
+  static Moment dur2_mom (Duration dur );
 
-    /// Return Mudela string representation.
-    static String dur2_str (Duration dur );
+  /// Return Mudela string representation.
+  static String dur2_str (Duration dur );
 
-    /// Return duration from Moment (fraction of whole) representation.
-    static Duration mom2_dur (Moment mom );
+  /// Return duration from Moment (fraction of whole) representation.
+  static Duration mom2_dur (Moment mom );
 
-    /// Return standardised duration, best guess if not exact.
-    static Duration mom2standardised_dur (Moment mom );
+  /// Return standardised duration, best guess if not exact.
+  static Duration mom2standardised_dur (Moment mom );
   
-    /// Return plet factor (not a Moment: should use Rational?).
-    static Moment plet_factor_mom (Duration dur );
+  /// Return plet factor (not a Moment: should use Rational?).
+  static Moment plet_factor_mom (Duration dur );
 
-    static void set_array ();
+  static void set_array ();
 
-    /** Return synchronisation factor for mom, so that
+  /** Return synchronisation factor for mom, so that
       mom2_dur (mom / sync_f ) will return the duration dur.           
-      */ 
-    static Real sync_f (Duration dur, Moment mom );
+  */ 
+  static Real sync_f (Duration dur, Moment mom );
 
-    /// Return exact duration, in midi-ticks if not-exact.
-    static Duration ticks2_dur (int ticks_i );
+  /// Return exact duration, in midi-ticks if not-exact.
+  static Duration ticks2_dur (int ticks_i );
 
-    /// Return standardised duration, best guess if not exact.
-    static Duration ticks2standardised_dur (int ticks_i );
-};
-
-/// (iter_dur)
-struct Duration_iterator {
-    /// start at shortest: 128:2/3
-    Duration_iterator ();
-
-    // **** what about these three here ?
-    /// return forward_dur ();
-    Duration operator ++(int); 
-
-    /// return ok ()
-    operator bool (); 
-
-    /// return dur ()
-    Duration operator ()(); 
-    // ****
-
-    /// return current dur
-    Duration dur ();
-
-    /// return dur (), step to next
-    Duration forward_dur ();
-
-    /// durations left?
-    bool ok ();
-
-private:
-    Duration cursor_dur_;
+  /// Return standardised duration, best guess if not exact.
+  static Duration ticks2standardised_dur (int ticks_i );
 };
 
 
diff --git a/lib/include/duration-iter.hh b/lib/include/duration-iter.hh
new file mode 100644 (file)
index 0000000..1c01ac7
--- /dev/null
@@ -0,0 +1,47 @@
+/*   
+  duration-iter.hh -- declare Duration_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  
+ */
+
+#ifndef DURATION_ITER_HH
+#define DURATION_ITER_HH
+
+/// (iter_dur)
+struct Duration_iterator {
+  
+  /// start at shortest: 128:2/3
+  Duration_iterator ();
+
+  // **** what about these three here ?
+  /// return forward_dur ();
+  Duration operator ++(int); 
+
+  /// return ok ()
+  operator bool (); 
+
+  /// return dur ()
+  Duration operator ()(); 
+
+
+  /// return current dur
+  Duration dur ();
+
+  /// return dur (), step to next
+  Duration forward_dur ();
+
+  /// durations left?
+  bool ok ();
+
+private:
+
+  Duration cursor_dur_;
+};
+
+
+
+#endif /* DURATION_ITER_HH */
+
index 69eaf8dcaf769e867573a5e4b215cbdc19111c67..59c968f75126ae8ef0a3db8ab5fa2ebbd6743745 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 
 */
 
@@ -15,9 +15,6 @@
 #include "fproto.hh"
 #include "moment.hh"
 #include "plet.hh"
-// ugh, to get me in lily lib
-extern bool no_triplets_bo_g;
-
 
 /**
   Class to handle "musical" durations. This means: balltype 1,2,4,etc. and dots.
@@ -30,7 +27,7 @@ struct Duration {
   bool plet_b ();
   String str () const;
   void set_plet (int,int );
-  void set_plet (Duration );
+
   static bool duration_type_b (int t);
   void set_ticks (int ticks_i );
   Moment length () const ;     // zo naai mij
index 1ac150f59245c117774309bf45973c8e19d18220..b2e679bb574bf76b7d658470ef4f3292f1f79d91 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index f82ba2d2240ef58d860a3a0d49ccf8a51a6049f8..767a2e76b80b3016c87d572968f7aa0be6cec110 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4ca29a300622d6c281d210115ce525bd1a4f5de5..506bbc978f8d3ba33dc302dbf221e689de7c239e 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index ecedcc4d437d26f287796a7b847c66bf924ea4ad..de32eb1753cfa2802e491f51bda933ad40d16587 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4deb0969ff9c21eb15e11fae07f47d4262993f42..4f4bd591999f455c14dc17640d1da1cfa6d1fc5a 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 45edc4ba40bd70b18e95f5db9fa102b2194baeef..a65c4aa19a246044e588157c76579a6519331483 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e9cc3fd0070ea54f6b3a0a7ef1ebd930b319c25b..c50b3b733545e46de396617f273dc7136f28e1e4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "proto.hh"
 #include "input.hh"
index c318925b4e543aa60100d2d4fca3d21ec9d6d417..17d451d1a66c2fee42291629c709f902ad5ca7ae 100644 (file)
@@ -5,7 +5,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   Jan Nieuwenhuizen <jan@digicash.com>.
 
   Nextstep fixes by tiggr@ics.ele.tue.nl
index ef1fa46defbb1b1b3d254ea3e4dec0ff22cc23c4..d29ce9065bc9d91e1820f39e51525e14586421de 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <iostream.h>
index 84579eca716929bde820e253f3ae5e33f762cd39..9a098cc4c9b7c4ce60fe90f4ac0b1264f66eaf45 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "plet.hh"
index a8e98aaeb83441315c4c40db2b4ee68234260e6f..561ab838c960c30270ee29b1378035b88efa457a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <stdio.h>
index b6153c984ad6994fe8f5031df1ec1c6475d913e4..c14dcccd6fd2d4953db9b326ec5e0dd463e5fce1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
   & Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
index d350b487cae7c3b093ebe20854177a13a8005665..5d384f757e5bbb1246d441833e0e707bf8cd329c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
@@ -15,7 +15,7 @@
 #include "plist.hh"
 #include "source-file.hh"
 #include "source.hh"
-#include "path.hh"
+#include "file-path.hh"
 
 Sources::Sources ()
 {
index 2ea84593a96794c2a2ff2f703e8ed58750dc4502..6c117a2a603b56702f6ce9719fc8feb52b4ea060 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "source-file.hh"
index d91899c75656fea84879e996c1f4da3f36e30f8e..54088537b6700a8adb971cc462f7313383cd375c 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index e8e8ef0614e92e639a46df0e71692845ed0820d1..ca62b92d24644994f3e0b502134ac8aad1f30f21 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
            Jan Nieuwenhuizen <jan@digicash.com>
 */
 
index d9a4e5bac8b2bc6c252a32575bfd0eacb9545b73..6637d19f0f3527c04b616648f454df9e6c079775 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
           Jan Nieuwenhuizen <jan@digicash.com>
 */
 
index 68d85f8e0e2cf695aabb980cce6c9aef338b0b7b..8c5c2f80e479af95e981b8c56387b4b2a0890c65 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "atom.hh"
 #include "tex.hh"
index e0dbd2efffc26aafca0e1f895f5991f30714da30..2f5ad611a68dc778118d1deb8961cf742951e7c3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "audio-column.hh"
index 77aaeb44f591ec0138f0e0f0688c63da2778a34c..18f265c46edd46915791a0ba6fe0049cd25f3f85 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "audio-element.hh"
index 60a6badc8dd6292065a6b965ebde17388eae73de..81b0285ba6356e13f6fc480992435529356b397c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 #include "debug.hh"
 #include "audio-item.hh"
index 6dc14d11809e744896848aba5230ab3284c54252..d35fb23a58c65b1b78c2bf5f15da92bd3247a493 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "audio-staff.hh"
index 11eb1263b7675ff289e52983da141f9f4586c747..bf42295aee3c225eca3e58ce161625a6bf54c90f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "interval.hh"
 #include "axis-group-administration.hh"
index b97b94cf61556b8065abba8ed204b78bd6a75b9b..b4061af7f5b5c94ff293d33cb6f3463047eb7936 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "axis-group-element.hh"
index 5362516f025a2586d2bd046920243baa6871a5a5..2706fa8faa658fc8dffcd57fa05489f8bab009f0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "axis-group-item.hh"
 #include "p-col.hh"
index 5cace351e33134d0de7eb1b37d69726a5851c37a..344b4060cce15e9f96d5ab215973486fd5710bca 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "axis-group-spanner.hh"
index e4219fdb38f6b3768d9789839bc926767fef434c..7afced803a8a5759e49ecc07224f2b1e8fbed196 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 05710d8706fadcc1ab3a8989d3b639b21b0989aa..57bf47660d8665d62442b41010950fa4bf97fbff 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "bar.hh"
index 4b8e1d4472992f95057a7db6f1fe02e54cb069fb..b711bf4a07c3e249a55e125ab14b9df6e3866f38 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "bar-grav.hh"
index 9a24c2739baf7500d38f06759a318a8de796a10d..be49f69b3f9632936f9d439e5b31a4221431bc8d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
@@ -12,6 +12,7 @@
 #include "text-def.hh"
 #include "command-request.hh"
 #include "bar.hh"
+#include "stem.hh"
 #include "time-description.hh"
 
 Bar_number_engraver::Bar_number_engraver()
@@ -20,6 +21,7 @@ Bar_number_engraver::Bar_number_engraver()
 }
 
 static Command_script_req dummy;
+static Stem support;
 
 void
 Bar_number_engraver::acknowledge_element (Score_elem_info i)
@@ -38,9 +40,15 @@ Bar_number_engraver::acknowledge_element (Score_elem_info i)
 
       script_p_->specs_l_ = td_p;
       script_p_->breakable_b_ = true;
+
+      // ugh, howto move this up?
       script_p_->dir_ = UP;
-//      script_p_->y_ += 2;
-      script_p_->y_ = 8;
+////      script_p_->y_ += 2;
+      script_p_->y_ = 10;
+
+      support.dir_ = UP;
+      support.set_stemend (10);
+      script_p_->set_stem (&support);
 
       announce_element (Score_elem_info (script_p_, &dummy));
     }
index 0a699a26abcd36cfd1db10eec3d7fcad9ed55377..701bbd7b86bd90f5ecf9122182d353cabb5759ae 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "bar.hh"
index 8cd5958f1763ee3344dd2eac94072487dfede035..9a3f9586c2f5c1f8131037219bc9a75e7cc7bc10 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "duration-convert.hh"
 #include "time-description.hh"
@@ -56,9 +56,9 @@ Beam_engraver::do_process_requests()
   if (prop.isnum_b ()) 
     beam_p_->damping_i_ = prop;
 
-  prop = get_property ("beamquantisaton");
+  prop = get_property ("beamquantisation");
   if (prop.isnum_b ()) 
-    beam_p_->quantisation_ = (Beam::Quantise)(int)prop;
+    beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
  
   announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT]));
 }
index cf23d55088db6d21f0b5ab1d538875db8fe32a91..38418fc3330dadd1b9a6f3b79b0b5070bf6f1d2b 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index c3991ea3cabdcc53041c0cd04b125eb4a6ce642e..fef050e58ba962cf11604b351afe9e8b3df58c42 100644 (file)
@@ -3,13 +3,20 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+    Jan Nieuwenhuizen <jan@digicash.com>
 
-  TODO
+*/
 
-  Less hairy code.  knee: ([\stem 1; c8 \stem -1; c8]
 
-*/
+/*
+  [TODO]
+    * lowest beam of (UP) beam must never be lower than second staffline
+    * centre beam symbol
+    * less hairy code
+    * redo grouping 
+    * (future) knee: ([\stem 1; c8 \stem -1; c8]
+ */
 
 #include <math.h>
 
 #include "lookup.hh"
 #include "grouping.hh"
 #include "stem-info.hh"
-//#include "main.hh"  // experimental features
+#include "main.hh"  // experimental features
 
 
 IMPLEMENT_IS_TYPE_B1 (Beam, Spanner);
 
-// ugh, hardcoded
-const Real MINIMUM_STEMLEN[] = {
-  0, // just in case
-  5, 
-  4,
-  3,
-  2,
-  2,
-};
-
 Beam::Beam ()
 {
   slope_f_ = 0;
-  left_y_ = 0.0;
+  left_y_ = 0;
   damping_i_ = 1;
   quantisation_ = NORMAL;
   multiple_i_ = 0;
@@ -70,7 +67,12 @@ Molecule*
 Beam::brew_molecule_p () const
 {
   Molecule *mol_p = new Molecule;
-  Real inter_f = paper ()->internote_f ();
+
+  Real interline_f = paper ()->interline_f ();
+  Real internote_f = interline_f / 2;
+  Real staffline_f = paper ()->rule_thickness ();
+  Real beam_f = 0.48 * (interline_f - staffline_f);
+
   Real x0 = stems_[0]->hpos_f ();
   for (int j=0; j <stems_.size (); j++)
     {
@@ -80,10 +82,12 @@ Beam::brew_molecule_p () const
 
       Molecule sb = stem_beams (i, next, prev);
       Real  x = i->hpos_f ()-x0;
-      sb.translate (Offset (x, (x * slope_f_  + left_y_)* inter_f));
+      sb.translate (Offset (x, (x * slope_f_ + left_y_) * internote_f));
       mol_p->add (sb);
     }
-  mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+  mol_p->translate_axis (x0 
+    - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+
   return mol_p;
 }
 
@@ -181,16 +185,22 @@ Beam::set_default_dir ()
 }
 
 /*
-  should use minimum energy formulation (cf linespacing)
-*/
+  See Documentation/tex/fonts.doc
+ */
 void
 Beam::solve_slope ()
 {
+  /*
+    should use minimum energy formulation (cf linespacing)
+  */
+
+  assert (multiple_i_);
   Array<Stem_info> sinfo;
   for (int j=0; j <stems_.size (); j++)
     {
       Stem *i = stems_[j];
 
+      i->mult_i_ = multiple_i_;
       i->set_default_extents ();
       if (i->invisible_b ())
        continue;
@@ -208,12 +218,12 @@ Beam::solve_slope ()
   else
     {
 
-      Real leftx = sinfo[0].x;
+      Real leftx = sinfo[0].x_;
       Least_squares l;
       for (int i=0; i < sinfo.size (); i++)
        {
-         sinfo[i].x -= leftx;
-         l.input.push (Offset (sinfo[i].x, sinfo[i].idealy_f_));
+         sinfo[i].x_ -= leftx;
+         l.input.push (Offset (sinfo[i].x_, sinfo[i].idealy_f_));
        }
 
       l.minimise (slope_f_, left_y_);
@@ -222,7 +232,7 @@ Beam::solve_slope ()
   Real dy = 0.0;
   for (int i=0; i < sinfo.size (); i++)
     {
-      Real y = sinfo[i].x * slope_f_ + left_y_;
+      Real y = sinfo[i].x_ * slope_f_ + left_y_;
       Real my = sinfo[i].miny_f_;
 
       if (my - y > dy)
@@ -240,205 +250,197 @@ Beam::solve_slope ()
   if (damping_i_)
     slope_f_ = 0.6 * tanh (slope_f_) / damping_i_;
 
-  quantise_yspan ();
+  quantise_dy ();
 
-  // y-values traditionally use internote dimension: therefore slope = (y/in)/x
-  // but mf and beam-lookup use PT dimension for y (as used for x-values)
-  // ugh --- there goes our simplified but careful quantisation
   Real sl = slope_f_ * paper ()->internote_f ();
   paper ()->lookup_l ()->beam (sl, 20 PT, 1 PT);
   slope_f_ = sl / paper ()->internote_f ();
 }
 
 void
-Beam::quantise_yspan ()
+Beam::quantise_dy ()
 {
   /*
     [Ross] (simplification of)
     Try to set slope_f_ complying with y-span of:
       - zero
-      - beam_thickness / 2 + staffline_thickness / 2
-      - beam_thickness + staffline_thickness
+      - beam_f / 2 + staffline_f / 2
+      - beam_f + staffline_f
     + n * interline
     */
 
-  if (!quantisation_)
+  if (quantisation_ <= NONE)
     return;
 
   Real interline_f = paper ()->interline_f ();
   Real internote_f = interline_f / 2;
-  Real staffline_thickness = paper ()->rule_thickness ();
-  Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
-
-  const int QUANTS = 3;
-  Real qdy[QUANTS] = {
-    0,
-    beam_thickness / 2 + staffline_thickness / 2,
-    beam_thickness + staffline_thickness
-  };
-
-  Real xspan_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
-  // y-values traditionally use internote dimension: therefore slope = (y/in)/x
-  Real yspan_f = xspan_f * abs (slope_f_ * internote_f);
-  int yspan_i = (int)(yspan_f / interline_f);
-  Real q = (yspan_f / interline_f - yspan_i) * interline_f;
-  int i = 0;
-  for (; i < QUANTS - 1; i++)
-    if ((q >= qdy[i]) && (q <= qdy[i + 1]))
-      {
-       if (q - qdy[i] < qdy[i + 1] - q)
-         break;
-       else
-       { 
-         i++;
-         break;
-       }
-      }
-  q = qdy[i];
+  Real staffline_f = paper ()->rule_thickness ();
+  Real beam_f = 0.48 * (interline_f - staffline_f);
+
+  Real dx_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
+
+  // dim(y) = internote; so slope = (y/internote)/x
+  Real dy_f = dx_f * abs (slope_f_ * internote_f);
+  
+  Real quanty_f = 0.0;
+
+  /* UGR.   ICE in 2.8.1; bugreport filed. */
+  Array<Real> allowed_fraction (3);
+  allowed_fraction[0] = 0;
+  allowed_fraction[1] = (beam_f / 2 + staffline_f / 2);
+  allowed_fraction[2] = (beam_f + staffline_f);
 
-  yspan_f = (Real)yspan_i * interline_f + q;
-  // y-values traditionally use internote dimension: therefore slope = (y/in)/x
-  slope_f_ = yspan_f / xspan_f / internote_f * sign (slope_f_);
+
+    Interval iv = quantise_iv (allowed_fraction, interline_f, dy_f);
+    quanty_f = (dy_f - iv.min () <= iv.max () - dy_f)
+      ? iv.min ()
+      : iv.max ();
+
+
+  slope_f_ = (quanty_f / dx_f) / internote_f * sign (slope_f_);
 }
 
+static int test_pos = 0;
+
+
+/*
+  
+  Prevent interference from stafflines and beams.  See Documentation/tex/fonts.doc
+  
+ */
 void
-Beam::quantise_left_y (Beam::Pos pos, bool extend_b)
+Beam::quantise_left_y (bool extend_b)
 {
-  /*
-   quantising left y should suffice, as slope is quantised too
-   if extend then stems must not get shorter
+   /*
+    we only need to quantise the start of the beam as dy is quantised too
+   if extend_b then stems must *not* get shorter
    */
 
-  if (!quantisation_)
+  if (quantisation_ <= NONE)
     return;
 
+  /*
+    ----------------------------------------------------------
+                                                   ########
+                                       ########
+                             ########
+    --------------########------------------------------------
+       ########
+
+       hang       straddle   sit        inter      hang
+   */
+
+  Real interbeam_f = paper ()->interbeam_f ();
   Real interline_f = paper ()->interline_f ();
   Real internote_f = interline_f / 2;
-  Real staffline_thickness = paper ()->rule_thickness ();
-  Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
+  Real staffline_f = paper ()->rule_thickness ();
+  Real beam_f = 0.48 * (interline_f - staffline_f);
+  Real symbol_f = beam_f + interbeam_f * (multiple_i_ - 1);
 
-  const int QUANTS = 7;
-  Real qy[QUANTS] = 
-  {
-    0,
-    beam_thickness / 2,
-    beam_thickness,
-    interline_f / 2 + beam_thickness / 2 + staffline_thickness / 2,
-    interline_f,
-    interline_f + beam_thickness / 2,
-    interline_f + beam_thickness
-  };
-  /* 
-   ugh, using i triggers gcc 2.7.2.1 internal compiler error (far down):
-   for (int i = 0; i < QUANTS; i++)
+  Real straddle = 0;
+  Real sit = beam_f / 2 - staffline_f / 2;
+  Real inter = interline_f / 2;
+  Real hang = interline_f - beam_f / 2 + staffline_f / 2;
+
+  /*
+    Put all allowed positions into an array.
+    Whether a position is allowed or not depends on 
+    strictness of quantisation, multiplicity and direction.
+
+    For simplicity, we'll assume dir = UP and correct if 
+    dir = DOWN afterwards.
    */
-  
-  // fixme!
-  for (int ii = 0; ii < QUANTS; ii++)
-    qy[ii] -= 0.5 *beam_thickness;
-  Pos qpos[QUANTS] = 
-  {
-    HANG,
-    STRADDLE,
-    SIT,
-    INTER,
-    HANG,
-    STRADDLE,
-    SIT
-  };
-
-  // y-values traditionally use internote dimension
-  Real y = left_y_ * internote_f;
-  int y_i = (int)floor(y / interline_f);
-  y = (y / interline_f - y_i) * interline_f;
-
-  if (y < 0)
-    for (int ii = 0; ii < QUANTS; ii++)
-      qy[ii] -= interline_f;
-
-  int lower_i = 0;
-  int i = 0;
-  for (; i < QUANTS; i++)
+
+  // dim(left_y_) = internote
+  Real dy_f = dir_ * left_y_ * internote_f;
+
+  Array<Real> allowed_position;
+  if (quantisation_ != TEST)
     {
-      if (qy[i] > y)
-       break;
-      // found if lower_i is allowed, and nearer (from below) y than new pos
-      if ((pos & qpos[lower_i]) && (y - qy[lower_i] < y - qy[i]))
-        break;
-      // if new pos is allowed or old pos isn't: assign new pos
-      if ((pos & qpos[i]) || !(pos & qpos[lower_i]))
-       lower_i = i;
+      if (quantisation_ <= NORMAL) 
+       {
+         if ((multiple_i_ <= 2) || (abs (dy_f) >= staffline_f / 2))
+           allowed_position.push (straddle);
+         if ((multiple_i_ <= 1) || (abs (dy_f) >= staffline_f / 2))
+           allowed_position.push (sit);
+         allowed_position.push (hang);
+       }
+      else
+        // TODO: check and fix TRADITIONAL
+       {
+         if ((multiple_i_ <= 2) || (abs (dy_f) >= staffline_f / 2))
+           allowed_position.push (straddle);
+         if ((multiple_i_ <= 1) && (dy_f <= staffline_f / 2))
+           allowed_position.push (sit);
+         if (dy_f >= -staffline_f / 2)
+           allowed_position.push (hang);
+       }
     }
-
-  int upper_i = QUANTS - 1;
-  for (i = QUANTS - 1; i >= 0; i--)
+  else
     {
-      if (qy[i] < y)
-       break;
-      // found if upper_i is allowed, and nearer (from above) y than new pos
-      if ((pos & qpos[upper_i]) && (qy[upper_i] - y < qy[i] - y))
-        break;
-      // if new pos is allowed or old pos isn't: assign new pos
-      if ((pos & qpos[i]) || !(pos & qpos[upper_i]))
-       upper_i = i;
+      if (test_pos == 0)
+        {
+       allowed_position.push (hang);
+       cout << "hang" << hang << endl;
+       }
+      else if (test_pos==1)
+        {
+       allowed_position.push (straddle);
+       cout << "straddle" << straddle << endl;
+       }
+      else if (test_pos==2)
+        {
+       allowed_position.push (sit);
+       cout << "sit" << sit << endl;
+       }
+      else if (test_pos==3)
+        {
+       allowed_position.push (inter);
+       cout << "inter" << inter << endl;
+       }
     }
 
-  // y-values traditionally use internote dimension
-  Real upper_y = (qy[upper_i] + interline_f * y_i) / internote_f;
-  Real lower_y = (qy[lower_i] + interline_f * y_i) / internote_f;
+#if 0
+  // this currently never happens
+  Real q = (dy_f / interline_f - dy_i) * interline_f;
+  if ((quantisation_ < NORMAL) && (q < interline_f / 3 - beam_f / 2))
+    allowed_position.push (inter);
+#endif
 
+  Interval iv = quantise_iv (allowed_position, interline_f, dy_f);
+
+  Real quanty_f = dy_f - iv.min () <= iv.max () - dy_f ? iv.min () : iv.max ();
   if (extend_b)
-    left_y_ = (dir_ > 0 ? upper_y : lower_y);
-  else
-    left_y_ = (upper_y - y < y - lower_y ? upper_y : lower_y);
+    quanty_f = iv.max ();
+
+  // dim(left_y_) = internote
+  left_y_ = dir_ * quanty_f / internote_f;
 }
 
 void
 Beam::set_stemlens ()
 {
-  Real x0 = stems_[0]->hpos_f ();
-  Real dy = 0;
-
+  Real interbeam_f = paper ()->interbeam_f ();
   Real interline_f = paper ()->interline_f ();
   Real internote_f = interline_f / 2;
-  Real staffline_thickness = paper ()->rule_thickness ();
-  Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
-  Real interbeam_f = paper ()->interbeam_f ();
-  if (multiple_i_ > 3)
-    interbeam_f += 2.0 * staffline_thickness / 4;
-  Real xspan_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
-  /*
-   ugh, y values are in "internote" dimension
-   */
-  Real yspan_f = xspan_f * abs (slope_f_ * internote_f);
-  int yspan_i = (int)(yspan_f / interline_f);
-
-  Pos left_pos = NONE;
+  Real staffline_f = paper ()->rule_thickness ();
+  Real beam_f = 0.48 * (interline_f - staffline_f);
 
-  if ((yspan_f < staffline_thickness / 2) || (quantisation_ == NORMAL))
-    left_pos = (Pos)(STRADDLE | SIT | HANG);
-  else
-    left_pos = (Pos) (sign (slope_f_) > 0 ? STRADDLE | HANG 
-      : SIT | STRADDLE);
-
-  /* 
-   ugh, slope currently mangled by availability mf chars...
-   be more generous regarding beam position between stafflines
+  /*
+    if we have more than three beams they must open-up
+    in order to not collide with staff lines
    */
-  Real q = (yspan_f / interline_f - yspan_i) * interline_f;
-  if ((quantisation_ < NORMAL) && (q < interline_f / 3 - beam_thickness / 2))
-    left_pos = (Pos) (left_pos | INTER);
-
-
-  if (multiple_i_ > 1)
-    left_pos = (Pos) (dir_ > 0 ? HANG : SIT);
+  if (multiple_i_ > 3)
+    interbeam_f += 2.0 * staffline_f / 4;
 
+  Real x0 = stems_[0]->hpos_f ();
+  Real dy = 0;
   // ugh, rounding problems! (enge floots)
-  const Real EPSILON = interline_f / 10;
+  Real epsilon = staffline_f / 8;
   do
     { 
       left_y_ += dy * dir_;
-      quantise_left_y (left_pos, dy);
+      quantise_left_y (dy);
       dy = 0;
       for (int i=0; i < stems_.size (); i++)
        {
@@ -448,19 +450,29 @@ Beam::set_stemlens ()
 
          Real x = s->hpos_f () - x0;
          s->set_stemend (left_y_ + slope_f_ * x);
-         Real y = s->stem_length_f ();
-         // duh: 
-//       int mult_i = stems_[i]->beams_left_i_ >? stems_[i]->beams_right_i_;
-         int mult_i = multiple_i_;
-         if (mult_i > 1)
-             // dim(y) = internote
-             y -= (Real)(mult_i - 1) * interbeam_f / internote_f;
-         if (y < MINIMUM_STEMLEN[mult_i])
-           dy = dy >? (MINIMUM_STEMLEN[mult_i] - y);
+         Real y = s->stem_end_f () * dir_;
+         Stem_info info (s);
+         if (y < info.miny_f_)
+           dy = dy >? info.miny_f_ - y;
        }
-    } while (abs (dy) > EPSILON);
+    } while (abs (dy) > epsilon);
+
+  // ugh asymmetric symbol ?
+  if (dir_ == UP)
+    left_y_ -= dir_ * staffline_f / 4;
+
+  if ((multiple_i_ >= 3) && (dir_ == UP))
+    left_y_ -= dir_ * staffline_f / 4;
+
+  test_pos++;
+  test_pos %= 4;
 }
 
+/*
+ FIXME
+ ugh.  this is broken and should be rewritten.
+  - [c8. c32 c32]
+ */
 void
 Beam::set_grouping (Rhythmic_grouping def, Rhythmic_grouping cur)
 {
@@ -506,15 +518,16 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
   assert (!next || next->hpos_f () > here->hpos_f ());
   assert (!prev || prev->hpos_f () < here->hpos_f ());
 
-  Real staffline_thickness = paper ()->rule_thickness ();
+  Real staffline_f = paper ()->rule_thickness ();
   Real interbeam_f = paper ()->interbeam_f ();
   Real internote_f =paper ()->internote_f (); 
   Real interline_f = 2 * internote_f;
-  Real beamheight_f = 0.48 * (interline_f - staffline_thickness);
+  Real beamheight_f = 0.48 * (interline_f - staffline_f);
+
   if (multiple_i_ > 3)
-    interbeam_f += 2.0 * staffline_thickness / 4;
+    interbeam_f += 2.0 * staffline_f / 4;
   Real dy = interbeam_f;
-  Real stemdx = staffline_thickness;
+  Real stemdx = staffline_f;
   Real sl = slope_f_* internote_f;
   paper ()->lookup_l ()->beam (sl, 20 PT, 1 PT);
 
@@ -591,3 +604,4 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
    */
   return leftbeams;
 }
+
index 5fea33928893670794afa16f7567f89fffaed0f1..2267e2d42c95560d0880df422d034b744755d3da 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <math.h>
 #include "bezier.hh"
+#include "misc.hh"
 
 #ifndef STANDALONE
 #include "direction.hh"
@@ -94,21 +95,20 @@ Bezier::set (Array<Offset> points)
 Real
 Bezier::y (Real x)
 {
-  for (int i = 1; i < curve_.size (); i++ )
-    {
-      if (x < curve_[i].x () || (i == curve_.size () - 1))
-       {
-         Offset z1 = curve_[i-1];
-         Offset z2 = curve_[i];
-         Real multiplier = (x - z2.x ()) / (z1.x () - z2.x ());
-         Real y = z1.y () * multiplier + (1.0 - multiplier) *z2.y();
-
-         return y;
-        }
-    }
-  assert (false);
-  // silly c++
-  return 0;
+  // ugh
+  // bounds func should be templatised to take array of offsets too?
+  Array<Real> positions;
+  for (int i = 0; i < curve_.size (); i++)
+    positions.push (curve_[i].x ());
+
+  Slice slice = get_bounds_slice (positions, x);
+  // ugh
+  Offset z1 = curve_[0 >? slice.max () - 1];
+  Offset z2 = curve_[1 >? slice.max ()];
+  Real multiplier = (x - z2.x ()) / (z1.x () - z2.x ());
+  Real y = z1.y () * multiplier + (1.0 - multiplier) * z2.y();
+
+  return y;
 }
 
 
@@ -139,10 +139,13 @@ Bezier_bow::blow_fit ()
     return;
 
 #ifndef STANDALONE
-  Real epsilon = paper_l_->rule_thickness ();
+  Real internote_f = paper_l_->internote_f ();
 #else
-  Real epsilon = 1.5 * 0.4 PT;
+  Real internote_f = STAFFHEIGHT / 8;
 #endif
+
+  //urg
+  Real epsilon = internote_f / 2;
   if (abs (dy2 - dy1) < epsilon)
     return;
   
@@ -223,7 +226,9 @@ Bezier_bow::calc ()
   This function tries to address two issues:
     * the tangents of the slur should always point inwards 
       in the actual slur, i.e.  *after rotating back*.
-    * slurs shouldn't be too high ( <= 1.5 staffheight?)
+
+    * slurs shouldn't be too high 
+      let's try : h <= 1.2 b && h <= 3 staffheight?
 
   We could calculate the tangent of the bezier curve from
   both ends going inward, and clip the slur at the point
@@ -249,28 +254,28 @@ Bezier_bow::calc_clipping ()
   Real staffsize_f = STAFFHEIGHT;
 #endif
 
-  Real clip_h = staffsize_f;
+  Real b = control_[3].x () - control_[0].x ();
+  Real clip_h = 1.2 * b <? 3.0 * staffsize_f;
   Real begin_h = control_[1].y () - control_[0].y ();
   Real end_h = control_[2].y () - control_[3].y ();
-  Real begin_dy = begin_h - clip_h;
-  Real end_dy = end_h - clip_h;
+  Real begin_dy = 0 >? begin_h - clip_h;
+  Real end_dy = 0 >? end_h - clip_h;
   
   Real pi = M_PI;
   Real begin_alpha = (control_[1] - control_[0]).arg () + alpha_;
   Real end_alpha = pi -  (control_[2] - control_[3]).arg () - alpha_;
 
-  Real max_alpha = 1.1 * pi/2;
+  Real max_alpha = (100.0 / 90) * pi/2;
   if ((begin_dy < 0) && (end_dy < 0)
     && (begin_alpha < max_alpha) && (end_alpha < max_alpha))
     return false;
 
   encompass_.rotate (alpha_);
-  // ugh
   origin_.y () *= dir_;
   encompass_.translate (origin_);
 
   bool again = true;
-  //ugh
+
   if ((begin_dy > 0) || (end_dy > 0))
     {
       Real dy = (begin_dy + end_dy) / 4;
@@ -281,33 +286,21 @@ Bezier_bow::calc_clipping ()
   else
     {
       //ugh
-      Real c = -0.4;
+      Real c = 0.4;
       if (begin_alpha >= max_alpha)
-       begin_dy = c * begin_alpha / max_alpha * begin_h;
+       begin_dy = 0 >? c * begin_alpha / max_alpha * begin_h;
       if (end_alpha >= max_alpha)
-       end_dy = c * end_alpha / max_alpha * end_h;
+       end_dy = 0 >? c * end_alpha / max_alpha * end_h;
 
-      Real dy = end_dy >? begin_dy;
+      encompass_[0].y () += begin_dy;
+      encompass_[encompass_.size () - 1].y () += end_dy;
 
-      if (!experimental_features_global_b)
-        {
-         encompass_[0].y () += dy;
-         encompass_[encompass_.size () - 1].y () += dy;
-       }
-      else
-       {
-         encompass_[0].y () += begin_dy;
-         encompass_[encompass_.size () - 1].y () += end_dy;
-
-         Offset delta = encompass_[encompass_.size () - 1] - encompass_[0];
-         alpha_ = delta.arg ();
-         alpha_ *= dir_;
-       }
+      Offset delta = encompass_[encompass_.size () - 1] - encompass_[0];
+      alpha_ = delta.arg ();
     }
 
   origin_ = encompass_[0];
   encompass_.translate (-origin_);
-  // ugh
   origin_.y () *= dir_;
   encompass_.rotate (-alpha_);
 
@@ -317,7 +310,6 @@ Bezier_bow::calc_clipping ()
 void
 Bezier_bow::calc_controls ()
 {
-  // try clipping twice
   for (int i = 0; i < 3; i++)
     {
       if (i && !calc_clipping ())
@@ -458,8 +450,10 @@ bool
 Bezier_bow::check_fit_bo ()
 {
   for (int i = 1; i < encompass_.size () - 1; i++)
-    if (encompass_[i].y () > y (encompass_[i].x ()))
-      return false;
+    if ((encompass_[i].x () > encompass_[0].x ())
+      && (encompass_[i].x () < encompass_[encompass_.size () -1].x ()))
+      if (encompass_[i].y () > y (encompass_[i].x ()))
+       return false;
   return true;
 }
 
@@ -468,7 +462,9 @@ Bezier_bow::check_fit_f ()
 {
   Real dy = 0;
   for (int i = 1; i < encompass_.size () - 1; i++)
-    dy = dy >? (encompass_[i].y () - y (encompass_[i].x ()));
+    if ((encompass_[i].x () > encompass_[0].x ())
+      && (encompass_[i].x () < encompass_[encompass_.size () -1].x ()))
+      dy = dy >? (encompass_[i].y () - y (encompass_[i].x ()));
   return dy;
 }
 
index 48477b983738e66dd00c731b62e660b8788f4e97..770fd8a9735feffce6bf5a67087a5e5b1207fbeb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
       Jan Nieuwenhuizen <jan@digicash.com>
 */
 
@@ -87,26 +87,19 @@ Bow::get_controls () const
 Array<Offset>
 Bow::get_encompass_offset_arr () const
 {
-  Real dx = width (). length ();
-  dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
-  Real left_x = 0;
-  Real interline = paper ()->interline_f ();
-  if (dx < 2.0 * interline)
-    {
-      left_x = - 3.0 * interline;
-      dx = 2.0 * interline;
-    }
-  Real dy = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
+  Offset d (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT],
+    dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
+  d.x() += width (). length ();
 
 #define RESIZE_ICE
 #ifndef RESIZE_ICE
   Array<Offset> notes;
-  notes.push (Offset (left_x, 0));
-  notes.push (Offset (left_x + dx, dy));
+  notes.push (Offset 0, 0));
+  notes.push (d);
 #else
   Array<Offset> notes (2);
-  notes[0] = Offset (left_x, 0);
-  notes[1] = Offset (left_x + dx, dy);
+  notes[0] = Offset (0, 0);
+  notes[1] = Offset (d);
 #endif
 
   return notes;
index 1529c7074915798270cde15212c9054caceeafd7..0e9befcad228af92749c6a6523ece36e0ce17c7f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "boxes.hh"
index b2ffbaee602c5aa897184f35325e2cb507217d7c..b95f5fd41e5ece0bace135b2c4e70c3298789deb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "break-align-item.hh"
index 2b29b433f502ded30c7a87bb5489d11e50e85ad5..f25ac5e32f29d1c27a3819ffd888851440981b06 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "score-column.hh"
index 883e963e9f3d29b00a62c96f353c5bddd8fa5b6d..681ac2ae0fd48c419b84f23d6c4fa51f48987d4d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "change-iterator.hh"
index be406c792dbd2531f765d97122eafef7a592d841..54bbed8e814a31fd9a7ca43af674a32bb98450d5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "change-translator.hh"
index a21a7862cc56b1aa29d694b52d610864333b3e19..2d37445ae45b560653ca3c38f0024271d9cf72c6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "translator-group.hh"
index 5812e7fc5d0ceff10cf56ee7e745aaad8bfa980d..d7ce0c4df0608a728b3ee013d901508adbddb2a9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>,
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>,
   Mats Bengtsson <matsb@s3.kth.se>
 */
 
index 0d1a185923be893a1f6285b01b96f221f6f32f7c..eda65592b94e6c2944767b3b001a95a4c0d9b1c8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <ctype.h>
index 769bc5ed724849c79452d899e4fbb3ad2786b61a..85287257b0647f6ac480ea90a9db72a010e19fd5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-col.hh"
index a220298777d8868f21a0577ff342a512dddc01dc..1e90ffeb373813a13e43174bf9d75321f1a52e51 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "colhpos.hh"
index f1b71123904818c1b4d6cde9bd171bccdd7f5ac4..6a6dcef13c57449468cfdbf9c4589f8d2e250606 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "note-column.hh"
index 17c57cf3384a34cad2efcf5b44c3c5ac893af2e6..2da1e0ddae97e26025df1f96f85ab5d10c9c5975 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "debug.hh"
 #include "collision.hh"
index a0b6227cec96500d483096e53f999390ae646970..6742e6bee75b64ac8ecddd0b59c75b9ef8ed70c5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "command-request.hh"
index 400b6709a05b68821543ff39e10f35e409a056f0..0dee71825b0d00460808363c74b578cefb0a6974 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "molecule.hh"
index 58a16c1ce5d0956fcc6c7ef0ddfcc937be2096fd..4c44095826f217b81fb5745260afa0d0a6408960 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "dots.hh"
index 041e80a8cb4c7eed4dc2b1a61705c56c807f8e0a..20cf87a51508fd23bc007abdc36f056c3915478f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "dots.hh"
index 44580b64bac24a9d7d18d042f343eff41b1e063f..9a0913c1296cee425430dc46136183200ef0a180 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "debug.hh"
 #include "crescendo.hh"
diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc
new file mode 100644 (file)
index 0000000..193ef48
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+  encompass-info.cc -- implement Encompass_info
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1998 Jan Nieuwenhuizen <jan@digicash.com>
+
+*/
+
+#include "proto.hh"
+#include "stem.hh"
+#include "note-column.hh"
+#include "paper-def.hh"
+#include "encompass-info.hh"
+
+Encompass_info::Encompass_info ()
+{
+  assert (0);
+}
+
+Encompass_info::Encompass_info (Note_column const* note, Direction dir)
+{
+  Paper_def* paper = note->paper ();
+  Real interline = paper->interline_f ();
+  Real notewidth = paper->note_width ();
+  Real internote = interline / 2;
+
+  Stem* stem = note->stem_l_;
+  /* 
+    set o_.x () to middle of notehead or on eo_.x ()act o_.x () position of stem,
+    according to slur direction
+       */
+  o_.x () = stem->hpos_f ();
+
+  if (stem->dir_ != dir)
+    {
+      o_.x () += 0.5 * notewidth;
+      // ugh
+      if (dir == DOWN)
+       o_.x () -= 0.5 * notewidth;
+      else
+       o_.x () += 0.5 * notewidth;
+    }
+  else if (stem->dir_ == UP)
+    o_.x () += 1.0 * notewidth;
+
+//  o_.x () -= left_o_.x ();
+
+  o_.y () = stem->height ()[dir];
+
+  /*
+    leave a gap: slur mustn't touch head/stem
+   */
+  if (stem->dir_ != dir)
+    o_.y () += 3.0 * internote * dir;
+  else
+    o_.y () += 2.0 * internote * dir;
+
+  // ugh
+  if (dir == DOWN)
+    o_.y () += 1.5 * internote * dir;
+
+//  o_.y () -= left_o_.y ();
+}
+
index 29ce749fabe28fc0f1d1d260392441fa7a5513ec..bd6873d0d227ef63a0bea59b627520f09fe6009d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 2786941a929fc4da6537a8e85659f1a944c3354b..2ccf33506924ee75afc90f7ccff9c9f2ea6985e2 100644 (file)
@@ -3,7 +3,7 @@
 
   Sourcefile of GNU LilyPond musictypesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "music-list.hh"
diff --git a/lily/file-results.cc b/lily/file-results.cc
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
index e434e356092447ab4361a7362875402019341aaf..9d7b657880b52566f13350ed907966232c5d7ee2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 33ff9f81a15e603c656c5e6f230ea65f5ffa907b..3620c52d694457812d6a7de919e55347b5faf173 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "global-translator.hh"
index 05c2a722b3236495373bca231ad29ff409aec07f..58e08b959c4f473e40840ec97d5bb2e26feb24f7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "gourlay-breaking.hh"
index 79c298928b158af5f34a631161a149d56776d713..f9273f0ee37a0e5b1e8db4e800cd075bf23d2be7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "graphical-element.hh"
index dfc59748e8ce5f4af4790eb5a7b7a649cb94d89c..2bdaed7db17be9beff9b8a860acb57dada0df9a1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index 61256ed63a5dd800025b72b0646a913abc5ae678..104b5678de4ff963cbafc94690b5b6d021ee1ed0 100644 (file)
@@ -1,7 +1,7 @@
 /*
   head-grav.cc -- part of GNU LilyPond
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "note-head.hh"
index fb1e02205b9766854c4f9ff8f1f03ed656be6ec4..39dffd5dbffaf846b6be97ffcdd66d1e840a8ede 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "string.hh"
index e5fe2e8d564c67d60ad15fbf8a3ffb6871575645..82a81c230095d4da921619f49b59296710e495cd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "horizontal-align-item.hh"
index 6b3afaf3da7c2a8e633892e37341cab171ef76ea..a894ba521465dadbc47889e79a9cb435a1a10bb6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-col.hh"
index 2b70f21c624845353948d68b51e9d8ee23ea0c08..dd40fb8182f5d8037c5497a41fdad021add053d2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7497d3b66a8b5508a6fab8d7e07c62a845f8c421..64c1866fd8b3a95a71ece28c1db826e31d51a873 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "idealspacing.hh"
index 107bd2417da618b97ad3e08e563afdc1c728d187..82156417d18a19f451bcae478805ab66ab3377cd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <assert.h>
@@ -24,9 +24,8 @@ IMPLEMENT_IS_TYPE_B(Identifier);
 
 Identifier::~Identifier()
 {
-  if (!accessed_b_ && !init_b_)
-       warning (_("Variable not used"));
 }
+
 void
 Identifier::error (String expect)
 {
index 3728476203d6c442f07a1db16d6f605f8506fb21..2d3b45597d2496496b57dc6a0342f8fa63dcf60e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "includable-lexer.hh"
 #include "source-file.hh"
@@ -30,7 +30,7 @@ Includable_lexer::new_input (String s, Sources  * global_sources)
       LexerError (msg.ch_C ());
       return;
     }
-
+  filename_str_arr_.push (sl->name_str ());
 
   char_count_stack_.push (0);
   if (yy_current_buffer)
@@ -46,6 +46,7 @@ Includable_lexer::new_input (String s, Sources  * global_sources)
 
     */
   yy_switch_to_buffer (yy_create_buffer (sl->istream_l (), YY_BUF_SIZE));
+
 }
 
 /** pop the inputstack.  conceptually this is a destructor, but it
index 9428be7dc25040ba36282bdcc73797eeb5ab4283..ace2cffa532b72124bb4991714578675c95440d4 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 3a9afc14dc3ee7e217f75602e567c3c6a622ec0e..df3244e4dd089766c5f25442ebdeda6270909c86 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
           Jan Nieuwenhuizen <jan@digicash.com>
 */
 
index 9a29de18afa8fd514bc2cffbd82ff2e68f8d94a9..f6eb933e704aa88bc54be3d50054f1836168700a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
           Jan Nieuwenhuizen <jan@digicash.com>
 */
 
index 4b76e4018cff2d61b6876d5b905df74a0a5ff1e4..b145383d7dc578066fd9c1d310fa34721169dcbb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef ATOM_HH
index 273675f611035b07cbad4c1eb8a3d8b6cbe303f5..6065e43a68c2d5783496f640d21cfae7a3ff4d11 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-column.hh -- declare Audio_column
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef AUDIO_COLUMN_HH
index c870887c6f7bb420ef262d97a93b496df3289c69..6fe2a8e068603903cd89d78f3a48406c474dd78b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3e3c00c4fb649e50beab4a2870dfa5a8c4142795..3edfa01e48de848f0faac8853f391af598f4153b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-item.hh -- declare Audio_items
 
-  (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1996,  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef AUDIO_ITEM_HH
index 430c5f2c8acbbe1286b5b901d8bcdc6a007e130a..12f3d9c1e8ad1ec419300d6ec9c50358990028f3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   audio-staff.hh -- declare Audio_staff
 
-  (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1996,  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef AUDIO_STAFF_HH
index d7e33e4c7e35e587bafeec8bebe1be3eb30a4645..7933590884b66b452f1a3cc832dc17a596324b72 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b79b70084ecb25a89e2b3725c95e035f611b74b9..f3bfb3f7025553a9f9074607f8916f7c4564b4e4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 1059bdaeed82b810373577792e93b848a48597c3..c61a0810201bc63fbb3c055cddff429c27c761eb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 15b132d3663c2214244621ceac92ad0711133aec..64c2df98b2cd6bc964774969baf292ff4faa9618 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7da9dfaf3d177ba798010706bc76caeaad9bf5cb..a6579db1979f9874376ac24501418084860b8d39 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index c05b2a5414c4c087a55c5fdb6753586d69d495ad..9e058984f54160f747f07b73ed72d5c4666c96d0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 43fac9672dea776e123878d93e12fb3b8c2a162d..84c32113eace328d2898d483459f3bfcb3556504 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d62fb3ecea720694dae4796d4b9c7a097fdbbbb6..7677f5279d66b08ca43c082021a7c154bb119d77 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5db9c041a24ac61161af2e17342ed014f43d8637..b57a8040a80defd5335f68e671306820e256e677 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 81b68adfc19b7edfb3b851a7e34907a25dd551d5..cbfe1bb7d5a50bb979bb798f8f99c3daf31570d1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7291fd015728c61ebc5c680012c3ad28532ba8e2..760704fc50cfce0aa9f22b970f016d842185afdb 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 3729be625cf2c3a656294e3488b9baddaf1d41cb..5294d719d07877804912f174240a682388d1d206 100644 (file)
   beam and that point in the correct direction */
 class Beam:  public Directional_spanner {
 public:
-  /** The beams (especially at small slopes) should be prevented to
-    conflict with the stafflines.  This necessitates some quantisation
-    of start and end posititons of the beam.
+  /** 
+    The beams should be prevented to conflict with the stafflines, 
+    especially at small slopes.
     */
-  enum Pos { NONE, SIT = 1, STRADDLE = 2, HANG = 4, INTER = 8 };
-  // ugh, silly C++ (Pos::NONE vs Quantise::NONE)  
-  enum Quantise { NUNE, NORMAL, TRADITIONAL };
+  enum Quantisation { NONE, NORMAL, TRADITIONAL, TEST };
 
   Link_array<Stem> stems_;
   /// the slope of the beam in posns / point (dimension)   
@@ -33,7 +31,7 @@ public:
   /// should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams
   int damping_i_;
   /// should beam pos / slope be quantised? 0: no, 1: yes, 2: traditional
-  Quantise quantisation_;
+  Quantisation quantisation_;
   /// maximum number of beams (for opening-up of beam-spacing)
   int multiple_i_;
 
@@ -56,10 +54,10 @@ protected:
 
   virtual void do_print() const;
 
-  virtual void quantise_left_y (Beam::Pos pos, bool extend_b);
+  virtual void quantise_left_y (bool extend_b);
   virtual Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
   virtual void solve_slope ();
-  virtual void quantise_yspan ();
+  virtual void quantise_dy ();
   virtual Molecule*brew_molecule_p () const;
 };
 
index ffa9db31a4cdd2336436ec7cc8935f627ad6b181..4dbf2ead7074cab1b98194150e1d9eb1bab4ee8f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 6ef6818b3d587e705ef24f08ff0a707de77abde5..9d800f8ca6d89f6386fdcd2fa5cb483e40bd2e42 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 676be223df3cb88737d640b8ccb313d297e0779f..188360d0132c20abf74a39ebed9a4c0d84d3e7db 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index c6c9058e515e66448d383bf1ce72d55c044893e2..4499686f1060e2818e47045fe0d23db0e03a1ab1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 69bd360a7bcb18c901ebce3292716dd5e19edef9..e4adf804e1944c75c8f1e363ae2ac5587535ffd6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index ade016e1d5cf642baffdd34cfbf0614208ff405f..8c759717ed5d55697c04aae650c99f708dcd8d33 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a3adc4a381e868416b55a0d1bb94bbeb1da72216..0a3c9fa64a7e38f2c516aaed2b0e26de595e09ca 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index ffd499920aac581a17d4b22708bfd149f4e11c4f..61318648edad7f5900de05aeb1d8e2241f73dfef 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 8e64f68d466be2e2268e552233852e705bec8780..49694352d091316dc5a67626e157925daf0e1942 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3c42dd98cbdc5ed040b453df627603d9f3b3a89a..01a87167ba10fef873a082c095eba138f7949598 100644 (file)
@@ -1,7 +1,7 @@
 /*
   colhpos.hh -- part of GNU LilyPond
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef COLHPOS_HH
index 996165c3a3b8ce6f828c18224f5c232c9f8228d9..6cf18d7dbcd8569af9b4e7d32a68d1d54e8674e0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 08b07065726b25f2647ee68ebd975864bbaa92f2..9d47efb5139e42c5ec5798440e9f5d243eb44b12 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 11491edc4163c9fa705cc74991586b2eda8b012f..9a12dc8e19d146ca7f639909d7ff2aaf1b806d5b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 6c8a9df8054fefa9b77a52d5b6af0cebe7075ac4..0b62f658102dde03cd4fb64e3c987c9c8a783ebc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 358c482517c2611befd5265b87b64c4ca34bf04a..416b3fc33f1efc895a960f6df8b392231e422d26 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 38db1b569ac82cbb9f0e57fe4803b55a1ed657e5..e2e3b660fdeba4b10e8bd9e62f87f2704b8743c8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 01e3e3d3e5ef2f1f16cd94011f47b91d8e4a8c43..9d8d5e552a4a679b8f591742c2b92995d7d3eb13 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5463934a21c0607134cfc44f6c0e1b9b19b6537f..846cf0364f4eafbdf5e936f51fe4a1a4b153969c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 962fd2b6c21d2a7e8b98f6de03e19974c52a5370..9169a5782876790a23bf02b7931c3da97d1a580f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a44e3cc8018d38a70d833b0e913aa069f67719d5..29d3e2fa73d3ff394bc38badb84a047960d0ca78 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 59bb03cdf052c0ad86b357eb622ac569f13d11d5..6ad1d1d24371e35b7482a8f65b506afd77b163c3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh
new file mode 100644 (file)
index 0000000..6180ba3
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+  encompass-info.hh -- declare Encompass_info
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1998 Jan Nieuwenhuizen <jan@digicash.com>
+
+*/
+
+#ifndef ENCOMPASS_INFO_HH
+#define ENCOMPASS_INFO_HH
+
+#include "lily-proto.hh"
+#include "direction.hh"
+#include "offset.hh"
+
+struct Encompass_info
+{
+  Encompass_info ();
+  Encompass_info (Note_column const*, Direction);
+
+  Offset o_;
+};
+
+#endif // ENCOMPASS_INFO_HH
index 72f14f3c3cdb6f20e358a0753120a3ab00f3aed6..125021cdf6122e088bea994d61709be35aa3c1bb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9814b24fbe81c87d7f62d1e627e7502382fc713c..f6b4f6bafa82b7cca2256b1f5e6cc1461a0a92d1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
diff --git a/lily/include/file-results.hh b/lily/include/file-results.hh
new file mode 100644 (file)
index 0000000..3d6df5e
--- /dev/null
@@ -0,0 +1,24 @@
+/*   
+  file-results.hh -- declare 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  
+ */
+
+#ifndef FILE_RESULTS_HH
+#define FILE_RESULTS_HH
+#include "fproto.hh"
+
+void do_one_file (String init_str, String file_str);
+
+extern Array<String> target_str_global_array;
+extern Array<String> inclusion_global_array;
+extern Link_array<Score> score_global_array;
+void do_scores ();
+void clear_scores ();
+
+
+#endif /* FILE_RESULTS_HH */
+
index 4faf568ae939bde4788dedb4f3799fc8844d0b56..024468e3436a3f4f2486a793a93ee669b7f8eb61 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index dbcc8a52546b0c25b7a8e67abb556a4f6c424812..dddfacb0b2d1b4d1a9d451d957340c131ff03a9e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d8c3472a14898ff3c74dbab8deaa14cf489a9bfc..f01df2384885b2bd63adbb3e9f4ddedced21aef7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index aff7de6793306291ce01805c7c1d6c79e46a767f..6dce57708b5e1f6dd23a55d9fb5cfc6f2e5bb468 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 66411a4ea86beeb14fbc3213932700bb35ed8d09..8841f4e7e8545e5bc24567113fa4c9c5cdb4db53 100644 (file)
@@ -1,7 +1,7 @@
 /*
   head-grav.hh -- part of GNU LilyPond
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e74aadc2360d18da7b21c75725e474089c231cc1..4877f396f61507cd9a8450297559639448025e1c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7ae19db88ba0a1a4b55810b37e3ea201077d5515..da0794d760e1b595f9a39978f20219fae6e84499 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 8d3adfb48a9eebb6515c747dc0f0ab47c3985b2a..db851583ccd79aedd86f94638870f99c3361e352 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index 568c257c64bfc0d890d02310f92950207f8b2f4b..d94e0df1a4291acf4cde10a52628c0110940ce91 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9080872395c073c42f7bc63fe2c68f208c72c1b7..ed4c3a771301533794e10c0a95d12109f454b00e 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index 1aa8c8b82ca5254d09d91afd42f7845800ef29e2..50e1e9ef562564f5650992e127399ae67ac87eb1 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index fc077f60ab30a3701eb3408d6880a95793be63ac..b7365e5650cac124374da87652fa60d795208f0f 100644 (file)
@@ -13,7 +13,7 @@
 #include "virtual-methods.hh"
 
 #define IDACCESSOR( Input_staff, staff)\
-    virtual Input_staff * staff () { error (#Input_staff); return 0; }
+virtual Input_staff * staff () { error (#Input_staff); return 0; }
 
 /**
    A declarable data structure in mudela. 
 
    */
 struct Identifier : public Input {
-    bool init_b_;
-    bool accessed_b_;
-    int token_code_i_;
+  bool init_b_;
+  bool accessed_b_;
+  int token_code_i_;
     
-    Identifier (int code) ;
-    virtual ~Identifier() ;
+  Identifier (int code) ;
+  virtual ~Identifier() ;
 
-    void print() const;
-    DECLARE_MY_RUNTIME_TYPEINFO;
-    void error (String);
-    IDACCESSOR(Translator, translator)
+  void print() const;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  void error (String);
+  IDACCESSOR(Translator, translator)
     IDACCESSOR(Music, music)
     IDACCESSOR(General_script_def, script)
     IDACCESSOR(Symtables, symtables)
@@ -44,20 +44,20 @@ struct Identifier : public Input {
     IDACCESSOR(int, intid)
     IDACCESSOR(Duration, duration)
 
-protected:
-    virtual void do_print() const=0;
+    protected:
+  virtual void do_print() const=0;
 private:
-    Identifier (Identifier const&);
+  Identifier (Identifier const&);
 };
 
 #define DECLARE_ID_CLASS(Idclass, Class, accessor)     \
 struct Idclass : Identifier {\
-       Class *data_p_;              \
-        DECLARE_MY_RUNTIME_TYPEINFO;                       \
-       Idclass (Class*st, int code);\
-       virtual Class* accessor ();\
-       ~Idclass();\
-       virtual void do_print() const; \
+                            Class *data_p_;                 \
+                            DECLARE_MY_RUNTIME_TYPEINFO;                           \
+                            Idclass (Class*st, int code);\
+                            virtual Class* accessor ();\
+                            ~Idclass();\
+                            virtual void do_print() const; \
 }\
 
 
index f9dce9696d8f802258d1ac421ea03405e8950968..9cf7087369832046e9946caea707284992c46baf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
@@ -30,6 +30,8 @@ protected:
   Array<Source_file*> include_stack_;
   Array<int> char_count_stack_;
 public:
+  /// store dependencies for Makefile stuff.
+  Array<String> filename_str_arr_;
 
   Source_file* source_file_l () const;
   void new_input (String s,Sources*);
index 5cb5c43eb9c632c156f7dbabd8a7c1e5bb4007c2..3b23cb898f2d4a86df817911859fe1f913ec1c06 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 64bcca5e700ba347abe2d38d2d66e18db446e5af..0a20e7614844d1db6d35ff12b4cdfab90d579633 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #ifndef ITEM_HH
 #define ITEM_HH
index b81605e547ce4ed72ad98ecd99a842661733e584..59ab88c6619f47a297a6c277ad38d85990c851fe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 903e7f66b0b16979c2b3bf868dd5834f39ccc00a..f76b9e11fde996e2408fdfd8c72f39a6f61e879b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #ifndef KEY_PERFOMER_HH
index 9adfb26c096710b52fe32ebd39e48946522f0019..670125e1c7a491eef657a6274a45ecffd5847934 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef LILY_PROTO_HH
index 5316de9a8a8bf46a2aa17a8e46e75bb6b39bed24..f6d4e6b35f86473ab906d1419cdea69938ea00ef 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d91901bdfefe5ccc504e0086dc3bf290c53959d9..1bc88f52c2df68e8143860e38080825ad9adff4f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 1490edfede3efd5895c294f891f2a95fced45230..08eefad8230e3f17ac6b387a694bda05e00b83ff 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index 396c840a12b5a85e45b43b9668cefcb3338cf12c..a468fad24f1e732fc9884fda408a520d20795c72 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #error
index d7c37829bb1a61e3e2a5e38a8d95ede608329667..b61446b760cf16fd5d951b0990fe118e6572c270 100644 (file)
@@ -1,7 +1,7 @@
 /*
   local-key-grav.hh -- declare Local_key_engraver
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4e924397b17f12013962e7670d81d3af29cd3904..9b291ee9ab1dca54db51aa58b771a9ac5f18c341 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef LOOKUPSYMS_HH
@@ -32,9 +32,8 @@ struct Lookup {
   Atom fill (Box b) const;
   Atom beam_element (int,int,Real=0) const;
 
-  /// round slope to closest TeXslope
-  Atom beam (Real&,Real, Real) const;
-  Atom ps_beam (Real, Real, Real)const;
+  Atom beam (Real,Real, Real) const;
+  Atom ps_beam (Real, Real, Real) const;
 
   Atom streepje (int type) const;
 
@@ -52,10 +51,10 @@ struct Lookup {
     
   Atom dots () const;
   Atom slur (Array<Offset> controls) const;
-  Atom plet (Real &dy, Real &dx, Direction dir) const;
+  Atom plet (Real dy, Real dx, Direction dir) const;
   Atom text (String style, String text, int align = 1) const;
   Atom script (String idx) const;
-  Atom hairpin (Real width, bool decresc, bool continued) const;
+  Atom hairpin (Real width, bool decresc, bool continued) const;
   Atom dynamic (String) const;
 };
 
index 96b6d1dbd05e59aacc3d48e9584d36f92772f4b3..195e4f92dca6fbaf6bdb5a6bf8a05b9cbdd9ad49 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index c8a476037d8ea497da7770baf006ac9c36c3fc54..2660f890021e0c329e5eec18f061621904d33162 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
index 646f82638a9cc8ce47ad720d89a20ac6d02640a9..e5c3191723ae9305c3704b72522caf54d5c09547 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #ifndef MAIN_HH
 #define MAIN_HH
@@ -24,6 +24,11 @@ extern bool no_paper_global_b;
 extern bool no_timestamps_global_b;
 extern int exit_status_i_;
 extern bool experimental_features_global_b;
+extern bool dependency_global_b;
+extern bool version_ignore_global_b;
+
+extern Array<String> get_inclusion_names ();
+extern void set_inclusion_names (Array<String>);
 
 extern String default_outname_base_global;
 extern String default_outname_suffix_global;
index 90d19b1fdbbf367b445b3ef8cacab5695b6811a7..3abe46230bca69f75110728599c641e44ead1154 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index fa2f06e9ffcc54f2b8c3f4576a378612bcb0653a..f3fe174dd15ad77497c2e4895010873237150d11 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #ifndef METER_PERFOMER_HH
index 9d58a1b311ad72225dc2e289a2423555aa950328..98951c10f17401cedd01df3a55839022a15b2d82 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
index 55df8f34eefb51520c7977ccaa5b602fcb5cdc78..ca89bacec17cb4722dfb1cd45e37f81336b9f583 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-item.hh -- declare Midi items
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef MIDI_ITEM_HH
index 87e8ec5d27c4cf6ad78cb08e5bc1629785f6e5fa..f3a3781ed3c72662ae7136cee87c411745012a75 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-stream.hh -- declare Midi_stream
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef MIDI_STREAM_HH
index 492553ec8bfb95fad741dff90617e92d7ce1a0cb..c7a20f76ace44ee60a397c26da9ae26c9336799f 100644 (file)
@@ -1,7 +1,7 @@
 /*
   midi-walker.hh -- declare Midi_walker
 
-  (c) 1996, 1997 Han-Wen Nienhuys  <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys  <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index f1c1e1677ddbd690eca53d234f945b89a301b9cf..bb56394a7d40221c63f3c96ffa6ad8266dfaab63 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 28e55399ecef3dbd594b0739529c9fa45056a562..35a10dfaf94e264457525fe83d2d6c58f69b378c 100644 (file)
@@ -1,13 +1,10 @@
 #ifndef MISC_HH
 #define MISC_HH
 
-#include "lily-proto.hh"
 #include "real.hh"
-#include "moment.hh"
-#include "scalar.hh"
-#include "grouping.hh"
+#include "varray.hh"
+#include "interval.hh"
 
-Moment wholes (int dur, int dots);
 double log_2(double x) ;
 int intlog2(int d);
 #if ! defined(_ABS_)
@@ -23,6 +20,15 @@ sign (int i) {
     else return 0;
 }
 
+#ifndef STANDALONE
+#include "lily-proto.hh"
 Interval itemlist_width (const Array<Item*> &its);
+#endif
+
+int get_lower_bound (Array<Real> const& positions, Real x);
+Slice get_bounds_slice (Array<Real> const& positions, Real x);
+Interval get_bounds_iv (Array<Real> const& positions, Real x);
+Interval quantise_iv (Array<Real> const& positions, Real period, Real x);
 
 #endif
+
index ddea093d0e455e42414caf290d1f4b041e06bd51..3faccc45f8ec84e2f6a427d1dc145c6c0e691a90 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #ifndef MOLECULE_HH
 #define MOLECULE_HH
index d543a858c99248ebccf7af0df66d835ba9029462..f3f6b4e155932ae4513fb3fb72a7dde8f94f7eb8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index f084c19ecb00409deff1bd3a9f00193aea763053..21c3ca9056bbfa1bff3f996fe1804490af27dbd9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 2c8fa3093a8b5a95255cceb2d3d2f59bab26b257..b4cd413412da25941eee67ad3592d71ebc90929e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
@@ -23,6 +23,9 @@ class Music_output_def
 {
 public:
   Dictionary<Translator*> translator_p_dict_;
+  Array<String> filename_str_arr_;
+
+
   
   Music_output_def (Music_output_def const&);
   Music_output_def ();
index f777f1b6bbba54b84b0ebaa7a612ce497c3700f8..6f2807ff2cb5983806ced1cde181c2e8937ffd8e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 767c109a535d78952aedcef851e98df25ab62a7a..c59cb5b88b801ae89d7de8d3589f0931837aeafa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e46153c9f763f89c88c9d2636b31ef985abd74dd..329b1cd0d050dd75b4820b7f8721cd76e599bd72 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 6b659ad7d98fcc0a27f09eba22fd2d1a6dc71bba..8aa5319c28cb28b6a4298ae83df4cd62820e5103 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef LEXER_HH
@@ -33,8 +33,9 @@ class My_lily_lexer : public Includable_lexer {
   bool post_quotes_b_;
   char escaped_char(char) const;
 public:
+  String main_input_str_;
   void * lexval_l;
-    
+  
   Notename_table  *note_tab_p_;
   Dictionary<Identifier*> *identifier_p_dict_p_;
   Keyword_table * keytable_p_;
@@ -42,6 +43,7 @@ public:
 
   /* *************** */
 
+  void start_main_input ();
   void clear_notenames();
   Identifier*lookup_identifier (String s);
   Melodic_req* lookup_melodic_req_l (String s);
index b5cbd87154e8fdc594b257008156cd84faa26378..63b520ecabba7fceb3ab6277a8e0fa92ab054976 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
@@ -70,7 +70,6 @@ public:
     
   void set_debug();
   void set_yydebug (bool);
-  void print_declarations();
   bool ignore_version_b_;
 public:
   void do_init_file();
index b2be9b347962b8b2b6ab4a7a805174a02550a910..960349f403c46c333658018ae0eb80b67c158d4c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 661e378dc132bbfc60958a9f917ae25ede1b440e..c3b77ea415af9e5526b7c0c09ffa076676412f46 100644 (file)
@@ -1,7 +1,7 @@
 /*
   note-performer.hh -- declare Note_performer
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index 2e9b0bd9fd9b8aabfff14e5ce7c520ac81627737..96dcccb84cdc6cdb20b69898b331c5cc3ba6af2d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4b80892990d1175930c15c6751888b4ba17328b2..cb842e4c6c8b9f0d192c1eb618644aaf28a88373 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 918800a7c6b72a7f5c7d848dbecb3e3f702ac17d..5ab02c841037af26c22ee4c99daa6b8e3589ff9c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index f8c87557a03d71ac3220cd89725a131c4cbe4ee8..60ebda08cd8be2cb042b76800b703fb62c888b0f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4bf3b9589ca0b7594798f26bf72849d504d25486..671faf456e836ba79ea48224a3a247a2130618a7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 962f01fa4d296b7a0a801a7f45039bf4fa84c8cb..923575769d2f439bdde6b79da30558554547ce5b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performance.hh -- declare Performance
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #ifndef PERFORMANCE_HH
index da592ef9bf9d7729a75c6a435f43612ba41c75e1..f5bcb61b4a27bc52568d226f4ac673e851882692 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performer-group-performer.hh -- declare Performer_group_performer
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index 8335f87bc3c165b5fb1185f7403696012a9053a2..5d17b6afef9a3daf791be342cadc7d12f7712921 100644 (file)
@@ -1,7 +1,7 @@
 /*
   performer.hh -- declare Performer
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index dc68980ea11093d8e69197f8abcd711dab358e5e..9f224fa6ab530a7b9f689c6ef93092cf82c43a54 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 16d0beab3594314e51a0bf47100e2e9b6013812d..7de90d45261d400dc9d1b8d23141fca6bc0604e5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #ifndef PLET_ENGRAVER_HH
index 8caa2d01473131321cc95d8d67baf0b469fafac1..1625721bf45e0ad22f9597adc9dc5c8137926a43 100644 (file)
@@ -1,7 +1,7 @@
 /*
   plet-spanner.hh -- part of GNU LilyPond
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #ifndef PLET_SPANNER_HH
index be361205c08e661c295dededd1884b314cce66dd..8dd6affd4ea2fadb9948b984924f57237d8eb848 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4d6fdb6a7d7596673000468cc3ce3db03c59c84f..b591a40eb40ef698a82153588762b38fb7b754c2 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 08eb9bf54775946b304e3a7b13d8543a138d5675..f0dfbb5fb9bd9b02a6b638b21e1ed1d74557c650 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e40b34ff0710b1191029ad05eacd6289030d1948..82371d363c1377be569b9e4b54eba478ed06775a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef QLP_HH
index db985df6c54a83e28ad0bf18f2d66b3a759de3dc..dc2aaa5663d6f0d01e41a17f2b6bf75513b4a02e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 866bb7e929da486e3a233e8e6ce4955b80063ca2..8f7a30b4c8960fd66b5fdcb685b16c01beaeb64b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e93f493176cc8f08f78c8888bc47a8acf92269b7..ccdf48422b51301ef9a6d30f22273df4360ee4cd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef REQUEST_HH
index b763e4c63b3daf1cedaddf1601764521c0b81194..0e99b48b75878ffc103b1f3dc8058c811a42d745 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index cbeaf6fbe83664bbdd8c1a5fcd51dcf724a1ef3c..4d39f54347ef0166e644704d124661ff9843fc8a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 974955c2c6db2f7fddfe63cd4dad9a76c8757216..67006a98af52323409763624ce1089599fe1404a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 028e7f8c323bf673e87ace9e94cfee9f38c782ef..65cddc848e6b7eb89d206e91b07dce3e3020547c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b9a2e6c78f52dd79721d9de05264f5688fb0a11e..52e0904e3bea080387f48853ff7c9bb7aec5d600 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 361591012d62aee9f2a923b7306651069bae600b..84a1728b0a4ac7d89c11dda7461bcba87f209edd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9ee61c5b0fe10e99d2d20d00080de6e70cd4b857..298404da5d34bc55be4f2a81786f5edfb82eefc3 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 624c49ef31c0f77a29cb7dcb48efef9c4d58ccdc..961de68e2bc0790e4ada149fa87f18a91171a9e3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5e327a4b0e4c24e91454ee35005b5a31053d4961..edd695c4b977a7bd285fadfea55073d60cadc79f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 6348cdadf073552b8d1204ea009267ba450cf58b..4f11fd0f8f42070ee47d3d86a315eb1c9e777a65 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b093ae090ead388c118db9dd003e75f0ff6d2ca2..3aa4d4ba7e03ddade72d150029a1043bc60ebfef 100644 (file)
@@ -1,7 +1,7 @@
 /*
   score-performer.hh -- declare Score_performer
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index 48ed10e7b1044b50ae56d5a60d6cfe8ebae0d411..8b6ab1c1a729a0d96cfeea1b43c8afd30d6730c8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 8d9666b0c5542381abb86f8f03fa25c0783cd902..667e44340229c84b99e3110ded8b587e93c92198 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 335ed551fec491d71b6833decb69ca760534ae6a..1b7328b1e50ff9a02bff8197a2f96d5aebdba43e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index e0463fcf49f8443e5c37493970d4f92bebaa8da8..e8040c53726594390082aec1bafae65dd8e3ce9d 100644 (file)
@@ -1,7 +1,7 @@
 /*
   script-grav.hh -- part of GNU LilyPond
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a220ee4c19a1f9c8a486468a37aa7f2be3bb4bf4..0e69c49ded3ce2d02e581066736269a47928c4bd 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index a27e0518955b6878454bd202f2339f5a0175871c..64dd45251c2c7cac9412947a9d676af535aa82bb 100644 (file)
@@ -1,7 +1,7 @@
 /*
   slur-grav.hh -- declare Slur_engraver
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 59a99f5f8b124dda8b3946024bbcc2e59097fdcc..c7e6241e84f4f1d85a9a5cb9529688f364273d84 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index af20eca67fdef9f9207ccd60f5cb63f4030cef55..4d0744de011fff6bbe54ebaf0416d8d1e62409c7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 39da0ab69c8b6ef256631a1069bbf25d1e8910a7..bf4b88aa44451c4c0b13b97a16a25b2f1c2eb806 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 193dc8c1d0add12a111f29554334ffe19101ddf4..f42205b38e9377c98f81051222eab4caa2ac6afc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 27d2f153331321858dd73ecf351307e1fc369e98..ea94a97c6869b62f32e5eb95a22e601756752111 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 72cf2663833d499c5782a51111e128f2b1162c0f..9f03ca73d5181096d4c6714d017118aea7efcb47 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 063b3c1b058df6092e11c246e876a4482477c5b2..3352e85b77ccbe193898fa84b28edf363e1bb20e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   staff-performer.hh -- declare Staff_performer
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                  Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index 226c70411c1f01c5cda21a4ac8ffdf4f5e3085b8..976288745861246bd6ba69c3e97ed9b0b8a49ef1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9ec528d767cc95429c886a79c0f9a190b15cef70..ff65bf66635690c3d81b85a5bcec8fd051868d1d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5051dd9e072ee0e6f35b734278a8adf9d6f8431c..258818db1e6c60f6bde1ed6a569ab7a746d7a5c7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index d0695a395f202b88849dd5c32bfa16c735572fb6..78a92365446b1f539899696db7b942a8abc53a73 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5fa4da6461e72a8e6a17e87dd9a7dccfc84f89d6..83ebeaf74b25d2a88fadbfe4b75b08084a0022d7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
 #include "real.hh"
 
 struct Stem_info {
-  Real x;
+  Real x_;
   int dir_;
   Real idealy_f_;
   Real miny_f_;
-  int beams_i_;
+  int mult_i_;
 
-  Stem_info();
+  Stem_info ();
   Stem_info (Stem const *);
 };
 
index 1a63a17eb06df23b565cbc1ab5b76aba6d2fb288..e9e5cac4c49ff04166749747d03c007ec31a8288 100644 (file)
@@ -66,6 +66,9 @@ public:
   int beams_left_i_;
   int beams_right_i_;
 
+  /// maximum number of beams
+  int mult_i_;
+
   Direction dir_;
     
   /* *************** */
index e5e43938876f129ac0460afbb459b763dbfcab46..4ee998706eba65eef74ead194f55e81e92795e60 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7cc4a905f112f5d3659889a87a23da8f591af194..601477fcd2225bd4f80c81e6e01ae6f422baa5da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9f8f5514621fcda4d8e241fe4a92a925e07364e7..699990c4dbadffe3153dc830f03e625992b0d234 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 8c36ee6cbf5004d11bcbc98d4df1f7fbd7b23e53..71724eb0ad76f8a11d929bfeb27282ae4e53eb5e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 80850cafa98ac824c2d6d4f9d6ae3aa9f3c92a17..43a35d2ad34f2edda3d365677adcd49cf8d895e0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 299e92a3761fc2d45ab1fd5e06e8b5ad3c1753d1..834d91ed559862da41cc4dea03e1fa933d636e03 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a1100653ae6d15d88cadd25f74a5496cc2050d1e..d983e164911541245158cfa297d6f9bca5f477b5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4c0c431bcf457c181181e9bc3dad6e05aff72507..22c7274a3464a7328faeae4e93f4b11a0eae136f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 02da3a2488f3480e4a966a898d987b1dcf927a45..82aa0e19de7c58546cd5d6117feb496fb23f8aed 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 7fba807720bee5f68466d4e159ffcf2d734a28a9..686f0d938df45c572265993902e192a457784df8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a357307f5ef91baf4bba045149158b6b1cf34848..0220ed70f50527a5f266dd2111720a60158140ee 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 1cc3a0b3c3343eb29d650361f2da9d60dd09742d..3e00c5b0e108fcc7187fff001f1b5fbd934b2bdf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index c2ddcb131ab901eda6f0f4c35392d332cfb50cbb..1684809af56aa5eae4511acecaf1aa9b481c9ee8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 0bebd32512008a69d90a200d75c1df5f1d74cf6f..76208a06cfe45f2125b65eefd29f68d7eba2b088 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a01e2c5164c045e212a16e5f75957f02ad351e80..b4962c34a07b8d31bdf42b0c2d74ae5b449e61d6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4f26048eee2a347cf755a537fef47ffea508b4f7..c61ba39d02192204a8518ff3fdc2418fa086e7d0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 489586505f4fcee7e407876fdaca91ae6734a954..df8be95bc5b0a18ebf14d0f7797c8c556aa1f95e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 5e46c66fd57d6c7dad802abb440790700d32ef8a..f60623e7dced972f20c91f167f57c08b034097b7 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index 405c65a0b7ff86de93cc937b553b8abf389abf2f..678137e29f08ba2771fe7d9970d90edf8c8d727e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 49bfbfc5532cd519ccfe0b97060532023b71b686..a9fec21204b9649e4994a61e70176d1699419dd3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index a7d69ff0838d7e1d59478045f91340c3a01dae13..7465c279e64873c3e18e18aedaee07465a6f12d4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 4ff8adcc20e460a6ae833d6271567059e856a6d1..70856b56dc14cb3f1a869e3adff845f7b7f1a6c1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "ineq-constrained-qp.hh"
 #include "qlpsolve.hh"
index 8b2297ce5cc91d6a93585b302bf5254ba98190f5..20f52f0553021944e697561bbf55f47b864dea6d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-score.hh"
index 60c2f2dbce19b783ea137e4c16e127b2e7852f1e..fe9885372693562ba07bdf7b44d0b4598da10efb 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   
   Todo: key undo, special keys.
index d80f01670dda03f6d76f5524e3708d7995004fe3..93abfa0575bd1946e894605a87a40843583d8573 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   keyplacement by Mats Bengtsson
 */
index bca4c5c106e8fd59f48e914a7b17ce632a76b82a..527cf06cbbf6efcfbbc637179b68c0f8bbebc286 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "key-performer.hh"
index 56a6278cfa118bf7655d777727b6fa3ac2750317..9e8b9d40c51448ea19f2165b8c663a59c26b32b1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   TODO
   transposition.
index 6f5cd27f2653bd19f22a193d5cc9fdc0d4773953..8b184bb7add2f6f88dd5598d8ea49160dfb3e20e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <iostream.h>
index 465a23d819a2717009f2822df294601973c091e5..0ae8eca24e9e0817b7d67452bd2197e123abbf74 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "staff-sym.hh"
index 3e518e022c403babb123774c961bd8e81ea556ee..95b77e24c651abda41254b99827b2cc49c8d094b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 83c4823db133b4d3c7c539ef9c1631909352ddc4..eed55a9b3726cf61fbb205a394972d046ac1a9b3 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
   
  */
 
index ec84f240bfa197a655c743d7a8248ecdafeb489f..474a5910ce52f494eeef6961130ff4c48d6cf45a 100644 (file)
@@ -1,7 +1,7 @@
 /*
   local-key-reg.cc -- implement Local_key_engraver
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "musical-request.hh"
index a2ddd1b43e848447170e96078acc06ceb8b671bb..ea45b32d44dba9582f61de4480f04f41d8e90203 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "dimen.hh"
 #include "local-key-item.hh"
index b0212b2f91ed18920e3d3b1f5f6737e0ad29ec07..bbdfd3c11196927b558aa6a031807307d6ec6826 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   TODO
   This doth suck. We should have PS output, and read spacing info from TFMs
@@ -192,21 +192,21 @@ Lookup::streepje (int type) const
 }
 
 Atom
-Lookup::hairpin (Real &wid, bool decresc, bool continued) const
+Lookup::hairpin (Real width, bool decresc, bool continued) const
 {
   String embed;
   Atom ret;  
   Real height = paper_l_->get_var ("barsize") / 6;
   embed = "\\embeddedps{\n" ;
-  embed += String (wid) + " " 
+  embed += String (width) + " " 
        + String (height) + " " 
     + String (continued ? height/2 : 0) + 
     + " draw_"  + String(decresc ? "de" : "") + "cresc}\n";
   ret.tex_ = embed;
 
 
-  ret.dim_.x () = Interval (0,wid);
-  ret.dim_.y () = Interval (-2*height,2*height);
+  ret.dim_.x () = Interval (0, width);
+  ret.dim_.y () = Interval (-2*height, 2*height);
 
   return ret;
 }
@@ -290,7 +290,6 @@ Lookup::vbracket (Real &y) const
   Atom bracket = (*symtables_p_)("param")->lookup ("bracket");
   Interval ydims = bracket.dim_[Y_AXIS];
 
-  
   Real min_y = ydims[LEFT];
   Real max_y = ydims[RIGHT];
   Real step = 1.0 PT;
index 182658cd5f5fefd77d81001b954e69003928366a..f90dcde52c1507397090d63c22c6d45778425196 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "lyric-engraver.hh"
index f55844044c4db3bf140d6e69066c635ca7951d51..d81875c95e72fb5bd1dffedf9a3c1a032efdc90e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "lyric-performer.hh"
index 743b8e6a9ebb4f454a419213acfbea798c5197c0..2049462714fbf31e19491d47e2495d9b0dd6ad4a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <stdlib.h>
 #include "misc.hh"
 #include "string.hh"
 #include "main.hh"
-#include "path.hh"
+#include "file-path.hh"
 #include "config.hh"
-#include "source.hh"
+#include "file-results.hh"
 #include "debug.hh"
-#include "my-lily-parser.hh"
 
-static bool version_ignore_b = false;
-Sources* source_global_l = 0;
+
+bool version_ignore_global_b = false;
 bool no_paper_global_b = false;
 bool no_timestamps_global_b = false;
+String default_outname_base_global =  "lelie";
+int default_count_global;
 
 bool experimental_features_global_b = false;
+bool dependency_global_b = false;
 
 int exit_status_i_;
 
@@ -37,11 +39,11 @@ Long_option_init theopts[] = {
   {0, "warranty", 'w'},
   {0, "help", 'h'},
   {0, "test", 't'},
-  {0, "debug", 'd'},
+  {0, "debug", 'D'},
   {1, "init", 'i'},
   {1, "include", 'I'},
   {0, "no-paper", 'M'},
-
+  {0, "dependencies", 'd'},
   {0, "no-timestamps", 'T'},
   {0, "ignore-version", 'V'},
   {0,0,0}
@@ -55,7 +57,8 @@ usage ()
     "Typeset and or produce midi output from mudela-file or stdin\n"
     "\n"
     "Options:\n"
-    "  -d, --debug            enable debugging output\n"
+    "  -D, --debug            enable debugging output\n"
+    "  -d, --dependencies     write dependency files for every output\n"
     "  -I, --include=DIR      add DIR to search path\n"
     "  -i, --init=FILE        use FILE as init file\n"
     "  -h, --help             this help\n"
@@ -112,49 +115,8 @@ notice ()
 }
 
 
-static File_path path;
+ File_path path;
 
-void
-do_one_file (String init_str, String file_str)
-{
-  if (init_str.length_i () && path.find (init_str).empty_b ())
-    {
-      error (_("Can not find `") + init_str +"\'");
-      return ;
-    }
-  if (file_str.length_i () && path.find (file_str).empty_b ())
-    {
-      error (_("Can not find `") + file_str + "'");
-      return ;
-    }
-
-  Sources sources;
-  source_global_l = &sources;
-  source_global_l->set_path (&path);
-  {
-    My_lily_parser parser (source_global_l);
-    parser.set_version_check (version_ignore_b);
-    parser.parse_file (init_str, file_str);
-    
-    if (file_str.length_i () && file_str[0] != '-')
-      {
-       String a,b,c,d;
-       split_path (file_str, a, b, c, d);
-       default_outname_base_global = c;
-      }
-    else
-      default_outname_base_global = "lelie";
-  
-    if (parser.error_level_i_)
-      {
-       exit_status_i_  = 1;
-      }
-    else
-      do_scores ();
-    clear_scores ();
-  }
-  source_global_l = 0;
-}
 
 void
 identify ()
@@ -209,9 +171,12 @@ main (int argc, char **argv)
          exit (0);
          break;
        case 'V':
-         version_ignore_b = true;
+         version_ignore_global_b = true;
          break;
        case 'd':
+         dependency_global_b = true;
+         break; 
+       case 'D':
          set_debug (true);
          break;
        case 'M':
index 9b11835eafc2f71db065370a4a61b89352db446f..f14d00a4edbbe8ff7d7e19345b21cc0d11dd9c63 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "meter-grav.hh"
index b7206c2b78ba63bc56c3a6c0dc31c67bf526549d..44849ab744b7813867e73cc1ffa6babdea77f2ba 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "meter-performer.hh"
index 0e85a4849fbdf75ff4169f920b187f22d08f7f11..6eff15ea8e521367e2dc35a768985a5a20609ea8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 
 */
 #include <math.h>
index 05f0be08a1db8a7658f12d9f0e8241eb83a7f222..46c5f3420b485788651ffde62dc22de3802ad0de 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "proto.hh"
index a9abaa677b75d65684e9be4df9a47ffc8d02a016..89aab84a8b618f7650d2e63b76917aa6b8b7a97d 100644 (file)
@@ -3,7 +3,7 @@
 //
 // source file of the GNU LilyPond music typesetter
 //
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+// (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 
 #include <fstream.h>
 #include "string.hh"
index 38fbad9953ee8ae359ce5aefce614688e0e0ccb9..75f7af9321b5c46530dad4ae6cd22ab30fc2c48c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
          Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index d150d557926ecc4ecd7293a03659cd7c9666d81f..c9cb8e5dcfcb720a2bc51ebb3825c6fc1baab9b0 100644 (file)
@@ -3,14 +3,17 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+    Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include <math.h>
 
-#include "item.hh"
 #include "misc.hh"
-#include "moment.hh"
+
+#ifndef STANDALONE
+#include "item.hh"
+#endif
 
 int
 intlog2(int d) {
@@ -29,7 +32,7 @@ log_2(double x) {
   return log (x)  /log (2.0);
 }
 
-#if 1
+#ifndef STANDALONE
 Interval
 itemlist_width (const Array<Item*> &its)
 {
@@ -45,3 +48,74 @@ itemlist_width (const Array<Item*> &its)
 }
 
 #endif
+
+
+/*
+  TODO
+    group in some Array_*
+    make more generic / templatise
+ */
+int
+get_lower_bound (Array<Real> const& positions, Real x)
+{
+  if (x < positions[0])
+    return 0;
+  for (int i = 1; i < positions.size (); i++)
+    if (x < positions[i])
+      return i - 1;
+  return positions.size () - 1;
+}
+
+Slice
+get_bounds_slice (Array<Real> const& positions, Real x)
+{
+  int l = get_lower_bound (positions, x);
+  int u = positions.size () - 1 <? l + 1;
+  if (x < positions[l])
+    u = l;
+  return Slice (l, u);
+}
+
+Interval
+get_bounds_iv (Array<Real> const& positions, Real x)
+{
+  Slice slice = get_bounds_slice (positions, x);
+  return Interval (positions[slice.min ()], positions[slice.max ()]);
+}
+
+// silly name
+Interval
+quantise_iv (Array<Real> const& positions, Real period, Real x)
+{
+  /*
+    ugh
+    assume that 
+      * positions are sorted, 
+      * positions are nonnegative
+      * period starts at zero
+   */
+
+  int n = (int)(x / period);
+  Real frac = (x / period - n) * period;
+  if (frac < 0)
+    {
+      frac += period;
+      n--;
+    }
+
+  Slice slice = get_bounds_slice (positions, frac);
+  Interval iv(positions[slice.min ()], positions[slice.max ()]);
+
+  if (slice.min () == slice.max ())
+    {
+      if (slice.min () == 0)
+       iv.min () = - period + positions.top ();
+      else
+       iv.max () = period + positions[0];
+    }
+
+  iv += period * n;
+
+  return iv;
+}
+
index f054a280212b2193d93751c0c6abcabe5cc20bf4..613fc0ea1dd5586f8414b9f02222664899dfeba0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "interval.hh"
index 9c792489141b1adf2616f6abff51941a28cbfca8..e6a65fdadb7f0b4bcde69bd43e00fd0d4eefd4e0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "debug.hh"
 #include "music-list.hh"
index 93a64e6a014703140eb77d7011f87c3b70ce30ee..84934a99c525dacd97ff8af544df09a757efc964 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 297584d539bdccd0949f0868e458ebafe827565f..2e9a28786339227261492cd3f373106d97777290 100644 (file)
@@ -3,9 +3,10 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+
 #include "debug.hh"
 #include "music-output-def.hh"
 #include "global-translator.hh"
index 443088c9526c6b80224a6db4a15cfaaf37311630..298dd2dc5cefa3ec363a344ac8c206531e507c64 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 0def2d2f518da02bdaa886a62bfc1311e866ed9c..3469aaff33df17796041c183f7039324df1e58fe 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "musical-request.hh"
index 43495eb06cf6a01b960febcc02baa7b151bd5ef0..77f13bf18e56bc3a26dbeb71c6c939097d699f2f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <strstream.h>
@@ -19,6 +19,7 @@
 #include "debug.hh"
 #include "source-file.hh"
 #include "parseconstruct.hh"
+#include "main.hh"
 
 static Keyword_ent the_key_tab[]={
   {"accepts", ACCEPTS},
@@ -92,6 +93,18 @@ My_lily_lexer::lookup_identifier (String s)
   return (*identifier_p_dict_p_)[s];
 }
 
+void
+My_lily_lexer::start_main_input ()
+{  
+  if (!monitor->silent_b ("InitDeclarations") && check_debug)
+    print_declarations (true);
+  if (!monitor->silent_b ("InitLexer") && check_debug)
+    set_debug (1);
+
+  new_input (main_input_str_, source_global_l);
+  
+  print_declarations(true);
+}
 
 void
 My_lily_lexer::set_identifier (String name_str, Identifier*i)
index d267732e97f6afa301a0e438c4f254fbfdd7c624..beb8d7df3cbf9e41e0bbf93e74f93ae180dadd91 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "my-lily-parser.hh"
@@ -15,7 +15,7 @@
 #include "command-request.hh"
 #include "parser.hh"
 #include "header.hh"
-
+#include "file-results.hh"
 
 My_lily_parser::My_lily_parser (Sources * source_l)
 {
@@ -50,57 +50,20 @@ My_lily_parser::set_version_check (bool ig)
 {
   ignore_version_b_ = ig;
 }
-void
-My_lily_parser::set_debug()
-{
-#ifndef NPRINT
-  String s = "";
-  if (init_parse_b_)
-    s = "Init";
-  set_yydebug (!monitor->silent_b (s+"Parser") && check_debug);
-  lexer_p_->set_debug (!monitor->silent_b (s+"Lexer") && check_debug);
-#endif
-}
-
-void
-My_lily_parser::print_declarations()
-{
-#ifndef NPRINT
-  String s = "";
-
-  if (init_parse_b_)
-    s = "Init";
-  if (!monitor->silent_b (s+"Declarations") && check_debug)
-    {
-      lexer_p_->print_declarations (init_parse_b_);
-    }
-#endif
-}
 
 void
 My_lily_parser::parse_file (String init, String s)
 {
   lexer_p_ = new My_lily_lexer;
   init_str_ = init;
+  lexer_p_->main_input_str_ = s;
 
   *mlog << _("Parsing ... ");
 
-  init_parse_b_ = true;
-  set_debug();
-  lexer_p_->new_input (init, source_l_);
-  do_yyparse();
-
-  if (error_level_i_)
-    {
-      error (_("Found errors in init files"));
-    }
-  print_declarations();
-
   init_parse_b_ = false;
-  set_debug();
-  lexer_p_->new_input (s , source_l_);
-  do_yyparse();
-  print_declarations();
+  set_yydebug (!monitor->silent_b ("Parser") && check_debug);
+  lexer_p_->new_input (init, source_l_);
+  do_yyparse ();
 
 
   if (!define_spot_array_.empty())
@@ -108,6 +71,8 @@ My_lily_parser::parse_file (String init, String s)
       warning (_("Braces don't match."));
       error_level_i_ = 1;
     }
+
+  inclusion_global_array = lexer_p_->filename_str_arr_;
 }
 
 void
@@ -157,7 +122,14 @@ void
 My_lily_parser::set_last_duration (Duration const *d)
 {
   if (last_duration_mode_b_)
-    default_duration_ = *d;
+    {
+      default_duration_ = *d;
+      /* 
+        forget plet part,
+        sticky plet factor only within plet brackets
+       */  
+      default_duration_.set_plet (1, 1);
+    }
 }
 
 
@@ -194,8 +166,9 @@ My_lily_parser::get_rest_element (String s,  Duration * duration_p)
   else if ((duration_p->plet_.type_i_ == 1) && (duration_p->plet_.iso_i_ > 1))
     {
       Multi_measure_rest_req* m = new Multi_measure_rest_req;
-      plet_.iso_i_ = 1;
-      default_duration_.plet_.iso_i_ = 1;
+      // these shouldn't be necessary anymore
+//      plet_.iso_i_ = 1;
+//      default_duration_.plet_.iso_i_ = 1;
       m->duration_ = *duration_p;
       m->set_spot (here_input());
       velt_p->add (m);
index 540922d4f0cc65dbe41eab052b1f179aeaa658f3..c82d2c42c2a95d9bdbf77ecbced709b4638e0a0c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "dot-column.hh"
 #include "note-column.hh"
index 7a728aaa82e406bed48586cdd1c4528a9e53d864..3ae349b28bfcef63ecdc2b218ac7e55f4b7010f5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "misc.hh"
index 4b60d69229142332c2ba349575764f115152ccca..6679f61ba6e04e6bb411aaf9c6b39d6acd80848d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1996,  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "note-performer.hh"
index 049f0cdfcb1ecbb495e67b71c8190a45d51dc8ef..1f3bc9921044a2a18401b71bc389901d9708e04f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "notename-table.hh"
index 81ef2c793e002ce610e2a08c94414a94a0829b41..d3df3f600f8d6f2f4b0c157e720564177076ef72 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "outputter.hh"
index 7da23d8d902960f4cf6cee098639fe72d32edfc8..e776b62c926f78322a460042adc96436cebef427 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-col.hh"
index 02033ab93ead58102b8260c1404a895c4a52fd90..51c9a4b019274bb495fcd7368cb34a6f3bd0f501 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "main.hh"
@@ -23,7 +23,7 @@
 #include "word-wrap.hh"
 #include "gourlay-breaking.hh"
 #include "outputter.hh"
-
+#include "file-results.hh"
 // sucking Cygnus egcs - w32
 #include "list.tcc"
 #include "cursor.tcc"
@@ -199,17 +199,21 @@ void
 Paper_score::tex_output ()
 {
   // output
-  String outname = paper_l_->outfile_str_ ;
-  if (outname.empty_b ())
+  String base_outname = paper_l_->outfile_str_ ;
+  if (base_outname.empty_b ())
     {
-      outname = default_outname_base_global;
+      base_outname = default_outname_base_global;
       int def = paper_l_->get_next_default_count ();
       if (def)
        {
-         outname += "-" + String(def);
+         base_outname += "-" + String(def);
        }
-      outname += ".tex";
     }
+
+  String outname = base_outname + ".tex";
+  target_str_global_array.push (outname);
+
+  
   *mlog << _("TeX output to ") <<  outname << " ...\n";
 
   Tex_stream tex_out (outname);
index 92b126428c8254d051e4559a6b7534ce12df4f8a..20e412dde81f1da2260c1932079e58540b9f4da7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <math.h>
index 8a6d3c79876cb5ffacde3144ba9ff203a0163dad..81e281d659fa588d809e08c5a65b8f88726ea6f6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include <time.h>
@@ -18,6 +18,7 @@
 #include "audio-staff.hh"
 #include "performance.hh"
 #include "score.hh"
+#include "file-results.hh"
 
 Performance::Performance ()
 {
@@ -137,6 +138,7 @@ Performance::process()
   
   Midi_stream midi_stream (out);
   *mlog << _("MIDI output to ") << out<< " ..." << endl;
+  target_str_global_array.push (out);
 
   output (midi_stream);
   *mlog << endl;
index 525b6202fcec0583147eb23c755d8d42bbc70018..a33b967e439b0e4fbd0df56c288345d667bd03b9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index ed171b5a7066419bb3436f1c6d8e4101ffd43355..b62f37ec074d16d8e8eae69ac2eefd9b54ec3907 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
                Jan Nieuwenhuizen <jan@digicash.com>
  */
 
index 5671dd4af865c367871e81256c06fac939050e20..a11b61b29e8f6676fdf135501b2bd6a562967888 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index d94a858634ecc83f7647a0a17145fc6245995f32..d4fc9005de83ce79ec746844634c72aae3fc7310 100644 (file)
@@ -1,7 +1,7 @@
 /*
   plet-engraver.cc -- implement Plet_engraver
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "proto.hh"
index bb9980c263cdbc6897a0cf423e428338ab1dd07a..6e578441c6c16bd8f60de8cbbcd6d40c9fdbb231 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "atom.hh"
index 1f837ad9f09fe4a906babc661eb5f278ad61f863..c13957615826e90cbd7192002291f85777513352 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "musical-request.hh"
index a42c4a552e29e6c72218bf1a1e4cc8ff4facb5a9..76fc2b8046edff97df3f1a2e9696015a3a596c0c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "bar.hh"
index 2a191dead80b25da68f43f2a11fb4d3b8c8727ea..61a1b933c334ccf03ccea27c1d21407413595912 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "property-iterator.hh"
index 8d08783f155c780739a40bcc4e71032849bcc322..8d08d22b2ba4d20f7e8210057cccc7eaf69413d7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include <math.h>
@@ -17,7 +17,7 @@
 #include "string-convert.hh"
 
 Atom
-Lookup::plet (Real& dy , Real& dx, Direction dir) const
+Lookup::plet (Real dy , Real dx, Direction dir) const
 {
   String ps = "\\embeddedps{\n";
   
index 635cba40a024312ef8937158c17077ff331d23c1..f77534e3e4ca07e688b25020218972ab2cbf2db1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index 3d45207eab502ea98d2694c96a53322fc32491dd..78e07042773efb7ed8b91e7e5025b92d99832a0f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   TODO:
   try fixed point arithmetic, to speed up lily.
index 3d833b94d1d1ab49562da5a7f6ad19c03c35b82e..19be49a8d374b7b98d04cd83b1a883b2035d7fbd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "translator-group.hh"
index 488b2cad953d6a6ecdf62167b0b78853f17a7010..920cc79ca53eb7199f5f6ea7ca77ecc72b2dc07b 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "request.hh"
index 119adcf2b7495182bc0cb8485605f9f6f8139a31..3729f28e7e1a680866736fe8f8c67d2d1f221355 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index f1263ffcbeada879fbf4cf641ae1f791cbbed0bc..38f0a65db84500290e71fdae339441b134a54b48 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index 762cbd6e36cc623d6b26005d9b2747522fd9afff..5791c6bd6611b93ad82e8a5684cfd5ad25ffed96 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "rest-grav.hh"
index 0028373cf5dfdd9ce5331ccc0d439ae9e78adff6..e46f3f8673f80cd13896edeaab7d7840df63920d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "molecule.hh"
index 7cba706c24fbe699744ba514477b430d5b45850c..e6d5b66c04e618e361dc532fb7b44ce3ab216b0f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "rhythmic-column-grav.hh"
index 616b8bf8cd27dafb0040a908020b3c3ff93c26a4..99e2f526804ffef93c3a98c70959f4fa8a440b6f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "rhythmic-head.hh"
index 5780eaff1ea105a92454a2292b1341dc053354ee..1882347664db6b8fd17766117206f33fe605317d 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
   
  */
 
index 0da2f640cbd0b024cc89f4b0b9156424ccf1d750..9f40322a0a16bbbd2cd6a1c6b2c02298bd7ff2ab 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index 4bfd4c2a16405b718d56a814cf3798f0cd952f61..e86ca938600c983f2da407c6e31ecf15a24ef73a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "score-elem-info.hh"
index e81d7e0563e8609d7f44b034afdaafa493b5ab77..c207e75a4faa00fa6b9ffd281c30d8a8269249c7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "outputter.hh"
 #include "p-score.hh"
index 06f54eca515ee4ce47b96cf2a11efdcf9f406fde..cfce99e6b37b1e2ed26b344bb5b004513ef4ccc7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "super-elem.hh"
index 9db18a916f64dbff68816488bb1159eaaca0b78d..7d596f90b935d719421c2993e23c1274e0c0ecc0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1996,  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "score-performer.hh"
index 9e2e2cc918fff32a7df260d476a23b4744e6d55e..a0f44cb5ba963dc7832b70925662f0da441f1026 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 8e88f8ad36e89bc633c0d4a89aebc0e70d46dfcf..d30579839a9af88321e0baab582835c1398ea897 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "score.hh"
index 4a2df191c4bbfd7e27e200aa5c43aa40479803ba..77eeead39e080bb9762d7ce6387917fbc5430fd8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "scoreline.hh"
index 5badc05fb00bb0f2e53c445c417aa8a17b361675..4a25a85a0fc78201c2013868b05a20a770d8acd6 100644 (file)
@@ -3,9 +3,9 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
-
+#include <fstream.h>
 #include "main.hh"
 #include "score.hh"
 #include "string.hh"
 #include "header.hh"
 #include "debug.hh"
 #include "parray.hh"
+#include "file-path.hh"
+#include "file-results.hh"
+#include "my-lily-parser.hh"
+#include "source.hh"
+
+Sources* source_global_l = 0;
+Array<String> inclusion_global_array;
+Array<String> target_str_global_array;
+Link_array<Score> score_global_array;
+
+
+void write_dependency_file (String fn, Array<String> targets,
+                           Array<String> deps)
+{
+  const int WRAPWIDTH = 65;
+
+
+  cout << "Writing dependency file " << fn << " ...\n";
+  ofstream f (fn.ch_C ());
+  if (!f)
+    warning ( _("Can't open dependency file `" + fn + "\'"));
+
+  f << "# Automatically generated by " << get_version_str ()  << "\n";
+  String out;
+  for (int i=0; i < targets.size (); i ++)
+     out += targets[i] + " ";
+  out +=  ": ";
+  for (int i=0; i < deps.size (); i ++)
+    {
+      if (out.length_i() > WRAPWIDTH)
+       {
+         f << out << "\\\n";
+         out = "  ";
+       }
+      out  += " " +  deps[i];
+    }
+  f << out << endl; 
+}
 
-static Link_array<Score> global_score_array;
-String default_outname_suffix_global = "";
-String default_outname_base_global =  "lelie";
-int default_count_global;
+void
+do_deps()
+{
+  if (dependency_global_b)
+    {
+      write_dependency_file (default_outname_base_global  + ".dep", target_str_global_array,
+                            inclusion_global_array);
+    }
+}
 
 
 void
 do_scores()
 {
-  for (int i=0; i < global_score_array.size(); i++)
+  for (int i=0; i < score_global_array.size(); i++)
     {
-//      Score *&is_p = global_score_array[i];
-      Score* is_p = global_score_array[i];
+      Score* is_p = score_global_array[i];
       if (!is_p->header_p_)
        is_p->header_p_ = new Header;
       
@@ -43,21 +85,61 @@ do_scores()
          is_p->process();
        }
     }
+  do_deps ();
 }
 
 void
 clear_scores ()
 {
-  for (int i=0; i < global_score_array.size(); i++)
+  for (int i=0; i < score_global_array.size(); i++)
     {
-      delete global_score_array[i];
+      delete score_global_array[i];
     }
-  global_score_array.clear();
+  score_global_array.clear();
+  inclusion_global_array.clear ();
 }
 
+extern File_path path;
+
 void
-add_score (Score * s)
+do_one_file (String init_str, String file_str)
 {
-  global_score_array.push (s);
-}
+  if (init_str.length_i () && path.find (init_str).empty_b ())
+    {
+      error (_("Can not find `") + init_str +"\'");
+      return ;
+    }
+  if (file_str.length_i () && path.find (file_str).empty_b ())
+    {
+      error (_("Can not find `") + file_str + "'");
+      return ;
+    }
+
+  Sources sources;
+  source_global_l = &sources;
+  source_global_l->set_path (&path);
+  {
+    My_lily_parser parser (source_global_l);
+    parser.set_version_check (version_ignore_global_b);
+    parser.parse_file (init_str, file_str);
 
+    
+    if (file_str.length_i () && file_str[0] != '-')
+      {
+       String a,b,c,d;
+       split_path (file_str, a, b, c, d);
+       default_outname_base_global = c;
+      }
+    else
+      default_outname_base_global = "lelie";
+  
+    if (parser.error_level_i_)
+      {
+       exit_status_i_  = 1;
+      }
+    else
+      do_scores ();
+    clear_scores ();
+  }
+  source_global_l = 0;
+}
index 47a508e2c28c90beb348bbfe2d9480667ba52f0f..7d11acf61e8c1f2a5ab754902a8eb9881c24a311 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "script-column.hh"
index e16eed4c0933e8df31267914a4709c28ac371831..5a9c3a65b389b36c73fb3387f6618d0d2142bbea 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index 597fe0809ab72e6130849746661621d9d4a9b177..7d281253fe853714da7a70fde8c5bf00ea1cee30 100644 (file)
@@ -1,7 +1,7 @@
 /*
   script-reg.cc -- implement Script_engraver
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "script-grav.hh"
index 491e6d655fc8fa43af20734dbef021eec18e57d9..4014ed729c6f2ced45097ef127d8381ea841b8b6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "script-def.hh"
 #include "musical-request.hh"
index 732c4bd91d3a00c0a56e493c3d03bfd4b29b0d48..55133511a3aa2e1528ecb6c0680ef3e3662e0d51 100644 (file)
@@ -1,7 +1,7 @@
 /*
   slur-grav.cc -- implement Slur_engraver
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 4df6464f91ed122fb1fae2bf2bfe6cdf6fdac084..f091c426caf442b62e760133fc6c98c699bec930 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
     Jan Nieuwenhuizen <jan@digicash.com>
 */
 
@@ -25,6 +25,7 @@
 #include "debug.hh"
 #include "boxes.hh"
 #include "bezier.hh"
+#include "encompass-info.hh"
 // #include "main.hh"
 
 IMPLEMENT_IS_TYPE_B1(Slur,Bow);
@@ -93,8 +94,11 @@ Slur::do_post_processing ()
   encompass_arr_.sort (Note_column_compare);
   if (!dir_)
     set_default_dir ();
-  Real interline_f = paper ()->interline_f ();
-  Real inter_f = interline_f / 2;
+
+  Real interline = paper ()->interline_f ();
+  Real internote = interline / 2;
+  Real notewidth = paper ()->note_width ();
+  Real const SLUR_MIN = 2.0 * interline;
 
   /* 
    [OSU]: slur and tie placement
@@ -109,21 +113,23 @@ Slur::do_post_processing ()
    * suggested gap = ss / 5;
    */
   // jcn: 1/5 seems so small?
-  Real gap_f = interline_f / 2; // 5;
+  Real gap_f = interline / 2; // 5;
   
   Drul_array<Note_column*> extrema;
   extrema[LEFT] = encompass_arr_[0];
   extrema[RIGHT] = encompass_arr_.top ();
 
   Direction d=LEFT;
-  Real nw_f = paper ()->note_width ();
  
   do 
     {
+      /*
+        broken slur
+       */
       if (extrema[d] != spanned_drul_[d]) 
        {
          dx_f_drul_[d] = -d 
-           *(spanned_drul_[d]->width ().length () -0.5*nw_f);
+           *(spanned_drul_[d]->width ().length () -0.5*notewidth);
          Direction u = d;
          flip(&u);
          if ((extrema[u] == spanned_drul_[u]) && extrema[u]->stem_l_)
@@ -131,147 +137,114 @@ Slur::do_post_processing ()
              dy_f_drul_[d] = extrema[u]->stem_l_->height ()[dir_];
              dy_f_drul_[u] = extrema[u]->stem_l_->height ()[dir_];
            }
+
+         // prebreak
+         if (d == RIGHT)
+           {
+             dx_f_drul_[LEFT] = spanned_drul_[LEFT]->width ().length ();
+//           dx_f_drul_[LEFT] -= 2 * notewidth;
+
+             // urg
+             if (encompass_arr_.size () > 1)
+               dx_f_drul_[RIGHT] += notewidth;
+           }
+
+         // postbreak
+         if (d == LEFT)
+           dy_f_drul_[d] += 2.0 * dir_ * internote;
        }
+      /*
+        normal slur
+       */
       else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_) 
         {
          dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height ()[dir_]);
-         dx_f_drul_[d] += 0.5 * nw_f - d * gap_f;
+         dx_f_drul_[d] += 0.5 * notewidth - d * gap_f;
          if (dir_ == extrema[d]->stem_l_->dir_)
            {
              if (dir_ == d)
-               dx_f_drul_[d] += 0.5 * (dir_ * d) * d * nw_f;
+               dx_f_drul_[d] += 0.5 * (dir_ * d) * d * notewidth;
              else
-               dx_f_drul_[d] += 0.25 * (dir_ * d) * d * nw_f;
+               dx_f_drul_[d] += 0.25 * (dir_ * d) * d * notewidth;
            }
        }
       else 
         {
          dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval ()
-           [dir_])* inter_f;
+           [dir_])* internote;
        }
-      dy_f_drul_[d] += dir_ * interline_f;
+      dy_f_drul_[d] += dir_ * interline;
     }
   while (flip(&d) != LEFT);
+
+  // now that both are set, do dependent
+  do 
+    {
+      /*
+        broken slur
+       */
+      if (extrema[d] != spanned_drul_[d]) 
+        {
+         // pre and post
+         if (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT] < SLUR_MIN)
+           {
+             dx_f_drul_[d] -= d * SLUR_MIN 
+               - (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+             dx_f_drul_[d] = dx_f_drul_[(Direction)-d] + d * SLUR_MIN;
+           }
+         dy_f_drul_[d] = dy_f_drul_[(Direction)-d];
+       }
+     }
+  while (flip(&d) != LEFT);
 }
 
 Array<Offset>
 Slur::get_encompass_offset_arr () const
 {
-  Real interline = paper ()->interline_f ();
-  Real notewidth = paper ()->note_width ();
-  Real internote = interline / 2;
-
-  Stem* left_stem = encompass_arr_[0]->stem_l_;
-  Real left_x = left_stem->hpos_f ();
-  left_x += dx_f_drul_[LEFT];
+  Offset left = Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT]);
+  left.x () += encompass_arr_[0]->stem_l_->hpos_f ();
 
-  Real left_y = dy_f_drul_[LEFT];
+  Offset d = Offset (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT],
+    dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
+  d.x () += width ().length ();
 
-  Real dx = width ().length ();
-  dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
-  dx = dx <? 1000;
-  dx = dx >? 2.0 * interline;
-
-  Real dy = (dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
-  if (abs (dy) > 1000)
-    dy = sign (dy) * 1000;
-
-  Real start_x = 0;
-  Real start_y = left_y - dy_f_drul_[LEFT];
   int first = 1;
   int last = encompass_arr_.size () - 1;
 
-  // broken slur first part
+  // prebreak
   if (encompass_arr_[0] != spanned_drul_[LEFT])
-    {
-      first = 0;
-      left_x = spanned_drul_[LEFT]->width ().length ();
-      left_x -= 2 * notewidth;
-      // urg
-      start_x = left_x - 2 * notewidth;
+    first--;
 
-      // urg
-      if (encompass_arr_.size () > 1)
-       dx += notewidth;
-
-      if (dx < 2.0 * interline)
-       {
-         left_x -= 2.0 * interline - dx;
-         dx = 2.0 * interline;
-         start_x = left_x;
-       }
+  // postbreak
+  if (encompass_arr_.top () != spanned_drul_[RIGHT])
+    last++;
 
-      if (dir_ == UP)
-       left_y = left_y >? dy_f_drul_[LEFT];
-      else
-       left_y = left_y <? dy_f_drul_[LEFT];
-      start_y = left_y - dy_f_drul_[LEFT];
+#define RESIZE_ICE
+#ifndef RESIZE_ICE
 
-      dy = 0;
-    }
+  Array<Offset> notes;
+  notes.push (Offset (0,0));
 
-  // broken slur second part
-  if (encompass_arr_.top () != spanned_drul_[RIGHT])
+  for (int i = first; i < last; i++)
     {
-      left_y += 2.0 * dir_ * internote;
-      start_y = left_y - dy_f_drul_[LEFT];
-      last += 1;
-      dy = 0;
+      Encompass_info info (encompass_arr_[i], dir_);
+      notes.push (info.o_ - left);
     }
+  notes.push (d);
 
-#define RESIZE_ICE
-#ifndef RESIZE_ICE
-  Array<Offset> notes;
-  notes.push (Offset (start_x, start_y));
 #else
+
   int n = last - first + 2;
   Array<Offset> notes (n);
-  notes[0] = Offset (start_x, start_y);
-#endif
+  notes[0] = Offset (0,0);
+
   for (int i = first; i < last; i++)
     {
-      Stem* stem = encompass_arr_[i]->stem_l_;
-      /* 
-       set x to middle of notehead or on exact x position of stem,
-       according to slur direction
-          */
-      Real x = stem->hpos_f ();
-
-      if (stem->dir_ != dir_)
-        {
-         x += 0.5 * notewidth;
-         // ugh
-         if (dir_ == DOWN)
-           x -= 0.5 * notewidth;
-         else
-           x += 0.5 * notewidth;
-       }
-      else if (stem->dir_ == UP)
-       x += 1.0 * notewidth;
-
-      x -= left_x;
-
-      Real y = stem->height ()[dir_];
-
-      /*
-       leave a gap: slur mustn't touch head/stem
-       */
-      y += 2.5 * internote * dir_;
-
-      // ugh
-      if (dir_ == DOWN)
-       y += 1.5 * internote * dir_;
-
-      y -= left_y;
-
-#ifndef RESIZE_ICE
-      notes.push (Offset (x, y));
+      Encompass_info info (encompass_arr_[i], dir_);
+      notes[i - first + 1] = info.o_ - left;
     }
-  notes.push (Offset (start_x + dx, start_y + dy));
-#else
-      notes[i - first + 1] = Offset (x, y);
-    }
-  notes[n - 1] = Offset (start_x + dx, start_y + dy);
+  notes[n - 1] = Offset (d);
+
 #endif
 
   return notes;
index 727fe56c76771a82717ca582c911aa1378bffe48..bacdcb36240054fd46f4ce38b6d08d81b75a78fa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "span-bar.hh"
index a371dc019d312527a0ccf65250ea5acfeedeeb57..e89b05352fcc0c6a9d3e65b381b0a6838c473ee6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "dimen.hh"
index 78f949d1f08df8e76e604b300185ad36fe371b3a..8497cdc7c11f751d300cde661c2037d8bf8dfe27 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "span-score-bar.hh"
index ffd7ce076378eac2bc7d9318cbd8cace8a898aaf..6e921573c9c9496691c4b000cdbce71a85f9fa00 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "span-score-bar.hh"
index 85221d3c94a9f141dea8472b026dbc152a02454c..839cf0d9b47c3111a9000c49488b88a4910cfaef 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index db27da7950fc1ab5d5de11d4e7c3f17516dd079f..ac4b00b623d9118898dbb38ce321f5f38a254c1f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996, 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 383df71ce1689c5148818d85c5632172e7679366..1dbbd8407aacd524233a0714076f10f475a05486 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 7270d20282ff281d678d7530ac64663c8dbf82fe..8bc8a049f9a718f7adf3df0e5352f214a5cbdd2f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
 #include "staff-performer.hh"
index 404283066c1378ece2d9cd41b932bf05c7ad5222..7b99d06f998516627239d984f1fc5a4bc67f3a16 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "interval.hh"
index 6aab67dece77bedede5aad66926fbfeba04c4183..2e09bb5777ba6ab40b651afa8063fd791f8333f4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "staff-sym-grav.hh"
index b22a36592fbedacdf08d94b486c875f44d2d6e41..d4b5f35eafcd64b0b6699c037ca86c48d000056c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "staff-sym.hh"
 #include "lookup.hh"
index 544da9c59f1a47dfbb4c1273de9700b2ecec81b8..a809545931c777fbaf7b42192305367cc4359732 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "stem-grav.hh"
index 34aadfc976d97f32723a55776f5e433f20e33d31..11990ea3e7e08e3f69f4ef4201244cc46b15c73e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 
 */
 
@@ -23,14 +23,13 @@ Stem_info::Stem_info ()
 
 Stem_info::Stem_info (Stem const *s)
 {
-  x = s->hpos_f ();
+  x_ = s->hpos_f ();
   dir_ = s->dir_;
-  beams_i_ =  0 >? (abs (s->flag_i_) - 2);
+  mult_i_ = s->mult_i_;
 
   /*
     [todo] 
-    * get algorithm
-    * runtime
+    * get algorithm runtime
 
     Breitkopf + H\"artel:
     miny_f_ = interline + #beams * interbeam
@@ -45,22 +44,54 @@ Stem_info::Stem_info (Stem const *s)
     */
 
   Real internote_f = s->paper ()->internote_f ();
-  Real interline_f = 2 * internote_f;
-  Real notehead_y = interline_f;
-  // huh? why do i seem to need the / 2 ?
+  Real interline_f = 2.0 * internote_f;
   Real interbeam_f = s->paper ()->interbeam_f ();
-  // Real interbeam_f = s->paper ()->interbeam_f () / 2;
-  // perhaps bo dim (y) = internote?
+  Real staffline_f = s->paper ()->rule_thickness ();
+  Real beam_f = 0.48 * (interline_f - staffline_f);
          
-   idealy_f_  = dir_ * s->stem_begin_f () + beams_i_ * interbeam_f; 
-   if (beams_i_ < 3)
-     idealy_f_ += 2 * interline_f;
-   else
-     idealy_f_ += 1.5 * interline_f;
-   idealy_f_ /= internote_f;
-  miny_f_ = dir_ * s->stem_begin_f () + 2 + beams_i_ * interbeam_f / internote_f;
-
-  idealy_f_ =  miny_f_ >? idealy_f_;
-  //    assert (miny_f_ <= idealy_f_);
+  if (check_debug && !monitor->silent_b ("Stem_info"))
+    {
+      static int i = 1;
+      cout << "******" << i++ << "******" << endl;
+      cout << "begin_f: " << s->stem_begin_f () * dir_ << endl;
+      // urg urg urg
+      cout << "chord_f/i: " << s->chord_start_f () * dir_ / internote_f << endl;
+    }
+
+  /*
+    For simplicity, we'll assume dir = UP and correct if 
+    dir = DOWN afterwards.
+   */
+  idealy_f_ = s->chord_start_f () * dir_ / internote_f;
+  idealy_f_ *= internote_f;
+
+  idealy_f_ += interbeam_f * mult_i_;
+
+  miny_f_ = idealy_f_;
+
+  // B"arenreiter
+  if (mult_i_ < 3)
+    idealy_f_ += 2.0 * interline_f;
+  else
+    idealy_f_ += 1.5 * interline_f;
+
+  miny_f_ += 1.0 * interline_f;
+
+  // lowest beam of (UP) beam must never be lower than second staffline
+  miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f
+    + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1));
+
+  idealy_f_ /= internote_f;
+  miny_f_ /= internote_f;
+
+  if (check_debug && !monitor->silent_b ("Stem_info"))
+    {
+      cout << "dir_: " << dir_ << endl;
+      cout << "mult_i_: " << mult_i_ << endl;
+      cout << "idealy_f_: " << idealy_f_ << endl;
+      cout << "miny_f_: " << miny_f_ << endl;
+    }
+
+  idealy_f_ = miny_f_ >? idealy_f_;
 }
 
index 25fa1c13ff478127c3121408355e5155d49cdfb4..a2361b4fe8a295e77fb14e8b3d0ea11051b771d8 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
   TODO: This is way too hairy
 */
@@ -32,6 +32,7 @@ Stem::Stem ()
   beam_l_ = 0;
   beams_left_i_ = 0;
   beams_right_i_ = 0;
+  mult_i_ = 0;
 
   yextent_drul_[DOWN] = yextent_drul_[UP] = 0;
   flag_i_ = 2;
index 3e9d8d0f70a439b95dc4348a03e8ee235a420171..ca153eb5dab06e99cce8517cf6d8dc547b52dd1a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "super-elem.hh"
index a8fbfcd0f31077fd6d34cec799f71feb120ae307..8c32a81a52c8513ff18c6c125a067bc61b209d21 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "swallow-grav.hh"
 
index 6d8c55936eac5154d682ea74c05ca72e1ab3fcda..5f2cbb2873423a086dc9b7b294f16a44acb8bd34 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "swallow-perf.hh"
index 0be5fbf742f9082d47959cebb4d8c2be35886a7b..52ef9fefc0a716ef5f2f41b18082d623d95157cf 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "misc.hh"
index 3eee319eae752d1976814b55e0de2f1fbe6652da..b4a5dbf20926555687254eb4695a63af26394038 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 6aaeba4633a340a1cb08ff772d0770c7a72a2001..b9ea8f4ace0d0caf5efe8c42b02ee372a53848da 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "line-spacer.hh"
index 672a7b2c249e906c0cf1e5ee6b2ab21587a01c61..5191f663c56f458d35f9e190009cf57bd0ac3e1f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "atom.hh"
index 062c1e1a8d8cb875911cd121c347153d80599e9e..8ff8142c7e299287d9a0145f3123cb214b4de50d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #ifndef __CYGWIN32__
index 29bb496ff4aae017b578621880444650889f85d8..98b3dc89fd9d9f6a8babc8ace553044a49f29591 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include <limits.h>
@@ -15,7 +15,6 @@
 #include "interval.tcc"
 
 template INTERVAL__INSTANTIATE(Rational);
-template INTERVAL__INSTANTIATE(int);
 
 #include "compare.hh"
 
@@ -33,14 +32,3 @@ Interval_t<Rational>::T_to_str (Rational a)
   return a.str ();
 }
 
-int
-Interval_t<int>::infinity()
-{
-  return INT_MAX;
-}
-
-String
-Interval_t<int>::T_to_str (int i)
-{
-  return String (i);
-}
index e430260907828ea108bd2a6fe65f3c12077a7b2a..c38954bf2d2afec9692e7793b1f53c14a2d8bfc4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 0f27440cff168bb7a7d68e667a62fc202756740e..2d24fce40a982e9125d466f8bbd4c09cdd6b7aae 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index 0a1de1398db3f52a51b4791ad92fafbbbd411262..f2d07eb85554e5ebf6e8d8a7d0cc80e26134bb37 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 /*
@@ -38,13 +38,13 @@ Lookup::rule_symbol (Real height, Real width) const
 }
 
 Atom 
-Lookup::beam(Real &slope, Real width, Real y_thick) const
+Lookup::beam(Real slope, Real width, Real thick) const
 {
   
-  Atom a( ps_beam (slope, width, y_thick));
-  Real slope_y =slope * width; 
-  Real min_y = (0 <? slope_y )- y_thick/2;
-  Real max_y = (0 >? slope_y) + y_thick/2;
+  Atom a (ps_beam (slope, width, thick));
+  Real height = slope * width; 
+  Real min_y = (0 <? height) - thick/2;
+  Real max_y = (0 >? height) + thick/2;
   
   a.dim_[X_AXIS] = Interval(0, width);
   a.dim_[Y_AXIS] = Interval(min_y, max_y);
@@ -52,29 +52,14 @@ Lookup::beam(Real &slope, Real width, Real y_thick) const
 }
 
 Atom
-Lookup::ps_beam (Real slope, Real width, Real y_thickness)const
+Lookup::ps_beam (Real slope, Real width, Real thick) const
 {
   String ps = "\\embeddedps{\n";
-  ps += String (width) + " "+ String (slope) + " " + String (y_thickness)
+  ps += String (width) + " "+ String (slope) + " " + String (thick)
     + " draw_beam}";
 
-  /* 
-   beam parts are rarely wider than 100pt: 
-   precision of 4 yields maximum (half beam spanning half a page)
-   error of: 1%% * 3*72pt === 0.2pt = 0.07mm
-   */
-  String width_str = String_convert::precision_str (width, 4);
-  String slope_str = String_convert::precision_str (slope, 4);
-  String thick_str = String_convert::precision_str (y_thickness, 3);
-  String name = "feta-beum-" + width_str + "-" + slope_str + "-" + thick_str;
-
-  int i;
-  while ((i = name.index_i ('.')) != -1)
-    name[i]=  'x';
-
-
-
   Atom s;
   s.tex_ = ps;
   return s;
 }
+
index ed8ef91a53c8515a1a9ce5e9853e2c717f87da7e..91f26921b324cabab8a52ddfdb146937945e53e6 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 
 */
 
index 19285561c1296280fa5923ae3c44d8e416e6a8a6..04f3e9cf4ace306ec946927dba1226c5414c32f3 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "dimen.hh"
index b81f2f5f967b5b6610765076be035dd58ba607a1..6fdf2542d2cbebc67c56728f4f8060b58a79ecc5 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "debug.hh"
index c471fa1453f7c96c82c8ec14a077c1c319d74f06..6384ba2582b7ec80085432ab15e40c3d7628d2a4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 9a4406b24af1dc54a51be76b1175d3ea84018542..1e4a53b2fbf0a071f104b91bf55da9e333aec4a1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "molecule.hh"
index 453a955072379a86686b1c5887a3554e05629652..a690cb36a11b79e9442d7ff1210452ea1fee4c26 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "tie-grav.hh"
index 799bebaaabb96e7f4197690f03112889c7d4f161..0d17f409ce08caa247a7f2d55c12ad7c629e45b1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "paper-def.hh"
@@ -61,10 +61,12 @@ Tie::do_add_processing()
 void
 Tie::do_post_processing()
 {
-  Real nw_f = paper ()->note_width ();
-  Real interline_f = paper ()->interline_f ();
   assert (head_l_drul_[LEFT] || head_l_drul_[RIGHT]);
 
+  Real notewidth = paper ()->note_width ();
+  Real interline_f = paper ()->interline_f ();
+  Real const TIE_MIN = 2.0 * interline_f;
+
   /* 
    [OSU]: slur and tie placement
 
@@ -91,24 +93,43 @@ Tie::do_post_processing()
 
   do
     {
+      // tie attached to outer notehead
       if (head_l_drul_[d] && head_l_drul_[d]->extremal_i_)
        {
-         /* normal tie between noteheads, with gap of space */
          if (d == LEFT)
-           dx_f_drul_[d] +=  nw_f;
+           dx_f_drul_[d] += notewidth;
          dx_f_drul_[d] += -d * gap_f;
          /* attach to outer 3/4 end of head */
          dy_f_drul_[d] += dir_ * 0.25 * interline_f;
        }
+      // tie attached to inner notehead
       else if (head_l_drul_[d])
        {
-         dx_f_drul_[d] += d*0.5 * nw_f;
+         dx_f_drul_[d] += d*0.5 * notewidth;
        }
+      // uhm? loose end of tie // tie attached to stem
       else
        {
-         dy_f_drul_[d] = dy_f_drul_[(Direction) -d];
          dx_f_drul_[d] = -d * (spanned_drul_[d]->width ().length () 
-                               -0.5 * nw_f);
+                               -0.5 * notewidth);
+       }
+    }
+  while (flip(&d) != LEFT);
+
+  // now that both are set, do dependent
+  do
+    {
+      // tie attached to outer notehead
+      if (!head_l_drul_[d])
+       {
+         if (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT] < TIE_MIN)
+           {
+             dx_f_drul_[d] -= d * TIE_MIN 
+               - (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+             dx_f_drul_[d] = dx_f_drul_[(Direction)-d] + d * TIE_MIN;
+           }
+
+         dy_f_drul_[d] = dy_f_drul_[(Direction) -d];
        }
     }
   while (flip(&d) != LEFT);
index 1437a7c44105d2129a9e6b57fddf91223f8b8416..e2b87d0fee76569844243bc440729f3f7bc90faa 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "time-description.hh"
index 8da02d6161559f88ff3d146d5bbaf3f58f93c13b..17f110fda3a9524acc0e060c5a689c4e389ec19a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "score-grav.hh"
 #include "timing-grav.hh"
index de93a9206f402a3cd11e2b065a0f832171825b8c..b244db903c8de7e3fb14b079107c28f64c9e23ce 100644 (file)
@@ -4,7 +4,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "timing-translator.hh"
index 483036be5010b70843235005a50b78a604633ecf..a5bc9d48504afb3bd1e37512fe190ae107282f98 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "translation-property.hh"
index 2da67c365d39cff1e2164291e3c1e88a0fcdd21f..7a65215c810a41a0594d391833237b4c775848dd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index b91f254c3885ef9a26144199eaa8df4b005c49ac..5846c2bb37dac7c543e3449103ee9a551ae0ad24 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "music-output-def.hh"
index 5655da8a1592175968086058a6f35a4823c57894..ae5562579e8d694e530a0f8f21a61629c65cc101 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index b90ced5d1bba02871382e80517547df20aad38a4..bd85e4051432b0512729c54a29eb2a5bbfa50939 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "type-swallow-trans.hh"
index 8cc0ecfd499a09323583acb90889a91b49de6f9f..dbd8e4b8eb4e99f840a87a4e794745c713faaff4 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "vertical-align-elem.hh"
index fe773a9375ac5a2dea9da15c57c91555b112143e..8024ab5a50bd75b076b119750170895310efdd24 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-col.hh"
index 94a8c5ee723fe24995bb82465d65a79af374e8a4..cc8c0da9ab003fd4ebf8b5ee805717f45604d47c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "vertical-align-spanner.hh"
index ade65c5dd63287a9561f9bce32171fba5a3899cf..79e22317e07bfd338e91e9bf80eab0405c3f316c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "vertical-group-elem.hh"
index abae14aa028ab466049e15537af1f28d1a9b5f6e..c3a4c2a94cf4b3d527e3da2889cd7fd688535e9d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "vertical-group-spanner.hh"
index a5b3d60711d5f733d70dfef15692654c413b940e..971b22a924d694b80445888eb8b6cfcb56e6e5db 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "translator-group.hh"
index 86604d585341802bb2d1985cbd5ffe8d03a8d33f..33261d8f5ac7d2e5388c4f9591f97e1b955f6a7c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "proto.hh"
index c41e3ed9b2eff346b1beabbf061779abbc6b8f65..d8c0804788f13f3e6af50d87d3125da891b92e1e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "word-wrap.hh"
index da4d89ba548f96df297119f4f1f6a02641ca2978..c5cc781671c9a7f5d996a949c1f999631a76216e 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of mi2mu, part of the GNU LilyPond package,
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 
index 3c1b491f65bdaf5c2309530544578672c171a782..cc883e2a1bcf74adbb2e9ac342c3f4435e2504cc 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
index f9c8b646d872ff03e28c981db0ad8d6a7d8fefce..c13ea027276cdeb734619c9776dc1c66770060a9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
index f973209655076fab5b88f18cb2db25c4510d425c..0115adecd59d3988f0947b3ad19adffd2e6f9d79 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
index 7f89342476ce3df368a0bd6d18b204335bd45f60..3ae4f3990569b81527372f25e71570642a7aa48d 100644 (file)
@@ -7,7 +7,7 @@
 #include <assert.h>
 #include "string-convert.hh"
 #include "lgetopt.hh"
-#include "path.hh"
+#include "file-path.hh"
 #include "duration-convert.hh"
 #include "source.hh"
 
index f1b71122e1018a5021259217f95be14abeb15e4d..ad8e020d263c98c42edb39e9806cfdf15f190346 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include <assert.h>
index 7a787d062f4957ba10e076258fb4bebe81640078..b0cac0c889aa2ba297faaecf91dc27351551ad13 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "moment.hh"
index fd87d2a7e96b755b7ad226aab59a4d9ee7f2221d..ffc3380da3b55bf29fd3a9a3857cbee2dbfa82f9 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include <assert.h>
index 42ba6695c3a46c2a5618535fa8d92ecc8bfc6548..2a869d647c7f143fc0e867f99f46864e1ddc3ffa 100644 (file)
@@ -3,7 +3,7 @@
 //
 // source file of the LilyPond music typesetter
 //
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+// (c)  1997--1998, 1998 Jan Nieuwenhuizen <jan@digicash.com>
 
 #include <assert.h>
 #include <time.h>
@@ -91,7 +91,7 @@ Mudela_stream::header()
   *os_p_ << filename_str_g;
   *os_p_ << "\n\n";
   // ugh
-  *os_p_ << "\\version \"0.1.9\";\n";
+  *os_p_ << "\\version \"0.1.10\";\n";
 }
 
 void