+LY_DEFINE (ly_output_def_clone, "ly:output-def-clone",
+ 1, 0, 0, (SCM def),
+ "Clone @var{def}.")
+{
+ Music_output_def *op = unsmob_music_output_def (def);
+ SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
+ SCM s = op->clone ()->self_scm ();
+ scm_gc_unprotect_object (s);
+ return s;
+}
+
+LY_DEFINE(ly_output_description, "ly:output-description",
+ 1,0,0,
+ (SCM output_def),
+ "Return the description of translators in @var{output-def}.")
+{
+ Music_output_def *id = unsmob_music_output_def (output_def);
+ SCM al = id->translator_tab_->to_alist ();
+ SCM l = SCM_EOL;
+ for (SCM s = al ; ly_c_pair_p (s); s = ly_cdr (s))
+ {
+ Context_def * td = unsmob_context_def (ly_cdar (s));
+ l = scm_cons (scm_cons (ly_caar (s), td->to_alist ()), l);
+ }
+ return l;
+}
+