Masamichi Hosoda [Fri, 16 Dec 2016 11:57:58 +0000 (20:57 +0900)]
Issue 5013: Fix scripts for environments where "set -ux" carries over
Normally, in Bourne shell scripts,
"set -ux" does not carry over to child processes.
However, under some conditions, it carries over to child processes.
(E.g. environment variable SHELLOPTS exists.)
If "set -ux" in smart-autogen.sh carries over to the child processes,
autoconf fails.
In order to avoid the issue,
this commit makes smart-autogen.sh and smart-configure.sh use
"set +ux" to cancel the effect of "set -ux"
just before invoking the child process.
Likewise, this commit also removes "set -e"
for avoiding "set -e" carrying over, and adds alternative error handling.
Thomas Morley [Thu, 1 Dec 2016 21:38:54 +0000 (22:38 +0100)]
Issue 5003 unfoldRepeats can be restricted to certain repeat-types
It now takes an additional, optional argument.
It's a list of symbols representing the repeat-types which should
be unfolded.
Possible settings are percent, tremolo and volta.
The default is an empty list, for which repeated-music is taken,
unfolding all.
A new regtest is added to cover the new feature.
Changes is extended accordingly.
Also correcting two small typos in Documentation/notation/staff.itely
XML:Fix reg tests that have both lyrics and chords (for example 61e)
As commented in the patch
I did not find any
documentation if a chord
element can contain multiple
lyrics, so I just assumed that
the first note of the chord
contained the Lyrics
(consistant with Finale
and Muscore exports).
David Kastrup [Thu, 17 Nov 2016 19:23:27 +0000 (20:23 +0100)]
Issue 4999: Synchronize \layout and \midi definitions
\midi was ignored when fixes for issues 4302 and 4772 were committed to
\layout . This commit brings the context hierarchy in \midi back in
line with the state in \layout .
Issue 5000/1: Add checking Ghostscript 9.20+ and Extract PDFmark
This commit adds checking Ghostscript 9.20+ and Extract PDFmark.
They can reduce the disk space required for document building.
They also can reduce the size of generated PDF document files.
Even if they are missing, you can build documents.
Ghostscript 9.20+:
It is necessary for string named destinations.
Ghostscript 9.19 and prior cannot handle them.
http://bugs.ghostscript.com/show_bug.cgi?id=696974
Extract PDFmark:
It is necessary for preserving named destinations and page mode.
https://github.com/trueroad/extractpdfmark
http://www.ctan.org/pkg/extractpdfmark
David Kastrup [Sat, 4 Jun 2016 12:11:31 +0000 (14:11 +0200)]
Issue 4997/2: Use Preinit class in Scheme_engraver
This avoids calls of derived_mark on uninitialized data. Fold
Scheme_engraver::init_from_scheme (SCM) into converting constructor
since it has become identical to it.
David Kastrup [Sat, 4 Jun 2016 12:09:08 +0000 (14:09 +0200)]
Issue 4997/1: Add Preinit class for early initialization
This is a tricky thing: once a base class calls smobify_self () in
its constructor, further allocations during construction of base
class and derived classes might lead to mark_smob calls on the
object under construction. When those call a virtual function like
derived_mark, the virtual function corresponding to the
incompletely initialized object is likely to be called.
This situation is acerbated in Guile 2.0 where the mark passes may occur
with only loose synchronization to the allocations.
The order of initialization of an object consists in calling the
constructors of virtual base classes, then of non-virtual base
classes, then initializing all data members.
As a result, the derived constructor comes too late for
initialization. That's where the Preinit template class comes in.
Derive from it _before_ deriving from the smobifying base class
providing derived_mark, and it will call its Base class' pre_init
function (which must not rely on the instantiation being complete).
The pre_init function should then put the derived class into a state
_before_ its constructor or a constructor of its data members is being
called where it's safe to call its derived_mark function. Note that in
particular that most STL data structures are in undefined state before
their constructor is being called, so the pre_init function has to
establish a state where derived_mark will not attempt to interpret data
members of types like std::vector which may not have been constructed
yet.
Masamichi Hosoda [Fri, 28 Oct 2016 13:53:25 +0000 (22:53 +0900)]
Issue 4991: Add installing optional URW++ fonts
LilyPond default fonts (TeX Gyre) do not have Greek and Cyrillic glyphs.
Newest URW 35 fonts (June 2016) have them.
http://git.ghostscript.com/?p=urw-core35-fonts.git;a=commit;h=79bcdfb34fbce12b592cce389fa7a19da6b5b018
This commit realizes the followings.
. configure script finds the following 12 OTF files.
. If they are found, `make install` installs them.
(Both TeX Gyre and URW fons are installed
under the lilypond fonts directory.)
. Even if they are not found, configure script does not raise error.
(Only TeX Gyre fonts are installed.)
Antonio Ospite [Wed, 9 Nov 2016 17:22:25 +0000 (18:22 +0100)]
Fix ending the dynamic extent in Text_interface::interpret_markup
When using cyclic references under guile-2.0 lilypond crashes with
a segmentation fault:
$ LANG=C out/bin/lilypond input/regression/markup-cyclic-reference.ly
GNU LilyPond 2.19.51
Processing `input/regression/markup-cyclic-reference.ly'
Parsing...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `/tmp/lilypond-wkUlSF'...
Converting to `markup-cyclic-reference.pdf'...
Deleting `/tmp/lilypond-wkUlSF'...
Segmentation fault
This happens because in Text_interface::interpret_markup the dynamic
extent is not ended properly in the exit path for the case when the
markup depth exceeds the max_depth.
Masamichi Hosoda [Fri, 28 Oct 2016 14:11:29 +0000 (23:11 +0900)]
Issue 4992/2: Add `never-embed-font-list` and `/NeverEmbed`
When the option `-dgs-never-embed-fonts` is enabled,
`/NeverEmbed` distiller parameter from `never-embed-font-list` list
is added to the outputting PostScript file.
When Ghostscript converts from the PostScript file to PDF file,
it never embed the fonts which are in the `never-embed-font-list`.
Thomas Morley [Tue, 25 Oct 2016 20:29:20 +0000 (22:29 +0200)]
Issue 4988 straight-flags partly wrong calculated
The angles for straight-flags at down- and up-pointing stems are now
accurately respected.
This will cause some slight changes in the reg-tests.
Also fixing flat-flags, which relied on the old, buggy calculation.
Also doing the same fixes for markup-command note-by-number.
Also fixing an oversight in regtest metronome-mark-formatter.ly,
where the creation of the metronome-markup depends on note-by-number.