A STRING_IDENTIFIER always was a special case of a MARKUP_IDENTIFIER
without being treated equally at top level. That led to craziness
like
xxx=\markup "test"
\xxx
being invalid, while
xxx=\markup \italic "test"
\xxx
was valid code. This change just removes the STRING_IDENTIFIER
category altogether. Where it was used previously, MARKUP_IDENTIFIER
is accepted now syntactically, and where the semantics indeed require
a plain string, an error is generated explicitly in the action instead
of leaving it to the parser to complain about bad grammar.
David Kastrup [Fri, 21 Sep 2012 10:49:23 +0000 (12:49 +0200)]
Issue 2853: Set up indent-tabs-mode for Emacs in lexer.ll and parser.yy
indent-tabs-mode has been switched off for C++ files generally via
directory-local variables when editing with Emacs.
However, for lack of working better indentation modes that cooperate
well with Bison and Flex files, lexer.ll and parser.yy are using a
tab-based indentation style oriented on the Linux kernel indentation
style. In order to not cause an even greater inconsistent mess, local
file variables are used for switching tab-based indentation back on in
those files when editing them with Emacs.
Ian Hulin [Tue, 18 Sep 2012 00:04:57 +0000 (01:04 +0100)]
Issue 2758. ly_module_lookup caused deprecation warnings with Guile V2.06.
The V2.17.0 definition of ly_module_lookup in module-scheme.cc uses two
functions, scm_sym2var and scm_module_lookup_closure, which issue
deprecation warnings in Guile V2.06. A call to the new Guile API function,
scm_module_variable, provides the functionality for both deprecated
routines, but has not been back-ported to Guile V1.8.
This patch adds a conditionally-compiled block when running with a Guile
version < V2.0, so that Guile V1 will the existing undocumented API calls
in ly_module_lookup, but Guile V2 will use API call scm_module_variable.
Ian Hulin [Sun, 16 Sep 2012 21:10:13 +0000 (22:10 +0100)]
Issue 2758. ly_module_lookup caused deprecation warnings with Guile V2.06.
The V2.17.0 definition of ly_module_lookup in module-scheme.cc uses two
functions, scm_sym2var and scm_module_lookup_closure, which issue
deprecation warnings in Guile V2.06. A call to the new Guile API function,
scm_module_variable, provides the functionality for both deprecated
routines, but has not been back-ported to Guile V1.8.
This patch adds a conditionally-compiled block when running with a Guile
version < V2.0, so that Guile V1 will not use the deprecated scm_ calls
in ly_module_lookup, and Guile V2 will use API call scm_module_variable.
Benkő Pál [Fri, 7 Sep 2012 18:51:51 +0000 (20:51 +0200)]
redesign dot placement of repeat sign
refines6239ab9f01fcb31fbd6d5f7e81a98a7f58e663bf in that allow both
dots in the same space only as last resort (for two-line staves or for
exotic staves where all outer spaces are too narrow or asymmetric);
put no lower limit on the space required between dot and staffline.
an important example is TabStaff, which, for the present purposes, is
equivalent to a Staff with line-count 6 and staff-space 1.5.
Benkő Pál [Fri, 7 Sep 2012 17:39:21 +0000 (19:39 +0200)]
new regtests for dots of a repeat sign
- test default tablature
- test set-global-staff-size and layout-set-staff-size combinations
in default and extreme circumstances to make sure that real world
usage is not hindered
Mike Solomon [Wed, 12 Sep 2012 05:59:38 +0000 (07:59 +0200)]
Allows the user to override the text property of ChordName
Checks to see if the user has set text and, if so, does not call
set_property in the engraver.
Compares contents of markups to determine chord equality, allowing
successive overridden chords with the same markup content to be
identified as equal.
Mike Solomon [Mon, 10 Sep 2012 07:17:28 +0000 (09:17 +0200)]
Better approximations for cross-staff slurs
SlurStub grobs are used to approximate the vertical skylines of
cross staff slurs by using control points generated by pure heights
instead of heights. Depending on how far off the actual translations are
from the minimal translations, these control points will be more or less
viable. A SlurStub is generated for every VerticalAxisGroup on which
a slur has encompass objects and only those residing on the extremal
UP and DOWN vertical axis groups get vertical skylines.
Mike Solomon [Mon, 10 Sep 2012 06:53:09 +0000 (08:53 +0200)]
Avoids script-tie collisions
Ties are now issued at their correct beginning time step and
are suicided if they are ultimately unused. This allows the
Script_engraver to acknowledge them at the correct timestep and
register them as supports for the side-position-interface.
David Kastrup [Sat, 8 Sep 2012 15:31:14 +0000 (17:31 +0200)]
When printing a context def, include the source location.
This is a supplement to make the printing of "parser objects should be
dead" messages more useful. Adding the source location of an undead
context def makes the problem far easier to identify.
David Kastrup [Sat, 8 Sep 2012 14:40:39 +0000 (16:40 +0200)]
Issue 2754 cleanup: Only complain once about any undead object
Embarrassingly, commit 2ea3798f3473a7dd02b85ac311aa9b8de4938c3c only
implemented the requisite fix in one place. This replicates the code
for avoiding duplicate error messages at the second call place of
ly:parsed-undead-list! in lily.scm.
Mike Solomon [Tue, 4 Sep 2012 22:52:19 +0000 (00:52 +0200)]
LedgerLineSpanner included in vertical skylines of VerticalAxisGroup.
An elements grob array was erroneously being created for the
LedgerLinesSpanner. This has been eliminated, which now means that its
stencil can be used to calculate its vertical skylines.
Keith OHara [Wed, 29 Aug 2012 19:47:47 +0000 (12:47 -0700)]
grob-property.cc: outdated comment
Callbacks do not, in practice, return SCM_UNSPECIFIED after
setting the property they were called with, and an assert()
added later with commit 635bff94 severely restricts doing so.
Trevor Daniels [Wed, 29 Aug 2012 10:13:44 +0000 (11:13 +0100)]
Doc: NR 3.2.1: clarify titles and \header blocks (2652)
- drop use of "title blocks"
- make headings consistent
- explain the two titling areas
- explain the four positions for \header blocks and their
hierarchy
- clarify text in several places
Mike Solomon [Fri, 31 Aug 2012 07:27:17 +0000 (09:27 +0200)]
Uses a heuristic to determine if chord tremolos collide with accidentals.
This heuristic makes several assumptions about when a chord tremolo
will collide with accidentals. It must be between whole notes, it
must be in the staff, and it must be an ascending major third or lower.
The heuristic is entirely contained in Beam::whole_note_close_chord_tremolo,
which should be modified if other cases involving chord tremolos arise.
John Mandereau [Mon, 27 Aug 2012 22:18:04 +0000 (00:18 +0200)]
Restore some directories for the documentation build
Some files/directories that had been removed in c20fff645e325d392d2588721144f4204d0ef9da Make distributed tarball from
Git file list were needed by extract_texi_filenames and other programs
used in the build system to work properly without issuing warnings.
Mike Solomon [Mon, 27 Aug 2012 21:47:04 +0000 (23:47 +0200)]
Improvements in vertical skyline approximations (issue 2148).
The file stencil-integral.cc provides a suite of functions that
traverse a stencil and do linear approximations of its components.
These are then turned into boxes that are passed to the Skyline
constructor. This approximation is used for several vertical skylines
including those of VerticalAxisGroup and System. As a result of these
more accurate approximations, vertical spacing is more snug between
grobs.
Additionally, in axis-group-interface.cc, skylines of grobs are no
longer compared to a monolithic axis-group skyline but rather all
of the component skylines of the axis-group, allowing grobs to
be fit under other ones if there is space instead of always shifted over.
Two new python scripts allow to visualize the position of skylines.
All other changes provide functions that allow for better debugging
of Skylines, better approximations of grobs via skylines, and changes
to the measurement of distance between grobs via the new Skyline API.
This results in a significant time increase in score compilation for
objects with complex skylines such as all text grobs. For orchestral
scores, the increase is not as steep.