+void
+Paper_outputter::write_header_field_to_file (String filename, SCM key, SCM value)
+{
+ output_scheme (scm_list_n (ly_symbol2scm ("header-to-file"),
+ scm_makfrom0str (filename.to_str0 ()),
+ ly_quote_scm (key), value,
+ SCM_UNDEFINED));
+}
+
+void
+Paper_outputter::write_header_fields_to_file (SCM mod)
+{
+ if (ly_module_p (mod)&&
+ dump_header_fieldnames_global.size ())
+ {
+ SCM fields = ly_module_to_alist (mod);
+ for (int i = 0; i < dump_header_fieldnames_global.size (); i++)
+ {
+ String key = dump_header_fieldnames_global[i];
+ SCM val = gh_assoc (ly_symbol2scm (key.to_str0 ()), fields);
+ String s;
+ /* Only write header field to file if it exists */
+ if (gh_pair_p (val) && gh_string_p (ly_cdr (val)))
+ {
+ s = ly_scm2string (ly_cdr (val));
+ /* Always write header field file, even if string is empty ... */
+ write_header_field_to_file (basename_ , ly_car (val), ly_cdr (val));
+ }
+ }
+ }