I think that I have found my bug.  Actually, it could be a workaround, 
because I don't know what the "right" way to fix this might actually
be.   I narrowed down my test file even further, to this:

\score{ 
    \notes \relative c''
       { \repeat 1 { }
         \alternative { { r } }
       }
}

So, there is really only one note (a rest).  The problem has something 
to do with the fact that a rest doesn't have a stem, so the
"head_l_arr_" structure doesn't have anything in it.  This special
case is not handled in Stem::head_positions().  This patch initializes 
the structure, and makes me a happy lilyponder:

*** stem.cc     Tue Jan 26 13:42:41 1999
--- stem.cc.fixed       Tue Jan 26 13:42:47 1999
***************
*** 50,55 ****
--- 50,57 ----
  Stem::head_positions () const
  {
    Interval_t<int> r;
+   r[BIGGER] = 0;
+   r[SMALLER] = 0;
    for (int i =0; i < head_l_arr_.size (); i++)
      {
        int p = head_l_arr_[i]->position_i_;

When the special case is relevant, the size() call returns zero, and
the body of the loop never executes at all.

What I don't quite get is that this isn't specific to FreeBSD at all,
unless the initial garbage in "r" is different.  It seems like others
should have run into this also.

Happy hacking,
        John

-- 
John Galbraith                    email: [EMAIL PROTECTED]
University of Arizona,            home phone: (520) 327-6074
Los Alamos National Laboratory    work phone: (520) 626-6277
                                  home page: www.ece.arizona.edu:/~john

"As had been true historically, Gates' concern was not making great
 products, but keeping the world locked into using his products."
    --- Wendy Goldman Rohm, The Microsoft File

Reply via email to