Le 2021-05-12 23:41, Jean Abou Samra a écrit :
Le 12/05/2021 à 23:18, Gilles Thibault a écrit :
Gilles, voudrais-tu proposer un patch ? Jette un œil à
http://lilypond.org/doc/v2.23/Documentation/contributor/working-with-source-code
pour savoir comment faire.
Hum, j'ai (péniblement) réussi à cloner le répertoire Lilypond.
Parfait.
Faut-il que je crée un "fork" maintenant ? Ils disent dans l'aide
que ce n'est pas utile ! Je ne risque pas de mettre le bazar ?
En effet, c'est comme cela qu'il faut procéder tant
que tu n'a pas le droit d'écriture sur le dépôt principal
(qui est accordé après certain nombre de contributions).
Un fork est justement une copie qui n'appartient qu'à toi,
donc tu ne risques pas de mettre le bazar dans quoi que
ce soit.
Rah, au moment où je commençais à comprendre git, je m'aperçois que
music-map a changé d'implémentation dans la 2.23.
C'est maintenant :
%%%%%%%%
(define-public (music-selective-map descend? function music)
"Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
(if (descend? music)
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element)))
(if (pair? es)
(set! (ly:music-property music 'elements)
(map (lambda (y)
(music-selective-map descend? function y)) es)))
(if (ly:music? e)
(set! (ly:music-property music 'element)
(music-selective-map descend? function e)))))
(recompute-music-length (function music)))
(define-public (music-map function music)
"Apply @var{function} to @var{music} and all of the music it contains.
First it recurses over the children, then the function is applied to
@var{music}."
(music-selective-map ly:music? function music))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il n'y est toujours pas question d'articulations donc la nouvelle
implémentation serait le code ci-dessous, mais je ne peux rien tester
(je ne souhaite pas passer à la 2.23).
%% Proposition de patch %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(define-public (music-selective-map descend? function music)
"Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
(if (descend? music)
(let ((es (ly:music-property music 'elements))
(as (ly:music-property music 'articulations))
(e (ly:music-property music 'element)))
(if (pair? es)
(set! (ly:music-property music 'elements)
(map (lambda (y)
(music-selective-map descend? function y)) es)))
(if (pair? as)
(set! (ly:music-property music 'elements)
(map (lambda (y)
(music-selective-map descend? function y)) as)))
(if (ly:music? e)
(set! (ly:music-property music 'element)
(music-selective-map descend? function e)))))
(recompute-music-length (function music)))
(define-public (music-map function music)
"Apply @var{function} to @var{music} and all of the music it contains.
First it recurses over the children, then the function is applied to
@var{music}."
(music-selective-map ly:music? function music))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%