Carl Sorensen [Sat, 16 Jan 2010 01:15:35 +0000 (18:15 -0700)]
Make tab-note-heads and fretboards use common code.
This combines the string and fret assigning code of the
tab-note-heads engraver and the fret-boards engraver. Both
will use scheme procedures defined in scm/translation-functions.scm
and specified by context properties initialized in ly/engraver-init.ly
* Modify the calling sequence of noteToFretFunction so that it
takes a context, a note-list, a string-list, and an optional
grob. If grob is included, noteToFretFunction will add the
fretboard to the grob. If grob is not included, noteToFretFunction
will return a list of (string fret finger) tuples.
* Refactor the code in scm/translation-functions.scm to support
this separation of function.
* predefinedDiagramTable is now a context property for TabStaff as
well as for FretBoards. This means that if a chord is present in
TabStaff, and predefinedDiagramTable for that TabStaff is not #f,
and a predefined diagram for the chord exists, the TabStaff will
display the notes of the predefined diagram.
* Change tab-note-heads-engraver so that it calls noteToFretFunction
instead of having the fret calculation code inside the engraver.
* Change the noteToFretFunction calling sequence in fretboard-engraver
to match the new definition
* Add an optional default argument to ly:context-property so we
can set a default at call time
Graham Percival [Sat, 30 Jan 2010 21:29:03 +0000 (21:29 +0000)]
Build: another ugly hack for website integration.
My comment for issue 1004 (opened for this patch):
As release manager, I feel that I should reject the patches I'm
writing because they are, as "weegies" (people from Glasgow) would
put it, "utter pish". However, as overall manager, I want to let
doc writers and translators work on the website and see how it
really looks.
Given my doc roots, the doc side wins, so I'm hacking stuff. But
only with the promise that this item is High priority, and that
I'll work on it as soon as I've finished all Critical items. It
*will* be fixed before GLISS starts. GOP might start first, if
everything else is already in place.
Graham Percival [Sat, 30 Jan 2010 00:02:46 +0000 (00:02 +0000)]
Doc: move divisiones.ly into Ancient.
Translations: I did the same thing here to retain compiling;
hopefully this doesn't break anything. AFAIK nobody has touched
the translations of Ancient in years.
Patrick McCarty [Sun, 24 Jan 2010 22:46:51 +0000 (14:46 -0800)]
Fix #887: Use ly:string-percent-encode for textedit URIs.
* Add an overloaded instance of String_convert::bin2hex optimized for
converting single bytes to hex.
* Add a new callback, ly:string-percent-encode, to be used for percent
escaping paths in textedit URIs. This does the following:
- Leave unreserved characters in textedit URIs unescaped. This
includes 0-9, A-Z, a-z, and three punctuation characters (hyphen,
underscore, and full-stop).
- Leave the forward slash (/) unescaped, since it is used as a path
delimiter.
- Escape all other characters. Don't check for a null byte, since
those likely won't sneak into a full pathname.
Patrick McCarty [Thu, 28 Jan 2010 21:04:37 +0000 (13:04 -0800)]
Fontconfig: simplify font caching process.
- Remove FcConfigGetCache(), since it returns NULL in all modern
Fontconfig versions.
- Remove obsolete code. Fontconfig automatically sets up rescanning
intervals for font caches and does not use per-user cache files
anymore.
- Use FcInitBringUptoDate(), which takes care of all caching issues
behind the scenes. For example, it will automatically call
FcConfigBuildFonts() and FcConfigSetCurrent(), if necessary.
Neil Puttock [Wed, 27 Jan 2010 01:41:04 +0000 (01:41 +0000)]
Set context-id for implicit voices in polyphony shorthand.
Since voicify-music now uses the context alias `Bottom' to create the
appropriate voice-level contexts in a << { } \\ { } >> construct, the
context-id sent via context-spec-music is ignored.
* add context-id as arg to Global_context/Context::get_default_interpreter (),
with empty string as default
* pass context-id to Context::get_default_interpreter () so it can
be used in call to create_context () instead of empty string
* add regtest, which will fail to compile if context-id is invalid