/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2011 Joe Neeman <joeneeman@gmail.com>
+ Copyright (C) 2006--2014 Joe Neeman <joeneeman@gmail.com>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
}
}
/* if we get to here, just put everything on one line */
- warning (_ ("cannot find line breaking that satisfies constraints"));
- ret.push_back (space_line (0, end_brk));
+ if (sys_count > 0) {
+ warning (_ ("cannot find line breaking that satisfies constraints"));
+ ret.push_back (space_line (0, end_brk));
+ }
return ret;
}
}
/* if we get to here, just put everything on one line */
- Line_details details;
- fill_line_details (&details, 0, end_brk);
- ret.push_back (details);
+ if (sys_count > 0) {
+ Line_details details;
+ fill_line_details (&details, 0, end_brk);
+ ret.push_back (details);
+ }
return ret;
}
out->title_space_ = system_markup_space_;
out->inverse_hooke_ = out->full_height () + system_system_space_;
- out->footnotes_ = sys->get_footnotes_in_range (start_rank, end_rank);
+ out->footnote_heights_ = sys->get_footnote_heights_in_range (start_rank, end_rank);
+ out->in_note_heights_ = sys->get_in_note_heights_in_range (start_rank, end_rank);
out->refpoint_extent_ = sys->pure_refpoint_extent (start_rank, end_rank);
if (out->refpoint_extent_.is_empty ())
if (scm_is_pair (footnotes))
for (SCM s = footnotes; scm_is_pair (s); s = scm_cdr (s))
- footnotes_.push_back (unsmob_stencil (scm_caddar (s)));
+ {
+ Stencil *sten = unsmob_stencil (scm_caddar (s));
+ if (!sten)
+ {
+ programming_error ("expecting stencil, got empty pointer");
+ continue;
+ }
+ footnote_heights_.push_back (sten->extent (Y_AXIS).length ());
+ }
last_column_ = 0;
force_ = 0;
- Interval stencil_extent = unsmob_stencil (pb->get_property ("stencil"))->extent (Y_AXIS);
+ Stencil *st = unsmob_stencil (pb->get_property ("stencil"));
+ Interval stencil_extent = st->is_empty (Y_AXIS) ? Interval (0, 0)
+ : st->extent (Y_AXIS);
shape_ = Line_shape (stencil_extent, stencil_extent); // pretend it goes all the way across
tallness_ = 0;
bottom_padding_ = 0;