source file of the GNU LilyPond music typesetter
- (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include <unistd.h>
file name. */
File_name out_file_name (file_name);
- global_path.append (out_file_name.dir_);
-
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)
+ string output_name = output_name_global;
+ if (!output_name.empty ())
{
- File_name f (file);
- f.base_ = "";
- f.ext_ = "";
- output_name_global = f.to_string ();
- }
-
- if (!output_name_global.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 ();
chdir (dir.c_str ());
}
else
- out_file_name = File_name (output_name_global);
+ out_file_name = File_name (output_name);
}
string init;
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));