]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/source.cc
clean up Sources
[lilypond.git] / lily / source.cc
index 1ba43781964eb1368f20f32ce5b0242c66d26023..811b4dd6814dd541400b38895eae08f39c16ed88 100644 (file)
@@ -3,83 +3,64 @@
 
   source file of the LilyPond music typesetter
 
-  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
+#include "source.hh"
 
-#include <assert.h>
-
-#include "killing-cons.tcc"
-#include "string.hh"
-#include "flower-proto.hh"
 #include "source-file.hh"
-#include "source.hh"
 #include "file-path.hh"
 
 Sources::Sources ()
 {
-  sourcefile_list_ = 0;
-  path_C_= 0;
-  is_binary_ = false;
+  path_ = 0;
 }
 
-void
-Sources::set_binary (bool bo)
+
+Sources::Sources (Sources const &)
 {
-  is_binary_ = bo;
+  assert (false);
 }
 
+
 void
 Sources::set_path (File_path *f)
 {
-  path_C_ = f;
+  path_ = f;
 }
 
 /**
-  open a file
+   open a file
 
-  @param file_string the file to be opened, name might be changed if it
-  is found in a search path. UGH!
-
-  @return 0 if no file found
-  */
-Source_file*
-Sources::get_file (String &file_string) //UGH
+   File_string the file to be opened, name might be changed if it is
+   found in a search path.
+*/
+Source_file *
+Sources::get_file (string *file_string) //UGH
 {
-  if ((file_string != "-") && path_C_)
+  if (*file_string != "-" && path_)
     {
-      String file_string_o = path_C_->find (file_string); 
-      if ((file_string_o == "") && (file_string != ""))
+      string file_string_o = path_->find (*file_string);
+      if ((file_string_o == "") && (*file_string != ""))
        return 0;
-      file_string = file_string_o;
+      *file_string = file_string_o;
     }
-  Source_file * f = new Source_file (file_string) ;
+  Source_file *f = new Source_file (*file_string);
   add (f);
   return f;
 }
 
 void
-Sources::add (Source_filesourcefile)
+Sources::add (Source_file *sourcefile)
 {
-  sourcefile_list_ = new Killing_cons<Source_file> (sourcefile, sourcefile_list_);
+  sourcefiles_.push_back (sourcefile);
 }
 
 Sources::~Sources ()
 {
-  delete sourcefile_list_;
-}
-/**
-  search the list for file whose map contains pointer #str0#
-
-  @return 0 if not found.
-  */
-Source_file*
-Sources::get_sourcefile (char const* str0)
-{
-
-  for (Cons<Source_file> *i = sourcefile_list_; i; i = i->next_)
-    if (i->car_->in_b (str0))  
-      return i->car_;
-  return 0;
+  for (vsize i = 0; i < sourcefiles_.size (); i++)
+    {
+      sourcefiles_[i]->unprotect ();
+    }
 }