]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.52 release/1.3.52
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 18 May 2000 14:59:36 +0000 (16:59 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 18 May 2000 14:59:36 +0000 (16:59 +0200)
======

* Item cleanups.  Copying items and rearranging pointers are done in
separate passes, which makes the code cleaner. This fixes a problem
with some items not disappearing from hara-kiri staffs.

* Use Scheme for Key_item data members.

* Don't use regex in chord-names.scm under windows; hybrid chordnames
user+calculated will be partly broken.

1.3

25 files changed:
CHANGES
Documentation/faq.texi
Documentation/regression-test.tely
Documentation/topdocs/index.tely
VERSION
flower/polynomial.cc
input/bugs/auto-beam-tuplets.ly [new file with mode: 0644]
input/bugs/volta-instrument-name.ly [new file with mode: 0644]
input/test/keys.ly
input/test/orchestscore.ly
lily/grace-align-item.cc
lily/include/key-engraver.hh
lily/include/ly-smobs.icc
lily/include/scm-hash.hh
lily/include/system-start-delimiter.hh
lily/key-engraver.cc
lily/lily-guile.cc
lily/local-key-item.cc
lily/misc.cc
lily/score-element.cc
lily/system-start-delimiter.cc
ly/engraver.ly
make/out/lilypond.lsm
make/out/lilypond.spec
stepmake/stepmake/help2man-targets.make

diff --git a/CHANGES b/CHANGES
index af80dfea24e52cf3b1aee8658d7bc1d01f6e827f..e18d51f04854412e928c8cf936fed5376914ae5a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,22 @@
-1.3.50
+* Bugfix in smob handling.  Delete the C-part of freed smobs. Be
+honest about amount of allocation and deletion, so GUILE doesn't
+overestimate the amount of memory.
+
+* Faq update: nicer blank note paper, courtesy Mats Bengtsson.
+
+* Bugfix: don't crash on durations that are not a power of 2.
+
+* Build manpages during `make all' 
+* Bugfix: don't do absolute comparisons in Polynomial::clean ().
+
+* Bugfix: set visibility-lambda for key signature created by
+createKeyOnClefChange. Fixes disappearing key signatures. 
+
+* Bugfix: make System_start_delimiter of bar-line type invisible when
+it spans only one staff.
+
+1.3.51
 ======
 
 * Item cleanups.  Copying items and rearranging pointers are done in
@@ -8,8 +26,7 @@ with some items not disappearing from hara-kiri staffs.
 * Use Scheme for Key_item data members. 
 
 * Don't use regex in chord-names.scm under windows; hybrid chordnames
-  user+calculated will be partly broken.
-
+user+calculated will be partly broken.
 
 1.3.50
 ======
index 64232c2ae0d210e0f17f54f389208dc2de9a2630..e523c786d89f126fd29b91c124ce83c322ccbe3e 100644 (file)
@@ -310,22 +310,46 @@ tagline="Typeset by GNU LilyPond"
 
 @subsubsection Can I make blank manuscript paper with LilyPond?
 
-Theoretically, yes but it is easier to do with TeX:
+Theoretically, yes but it is easier to do with (La)TeX. This LaTeX file
+will do the trick for you:
+
 
 @example
-\def\foo@{\hbox@{\vrule width 15.0cm height 0.5pt depth 0.0pt@}
-\nointerlineskip
-\vskip 5pt\nointerlineskip@}
-\def\musicline@{\vbox @{
-     \foo\foo\foo\foo\foo
-@}\par@}
-
-\musicline
-\musicline
-\musicline
-\musicline
-\bye
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% notepaper.tex
+% Mats Bengtsson, 18/5 2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[a4paper]@{article@}
+
+\usepackage@{ifthen@}
+\usepackage[noheadfoot,hmargin=15mm,vmargin=20mm]@{geometry@}
+
+\pagestyle@{empty@}
+
+\newcounter@{staffnumber@}
+\newlength@{\interstaffline@}
+
+\newcommand@{\drawline@}@{\hbox@{\rule@{\textwidth@}@{0.5pt@}@}
+  \nointerlineskip\vskip\interstaffline\nointerlineskip@}
+
+\newcommand@{\printstaff@}@{\vfill
+  \vbox@{\drawline\drawline\drawline\drawline\drawline@}
+  \vfill@}
+
+\begin@{document@}
+\typeout@{@}\typeout@{@}
+\typein[\staffsize]@{Type in the staff size (20pt is a common value):@}
+\setlength@{\interstaffline@}@{\staffsize@}
+\setlength@{\interstaffline@}@{.25\interstaffline@}
+\typeout@{@}
+\typein[\num]@{Type in the number of staffs:@}
+\setcounter@{staffnumber@}@{\num@}
+
+\mbox@{@} % To get a starting point for the \vfill
+\whiledo@{\value@{staffnumber@}>0@}@{%
+  \printstaff \addtocounter@{staffnumber@}@{-1@}@}
 
+\end@{document@}
 @end  example
 
 
index 3aa78440419e6c66c16993f80b2dc4709ddfbbd2..d2b24987f6b9bcfdaf32656d37d606bcb298d2c3 100644 (file)
@@ -348,8 +348,17 @@ way, so this is fragile as well.
 
 @mudelafile{clefs.ly}
 
+
+Key signatures appear on key  changes. They may also
+appear without barlines.  The restoration accidentals are not printed at
+the start of the line. If @code{createKeyOnClefChange} is set, they're
+also created on a clef change.
+
+@mudelafile{keys.ly}
+
 @ignore
 @c the input file is too long and does not test for specific bugs
+
 By default, time signatures are written with two numbers. With style
 ``C'', 4/4 and 2/2 are written with their corresponding symbols and
 with style ``old'', 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
@@ -360,6 +369,8 @@ signatures.
 \mu delafile{time.ly}
 @end ignore
 
+
+
 @section Hacks and Features
 
 As a last resort, the placement of items can be adjusted manually.
index 7b4e57eb41c0281ed1f51343b3fddbace0fd94ff..86cd87f159509e1d1bfaf952c6219ff3bb65054c 100644 (file)
@@ -101,7 +101,7 @@ by Scarlatti}. Jeff Covey, guitar player and overall nice guy, is
 putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the
 net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is a
 large archive of public domain sheet music under construction. Dirk
-Latterman also put some works
+Lattermann also put some works
 @uref{http://www.alqualonde.de/lilypond.html,on the web}.
 
 @html
diff --git a/VERSION b/VERSION
index b5601a078645337f192f4db8fa8aefe124cb2b85..ea5b0890e494f1bdb16daaefaa9cc4b248768a58 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=51
+PATCH_LEVEL=52
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 50749f1fe4a1f99272f930a0a4d3a03fe26eb1fe..2cdb979727ae967c0dfb46c2f34a7ff2e1185e71 100644 (file)
@@ -61,8 +61,9 @@ Polynomial::power(int exponent, const Polynomial & src)
   int e = exponent;
   Polynomial dest(1), base(src);
     
-  // classicint power. invariant: src^exponent = dest * src ^ e
-  // greetings go out to Lex Bijlsma & Jaap vd Woude
+  /*
+    classic int power. invariant: src^exponent = dest * src ^ e
+    greetings go out to Lex Bijlsma & Jaap vd Woude */
   while (e > 0)
     {
       if (e % 2)
@@ -83,13 +84,9 @@ static Real const FUDGE = 1e-8;
 void
 Polynomial::clean()
 {
-  int i;
-  for (i = 0; i <= degree (); i++)
-    {
-      if (abs(coefs_[i]) < FUDGE)
-       coefs_[i] = 0.0;
-    }
-
+/*
+  We only do relative comparisons. Absolute comparisons break down in
+  degenerate cases.  */
   while (degree () > 0 &&
         (fabs (coefs_.top ()) < FUDGE * fabs (coefs_.top (1)))
         || !coefs_.top ())
diff --git a/input/bugs/auto-beam-tuplets.ly b/input/bugs/auto-beam-tuplets.ly
new file mode 100644 (file)
index 0000000..3af118f
--- /dev/null
@@ -0,0 +1,10 @@
+\score { \notes {
+       \property Voice.tupletSpannerDuration = #(make-moment 1 4)
+  \property Voice.tupletNumberVisibility = #'if-no-beam
+  \property Voice.tupletBracketVisibility = #'if-no-beam
+  %  Gm7  /  F    |  A7   /  Dm   | 
+  \times 2/3 {
+  [f,8 bes, d] [g d bes,] [f, a, c] [f c a,] | e, a, cis e cis a, d, f, a, d a, f, |
+  %  Db           |
+  des, aes, des f des aes, des, aes, des f des aes, | }
+}}
diff --git a/input/bugs/volta-instrument-name.ly b/input/bugs/volta-instrument-name.ly
new file mode 100644 (file)
index 0000000..2bdcfa2
--- /dev/null
@@ -0,0 +1,41 @@
+
+voice4 = \notes {
+\clef bass;
+ \property Staff.instrument = "Bass"
+ \property Staff.instr = "B"
+ \time 4/4;  f,2 (   ) f,8    r8   f8    e8    
+\repeat  volta 2
+{
+ d8.    d16    e8.    f16    f8    c8    c16    c8.    
+}
+\alternative
+{
+    {  f,2 (   ) f,8    r8   f8    e8 \break   }
+    {   f,2.    r8   c16    c16      |
+    }
+}
+}
+voicedefault = \notes {
+ \property Staff.timeSignatureStyle="C"
+ \time 4/4; \key f; 
+ \tempo 4 = 200;
+}
+\score{
+        \notes <
+
+
+       \context Staff="4"
+       {
+           \$voicedefault
+           \$voice4 
+       }
+
+    >
+       \paper {
+           font_normal = 12.;
+           \translator {
+                \StaffContext 
+                \consists Instrument_name_engraver;
+           }
+       }
+}
index 0d49507e5f21834a4ca0582876409cd84d9ed7ca..98ddbe08b0087b5e6460e37cd768fa7692a75795 100644 (file)
@@ -1,13 +1,11 @@
 \version "1.3.42";
 
-%{
-test key itemv breaking
-%}
 \score {
   \notes \relative c''
   {
+       \property Staff. createKeyOnClefChange = ##t  
     \key bes; c2 \key c \minor;  c2
     \break
-    \key bes \major; c1 \key d;\break c1
+    \key bes \major; c2 \clef alto; c2   \key d; c1
   }
 }
index d13b04c84a63493e84feb1dc7d813e6075eb5136..ccf4d926e1c532e9670bb39d33b3b0cdfdc79a60 100644 (file)
@@ -1,6 +1,7 @@
 \version "1.3.42";
 
 m = \notes \relative c''{
+
 c1 | c2 c | c c | c c | \break c c | c c | c c | c c | 
 }
 
@@ -89,7 +90,8 @@ c1 | c2 c | c c | c c | \break c c | c c | c c | c c |
     \translator {
        \OrchestralScoreContext
        barNumberScriptPadding = 10;
-        minVerticalAlign = 2.2*\staffheight; 
+        minVerticalAlign = 2.2*\staffheight;
+
     }
     \translator { \StaffContext
        \consists "Instrument_name_engraver";
index 0745e3fe640eafda4bb9fd62e56fb3a9fc0e4c00..b2830a2050dcc6d3aab1acf0b9be18dae41f0781 100644 (file)
@@ -19,7 +19,10 @@ Grace_align_item::Grace_align_item ()
   Align_interface (this).set_interface();
   Align_interface (this).set_axis (X_AXIS);
 }
-  
+
+/*
+  TODO: cfg-able
+ */
 void
 Grace_align_item::before_line_breaking ()
 {
index f91f7eea8bb422f60d731e38e4cbe244f376a6d1..171ef13e9e11410a18e0ec7e2c68416f3ebb5a99 100644 (file)
@@ -18,7 +18,7 @@
   Make the key signature.
  */
 class Key_engraver : public Engraver {
-  void create_key();
+  void create_key(bool);
   void read_req (Key_change_req const * r);
 
 public:
@@ -32,6 +32,7 @@ public:
   Key key_;
   Key_change_req * keyreq_l_;
   Key_item * item_p_;
+
   Array<Musical_pitch> accidental_idx_arr_;
   Array<Musical_pitch> old_accidental_idx_arr_;
 
index b652432ca8f3eeb89b928def2e03dd0fee35bfdb..48b3120b24eef11dff4a4d6d5c5fc8ccc4433b3e 100644 (file)
@@ -56,6 +56,8 @@ CL::unsmobify_self ()                                                  \
   SCM_CAR(self_scm_) = SCM_EOL;         \
   SCM_CDR(self_scm_) = SCM_EOL;                                                 \
   self_scm_ = SCM_EOL;                                                  \
+\
+  scm_done_malloc ( - sizeof (CL));\
 }                                                                       \
 \
 SCM                                                                    \
@@ -72,7 +74,7 @@ CL::smobify_self ()                                                   \
   self_scm_ = s;                                                       \
   scm_protect_object (s);                                              \
                                                                        \
-/* no scm_done_malloc() !  */ \
+  scm_done_malloc(sizeof(CL));\
   do_smobify_self();                                                   \
   return s;                                    \
 }                                              \
@@ -83,10 +85,13 @@ CL::free_smob (SCM ses)                             \
   /* someone else did the deed already; this might be an automatic var.*/ \
   if (s->self_scm_ != ses)\
      return 0; \
+\
+ /* no need to call scm_unprotect_object, since this call \
+    implies that the object is not protected. */ \
   SCM_CAR(ses) = SCM_EOL;\
-                                       \
-  return 0;\
-}                                              \
+  delete s;\
+  return sizeof (CL);\
+} \
 ADD_SCM_INIT_FUNC(CL, CL::init_smobs)\
 
 
index ca63614042e65b3e00664aaab14fba186d57d203..9b71a51d6e87a8fd44f3b0a3fbe5f7f9faf18eeb 100644 (file)
@@ -30,6 +30,18 @@ typedef map<SCM,SCM, SCM_less> Scm_stl_map;
 
 /**
    auto resizing hash table. This should come from GUILE.
+
+   ALWAYS USE THIS AS VIA A POINTER, i.e.
+
+   class Foo {
+    Scheme_hash_table * tab;
+   };
+
+   and NOT
+
+   class Foo {
+    Scheme_hash_table tab;
+   }
  */
 class Scheme_hash_table :  private Scm_stl_map
 {
index 7d7b5c697711ff81880cb58e587259190ede4eff..d594c7ff876668de2f5f950e0340ce27b43d1fdd 100644 (file)
@@ -21,6 +21,7 @@ public:
   System_start_delimiter ();
   VIRTUAL_COPY_CONS (Score_element);
 protected:
+  virtual void after_line_breaking();
   virtual  Molecule do_brew_molecule () const;
   Molecule staff_bracket (Real) const;
   Molecule staff_brace (Real) const;
index 6d01fb2b6de72d73ec96049f9890a9a362314933..e4b76f68d8145b5669ffb743e3fbf2f592e42825 100644 (file)
@@ -29,7 +29,7 @@ Key_engraver::key_changed_b () const
 }
 
 void
-Key_engraver::create_key ()
+Key_engraver::create_key (bool def)
 {
   if (!item_p_) 
     {
@@ -65,6 +65,12 @@ Key_engraver::create_key ()
            item_p_->add_old (m_l.notename_i_, a);
        }
     }
+
+
+  if (!def)
+      item_p_->set_elt_property ("visibility-lambda",
+                                scm_eval (ly_symbol2scm  ("all-visible")));
+
 }      
 
 
@@ -89,12 +95,15 @@ Key_engraver::acknowledge_element (Score_element_info info)
     {
       SCM c =  get_property ("createKeyOnClefChange");
       if (to_boolean (c))
-       create_key ();
+       {
+         create_key (false);
+      
+       }
     }
   else if (dynamic_cast<Bar *> (info.elem_l_)
           && accidental_idx_arr_.size ()) 
     {
-      create_key ();
+      create_key (true);
     }
 
 }
@@ -104,7 +113,7 @@ Key_engraver::do_process_music ()
 {
   if (keyreq_l_) 
     {
-      create_key ();
+      create_key (false);
     }
 }
 
@@ -113,10 +122,6 @@ Key_engraver::do_pre_move_processing ()
 { 
   if (item_p_) 
     {
-      if (keyreq_l_)
-       item_p_->set_elt_property ("visibility-lambda",
-                                  scm_eval (ly_symbol2scm  ("all-visible")));
-      
       typeset_element (item_p_);
       item_p_ = 0;
     }
index 38a409cb8787935b002c549c4b231ca876c5d7d0..9d030b8e864b454e7f0c91397f31405a22aa7006 100644 (file)
@@ -368,6 +368,23 @@ ly_number2string (SCM s)
   return gh_str02scm (str);
 }
 
+// #define TEST_GC
+
+#ifdef TEST_GC
+#include <libguile/gc.h>
+
+static void *
+greet_sweep (void *dummy1, void *dummy2, void *dummy3)
+{
+   fprintf(stderr, "entering sweep\n");
+}
+
+static void *
+wave_sweep_goodbye (void *dummy1, void *dummy2, void *dummy3)
+{
+   fprintf(stderr, "leaving sweep\n");
+}
+#endif
 
 static void
 init_functions ()
@@ -376,6 +393,13 @@ init_functions ()
   scm_make_gsubr ("ly-gulp-file", 1,0, 0, (SCM(*)(...))ly_gulp_file);
   scm_make_gsubr ("dir?", 1,0, 0, (SCM(*)(...))ly_isdir_p);
   scm_make_gsubr ("ly-number->string", 1, 0,0, (SCM(*)(...)) ly_number2string);
+
+
+#ifdef TEST_GC 
+  scm_c_hook_add (&scm_before_mark_c_hook, greet_sweep, 0, 0);
+  scm_c_hook_add (&scm_before_sweep_c_hook, wave_sweep_goodbye, 0, 0);
+#endif
+  
 }
 
 ADD_SCM_INIT_FUNC(funcs, init_functions);
index 354e49cd1e92a4603dd3f37109d2f6df80076c20..9166bb2fd0a93a17c54985eb7b21defdac191db9 100644 (file)
@@ -119,6 +119,8 @@ Local_key_item::do_brew_molecule() const
       pads[RIGHT] = get_elt_property ("right-padding");
       pads[LEFT] = get_elt_property ("left-padding");
 
+
+      // unused ?
       Direction d = LEFT;
       do {
        if (!gh_number_p (pads[d]))
index 8597a8ce14636f2d0f4b3a70c8430975e384ba99..9ff95f2a020e9926ef66955f929d70d8f2c79bda 100644 (file)
 #include <math.h>
 #include "misc.hh"
 
+/*
+  Return the 2-log, rounded down 
+ */
 int
 intlog2(int d)
 {
   assert (d);
   int i=0;
-  while (!(d&1)) 
+  while ((d != 1)) 
     {
-       d/= 2;
-       i++;
+      d/= 2;
+      i++;
     }
+  
   assert (!(d/2));
   return i;
 }
index 48dd8be722e941476e21303b98a4c3b886eb2305..654469111fbb5e62258d449581356f2c8e1f4da9 100644 (file)
@@ -343,14 +343,10 @@ SCM
 Score_element::handle_broken_smobs (SCM src, SCM criterion)
 {
  again:
-
-  
   Score_element *sc = unsmob_element (src);
   if (sc)
     {
-      if (criterion == SCM_UNDEFINED)
-       return SCM_UNDEFINED;
-      else if (gh_number_p (criterion))
+      if (gh_number_p (criterion))
        {
          Item * i = dynamic_cast<Item*> (sc);
          Direction d = to_dir (criterion);
@@ -369,11 +365,10 @@ Score_element::handle_broken_smobs (SCM src, SCM criterion)
              Score_element * br = sc->find_broken_piece (line);
              return  (br) ?  br->self_scm_ : SCM_UNDEFINED;
            }
-         if (!dep_line)
-           return SCM_UNDEFINED;
-
-         if (!sc->common_refpoint (line, X_AXIS)
-             || !sc->common_refpoint (line, Y_AXIS))
+         if (line
+             &&  (!dep_line
+                  || !sc->common_refpoint (line, X_AXIS)
+                  || !sc->common_refpoint (line, Y_AXIS)))
            {
              return SCM_UNDEFINED;
            }
@@ -381,14 +376,15 @@ Score_element::handle_broken_smobs (SCM src, SCM criterion)
     }
   else if (gh_pair_p (src))
     {
+      SCM oldcar =gh_car (src);
       /*
        UGH! breaks on circular lists.
       */
-      SCM car = handle_broken_smobs (gh_car (src), criterion);
-      SCM cdr = gh_cdr (src);
+      SCM newcar = handle_broken_smobs (oldcar, criterion);
+      SCM oldcdr = gh_cdr (src);
       
-      if (car == SCM_UNDEFINED
-         && (gh_pair_p (cdr) || cdr == SCM_EOL))
+      if (newcar == SCM_UNDEFINED
+         && (gh_pair_p (oldcdr) || oldcdr == SCM_EOL))
        {
          /*
            This is tail-recursion, ie. 
@@ -397,11 +393,12 @@ Score_element::handle_broken_smobs (SCM src, SCM criterion)
 
            We don't want to rely on the compiler to do this.  Without
            tail-recursion, this easily crashes with a stack overflow.  */
-         src =  cdr;   
+         src =  oldcdr;
          goto again;
        }
 
-      return gh_cons (car, handle_broken_smobs (cdr, criterion));
+      SCM newcdr = handle_broken_smobs (oldcdr, criterion);
+      return gh_cons (newcar, newcdr);
     }
   else
     return src;
@@ -437,12 +434,16 @@ Score_element::handle_broken_dependencies()
        = handle_broken_smobs (element_property_alist_,
                               line ? line->self_scm_ : SCM_UNDEFINED);
     }
-  else
+  else if (!dynamic_cast <Line_of_score*> (this))
     {
       /*
-       This element is `invalid'; it has been removed from all dependencies, so
-       let's junk the element itself.
+       This element is `invalid'; it has been removed from all
+       dependencies, so let's junk the element itself.
+
+       do not do this for Line_of_score , since that would free
+       up originals of score-elts (a bad thing.)
       */
+      
       element_property_alist_ = SCM_EOL;
       set_extent_callback (0, Y_AXIS);
       set_extent_callback (0, X_AXIS);
@@ -631,6 +632,7 @@ Score_element::fixup_refpoint ()
 
 IMPLEMENT_UNSMOB(Score_element, element);
 IMPLEMENT_SMOBS(Score_element);
+
 SCM
 Score_element::mark_smob (SCM ses)
 {
index 130a6328fc9e50f5ef3c5e950a578eb4e8940bb9..be44c6c6e210d1bced0afa42507149f65365f59a 100644 (file)
@@ -51,7 +51,19 @@ System_start_delimiter::simple_bar (Real h) const
   Real w = paper_l ()->get_var ("barthick_score");
   return lookup_l ()->filledbox (Box (Interval(0,w), Interval(-h/2, h/2)));
 }
-   
+
+void
+System_start_delimiter::after_line_breaking ()
+{
+  SCM   gl = get_elt_property ("glyph");
+  
+  if (scm_ilength (get_elt_property ("elements")) <=  1 && gl == ly_symbol2scm ("bar-line"))
+    {
+      set_elt_property ("transparent", SCM_BOOL_T);
+      set_extent_callback (0, X_AXIS);
+      set_extent_callback (0, Y_AXIS);
+    }
+}
 
 Molecule
 System_start_delimiter::do_brew_molecule ()const
@@ -72,11 +84,14 @@ System_start_delimiter::do_brew_molecule ()const
 
   
   s = get_elt_property ("glyph");
-  if (gh_symbol_p (s) && s == ly_symbol2scm ("bracket"))
+  if (!gh_symbol_p(s))
+    return m;
+  
+  if (s == ly_symbol2scm ("bracket"))
     m = staff_bracket (l);
-  else if (gh_symbol_p (s) && s == ly_symbol2scm ("brace"))
+  else if ( s == ly_symbol2scm ("brace"))
     m =  staff_brace (l);
-  else
+  else if (s == ly_symbol2scm ("bar-line"))
     m = simple_bar (l);
   
   
index 68e35d82bcab51af7ae7f162972d9c4b1206d71f..f52fb942b471dbf018b85fae66fce74dbfa34592 100644 (file)
@@ -376,6 +376,8 @@ ScoreContext = \translator {
        alignmentReference = \down;
        defaultClef = #"treble"
        defaultBarType = #"|"
+       systemStartDelimiterGlyph = #'bar-line
+
        \accepts "Staff";
        \accepts "StaffGroup";
        \accepts "RhythmicStaff";       
index 38df7ada1237c264f1d47c0e8fce204a32c2bb93..0520379e975564de1778b329cdf71b34d178cbec 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.51
-Entered-date: 16MAY00
+Version: 1.3.52
+Entered-date: 18MAY00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.51.tar.gz 
+       1000k lilypond-1.3.52.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.51.tar.gz 
+       1000k lilypond-1.3.52.tar.gz 
 Copying-policy: GPL
 End
index 9be3cbd233cad56090b6c4bb137b5c3c327e20a1..c7e4e534907646a3ec1b523b81deea8720cab39f 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.51
+Version: 1.3.52
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.51.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.52.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
index 02c49f258461b8426981bf6100ad8274ae9329b2..f11c29577bad1865b74a7868669e7aba03a5af88 100644 (file)
@@ -1,3 +1,4 @@
+default: man
 
 localinstall: install-help2man