ASSIGN_EVENT_ONCE(cur, new) does this:

  - if cur is nullptr: assign cur = new, return true
  - if *cur and *new are equal: quietly return false
  - if *cur and *new are unequal: warn and return false 

Would a Scheme analog of ASSIGN_EVENT_ONCE be used like this,

    (let ((my-foo-event #f))
      ;; . . .
      (listeners
        ((foo-event this-engraver event)
         (if (ly:set-event-once! my-foo-event event)
           ;; my-foo-event event has been set: handle it

or am I thinking too much like a C++ programmer?

Thanks,
— 
Dan


Reply via email to