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