X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsources.cc;h=5d865fe706e565e1fa03365a24daa3ee3174a8a3;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=dc784d2bdb5f20c17058f2219309d2e6e44c08b2;hpb=99b6f3aa3558b01c9d4158b19a1f1794c534f89c;p=lilypond.git diff --git a/lily/sources.cc b/lily/sources.cc index dc784d2bdb..5d865fe706 100644 --- a/lily/sources.cc +++ b/lily/sources.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,11 +29,6 @@ Sources::Sources () path_ = 0; } -Sources::Sources (Sources const &) -{ - assert (false); -} - void Sources::set_path (File_path *f) { @@ -91,3 +86,28 @@ Sources::~Sources () } } +#include "lily-parser.hh" +#include "lily-lexer.hh" +#include "lily-imports.hh" +#include "fluid.hh" + +LY_DEFINE (ly_source_files, "ly:source-files", 0, 1, 0, + (SCM parser_smob), + "A list of LilyPond files being processed;" + "a PARSER may optionally be specified.") +{ + + if (SCM_UNBNDP (parser_smob)) + parser_smob = scm_fluid_ref (Lily::f_parser); + Lily_parser *parser = LY_ASSERT_SMOB (Lily_parser, parser_smob, 1); + Includable_lexer *lex = parser->lexer_; + + SCM lst = SCM_EOL; + for (vector::const_iterator + i = lex->file_name_strings_.begin(); + i != lex->file_name_strings_.end(); ++i) + { + lst = scm_cons (ly_string2scm (*i), lst); + } + return scm_reverse_x (lst, SCM_EOL); +}