2 source.cc -- implement Sources
4 source file of the LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
11 #include "killing-cons.tcc"
12 #include "binary-source-file.hh"
15 #include "source-file.hh"
17 #include "file-path.hh"
26 Sources::set_binary (bool bo)
32 Sources::set_path (File_path *f_C)
40 @param file_str the file to be opened, name might be changed if it
41 is found in a search path. UGH!
43 @return 0 if no file found
46 Sources::get_file_l (String &file_str) //UGH
48 if ((file_str != "-") && path_C_)
50 String file_str_o = path_C_->find (file_str);
51 if ((file_str_o == "") && (file_str != ""))
53 file_str = file_str_o;
55 Source_file * f_p = (!binary_b_) ?
56 new Source_file (file_str) : new Binary_source_file (file_str);
62 Sources::add (Source_file* sourcefile_p)
64 sourcefile_p_list_ = new Killing_cons<Source_file> (sourcefile_p, sourcefile_p_list_);
68 search the list for file whose map contains pointer #ch_C#
70 @return 0 if not found.
73 Sources::sourcefile_l (char const* ch_C)
76 for (Cons<Source_file> *i = sourcefile_p_list_; i; i = i->next_)
77 if (i->car_->in_b (ch_C))