lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: neverBreakIf


From: Kieren MacMillan
Subject: Re: neverBreakIf
Date: Sun, 19 Oct 2014 13:08:55 -0400

Hi Paul,

>> Just for the record, here you've basically done this: 
>> x = y z
>> but that only results in x = y, with z being "run" rather than being part of
>> the definition of x.  (See what gets logged with the snippet below.)
> 
> Thanks! When I get a chance to run this, I will — and I’m sure it will be 
> informative.

Ran it, and saw the output. Thanks for the hint!

This fix seems to solve the main problem highlighted by your 
counterexample-snippet:

pageBreaksOff = \override Score.NonMusicalPaperColumn.page-break-permission = 
##f
pageBreaksOn = \revert Score.NonMusicalPaperColumn.page-break-permission
lineBreaksOff = \override Score.NonMusicalPaperColumn.line-break-permission = 
##f
lineBreaksOn = \revert Score.NonMusicalPaperColumn.line-break-permission
breaksOff = { \lineBreaksOff \pageBreaksOff }
breaksOn = { \lineBreaksOn \pageBreaksOn }

I’m surprised the definitions in my [now-previous] layout.ly include file 
didn’t have those braces included, as most of my multi-line shortcuts have 
them. By way of possible explanation, I haven’t included that particular file 
in any project in quite a long time — Jan-Peter’s amazing \editionEngraver 
affords me much more surgical control over layout than these old functions 
did/do — or I might have discovered this problem myself, and sooner.

I have made numerous edits to all my include files over the past few years. One 
big one I remember was changing names like *BreaksForbid and *BreaksAllow to 
names like *BreaksOff and *BreaksOn (same with all my *Pedal functions, etc.), 
to more closely match the [new] naming conventions for other functions in the 
standard Lilypond codebase. Perhaps during that edit, I erroneously omitted the 
braces. If I had heeded Urs and Janek’s advice a long time ago, and implemented 
a full git system for my files, I’d be able to tell you exactly what happened! 
Best case scenario, of course, I’d have regression tests for all my additional 
functions and shortcuts… but “ain’t nobody got time for that!”  ;)

In any case, I’ll certainly check all of my definitions very closely now, to 
make sure a similar error hasn’t crept in to any others!

Apologies again to the OP and the list for posting non-functional code as a 
solution to the OP’s question.
_______

All of that being said… When I run your snippet with the new (braced) 
definitions, I get

    programming error: system with empty extent
    continuing, cross fingers
    programming error: system with empty extent
    continuing, cross fingers

so I’m guessing the addition of the braces is insufficient to solve whatever 
problem David K was alluding to.

I can’t say for sure, though.
David will have to answer that himself.

Thanks,
Kieren.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]