2 source.cc -- implement Sources
4 source file of the LilyPond music typesetter
6 (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
11 #include "killing-cons.tcc"
12 #include "binary-source-file.hh"
14 #include "flower-proto.hh"
15 #include "source-file.hh"
17 #include "file-path.hh"
21 sourcefile_p_list_
= 0;
27 Sources::set_binary (bool bo
)
33 Sources::set_path (File_path
*f_C
)
41 @param file_str the file to be opened, name might be changed if it
42 is found in a search path. UGH!
44 @return 0 if no file found
47 Sources::get_file_l (String
&file_str
) //UGH
49 if ((file_str
!= "-") && path_C_
)
51 String file_str_o
= path_C_
->find (file_str
);
52 if ((file_str_o
== "") && (file_str
!= ""))
54 file_str
= file_str_o
;
56 Source_file
* f_p
= (!binary_b_
) ?
57 new Source_file (file_str
) : new Binary_source_file (file_str
);
63 Sources::add (Source_file
* sourcefile_p
)
65 sourcefile_p_list_
= new Killing_cons
<Source_file
> (sourcefile_p
, sourcefile_p_list_
);
70 delete sourcefile_p_list_
;
73 search the list for file whose map contains pointer #ch_C#
75 @return 0 if not found.
78 Sources::sourcefile_l (char const* ch_C
)
81 for (Cons
<Source_file
> *i
= sourcefile_p_list_
; i
; i
= i
->next_
)
82 if (i
->car_
->in_b (ch_C
))