]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lily-parser-scheme.cc
Run `make grand-replace'.
[lilypond.git] / lily / lily-parser-scheme.cc
index 1631c4a3daa85036b1089bfe62377af3578af684..fbeb7db5072d0f3aef51382291f377ed7e92dc11 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2005--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include <unistd.h>
@@ -51,31 +51,25 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
 
   out_file_name.ext_ = "";
   out_file_name.root_ = "";
-  out_file_name.dir_ = "";
-
+  if (ly_get_option (ly_symbol2scm ("gui")) != SCM_BOOL_T
+      && ly_get_option (ly_symbol2scm ("strip-output-dir")) == SCM_BOOL_T) {
+    out_file_name.dir_ = "";
+  }
+  
   /* When running from gui, generate output in .ly source directory.  */
-  if (output_name_global.empty ()
-      && ly_get_option (ly_symbol2scm ("gui")) == SCM_BOOL_T)
-    {
-      File_name f (file);
-      f.base_ = "";
-      f.ext_ = "";
-      output_name_global = f.to_string ();
-    }
-
-  if (!output_name_global.empty ())
+  string output_name = output_name_global;
+  if (!output_name.empty ())
     {
-      
       /* Interpret --output=DIR to mean --output=DIR/BASE.  */
       string dir;
-      if (is_dir (output_name_global))
+      if (is_dir (output_name))
        {
-         dir = output_name_global;
-         output_name_global = "";
+         dir = output_name;
+         output_name = "";
        }
       else
        {
-         File_name out (output_name_global);
+         File_name out (output_name);
          if (is_dir (out.dir_part ()))
            {
              dir = out.dir_part ();
@@ -91,7 +85,7 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
          chdir (dir.c_str ());
        }
       else
-       out_file_name = File_name (output_name_global);
+       out_file_name = File_name (output_name);
     }
 
   string init;
@@ -101,7 +95,6 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
     init = "init.ly";
 
   string out_file = out_file_name.to_string ();
-
   if (init.length () && global_path.find (init).empty ())
     {
       warning (_f ("cannot find init file: `%s'", init));