I'm updating the italian language and I can't understand what this
dash is about here:
$ git grep -n -A4 -B4 "Re-defining dash" lily/
lily/parser.yy-3316-//
-----------------------------------------------------------------
lily/parser.yy-3317-// obsoletion handling, may be removed at some
point (e.g. for 2.26)
lily/parser.yy-3318- } else if (scm_is_string (s)) {
lily/parser.yy-3319- string s_string = ly_scm2string (s);
lily/parser.yy:3320: @$.warning (_f ("Re-defining dash%s using a
string is deprecated. \
lily/parser.yy-3321-Please try replacing \"%s\" by \\%s or run
convert-ly.",
lily/parser.yy-3322- ly_scm2string ($1), s_string, s_string));
lily/parser.yy-3323- Music *a = MY_MAKE_MUSIC ("ArticulationEvent", @$);
lily/parser.yy-3324- set_property (a, "articulation-type",
scm_string_to_symbol (s));
BTW, no space between dash and %s?
commit 61cd3bc1f3254b430bf04acd587c4082253602d4
Author: Lukas-Fabian Moser <lfm@gmx.de>
Date: Mon Dec 27 01:25:43 2021 +0100
Make articulation-type a symbol? instead of a string?
This was an ancient TODO (see note from 2003 in
scm/define-music-properties.scm).
It does not seem to make much sense to rely on string comparison for
distinguishing a well-defined set of articulation types. Also, the
articulation-type is used as an alist index, for which symbols are
much more
natural than strings.
This also makes it easier to (for instance) let users enter lists
of articulation
types to use in custom code, since nowadays the parser turns
types = tenuto, fermata, espressivo
into a symbol-list?.
This commit also starts an obsoletion cycle for the outdated
articulation
definition style: As a legacy feature, it used to be possible to do
dashDash = "tenuto"
instead of the modern variants
dashDash = \tenuto
dashDash = #(make-articulation 'tenuto)
which are more in line with current LilyPond syntax principles.
The legacy input still works but emits an obsoletion warning that
may be
removed later (e.g. for 2.26).
Lastly, the code handling scripts is made more robust: Choosing
non-existing
scripts now tends to emit warnings/programming errors instead of
terminating.