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