Le Dec 5, 2011 à 8:52 AM, d...@gnu.org a écrit :

> 
> http://codereview.appspot.com/5434104/diff/1/scm/output-lib.scm
> File scm/output-lib.scm (right):
> 
> http://codereview.appspot.com/5434104/diff/1/scm/output-lib.scm#newcode408
> scm/output-lib.scm:408: (define-public
> (pure-from-neighbor-interface::account-for-span-bar grob)
> On 2011/12/05 06:00:05, Keith wrote:
>> Golly gee!  Is this how you have to loop over a pair in this language?
> Scheme
>> must be for losers.  I'm glad I use more powerful languages like
> FORTRAN77.
> 
>> IF .NOT.has-span-bar(UP)
>>   esh(UP) = min(esh(UP), 1.01)
>> ENDIF
>> IF .NOT.( has-span-bar(DOWN).AND.allow-span-bar )
>>   esh(DOWN)= max(esh(DOWN), -1.01)
>> ENDIF
> 
> No, this is just Mike's entry for the obfuscated programming contest.

Winner for 2 straight years and running!

> This actually is just
> 
> (define-public (pure-from-neighbor-interface::account-for-span-bar grob)
>  (let* ((esh (pure-from-neighbor-interface::extra-spacing-height grob))
>         (hsb (ly:grob-property grob 'has-span-bar))
>        (ii (interval-intersection esh (cons -1.01 1.01)))
>    (if (pair? hsb)
>       (cons (car (if (and (cdr hsb)
>                           (ly:grob-property grob 'allow-span-bar))
>                      esh ii))
>             (cdr (if (car hsb) esh ii)))
>       ii))))
> 
> 


I'll test this out after I push the hairpin patch, which does some finagling 
with has-span-bar.

Cheers,
MS



_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to