X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Foutput-def-scheme.cc;h=f71e15926fb4ddde2fa6b97a376e23ef2dbaaa1a;hb=bce34ce896e5f7a2e80460b0051f740facd1a1d1;hp=9e56fb79bb29c29bea919d89b143c153e1882b59;hpb=998759078597e5b4dc5cd787ab7c15a76e430f6c;p=lilypond.git diff --git a/lily/output-def-scheme.cc b/lily/output-def-scheme.cc index 9e56fb79bb..f71e15926f 100644 --- a/lily/output-def-scheme.cc +++ b/lily/output-def-scheme.cc @@ -15,15 +15,24 @@ #include "context-def.hh" LY_DEFINE (ly_layout_lookup, "ly:output-def-lookup", - 2, 0, 0, (SCM pap, SCM sym), + 2, 1, 0, (SCM pap, SCM sym, SCM def), "Lookup @var{sym} in @var{pap}. " - "Return the value or @code{'()} if undefined.") + "Return the value or @var{def} (which defaults to @code{'()}) if undefined.") { Output_def *op = unsmob_output_def (pap); SCM_ASSERT_TYPE (op, pap, SCM_ARG1, __FUNCTION__, "Output_def"); SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol"); + + SCM answer = op->lookup_variable (sym); + if (answer == SCM_UNDEFINED) + { + if (def == SCM_UNDEFINED) + def = SCM_EOL; + + answer = def; + } - return op->lookup_variable (sym); + return answer; } LY_DEFINE (ly_output_def_scope, "ly:output-def-scope",