source file of the GNU LilyPond music typesetter
- (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include <stdlib.h>
#include "global-ctor.hh"
#include "kpath.hh"
+Array<String> failed_files;
+
static int sane_putenv (char const* key, char const* value, bool overwrite = false);
/*
/* Current output name. */
String output_name_global;
-/* Run in safe mode? -- FIXME: should be re-analised */
+/* Run in safe mode? */
bool safe_global_b = false;
/* Verbose progress indication? */
{0, "no-paper", 'm', _i ("produce MIDI output only")},
{_i ("FILE"), "output", 'o', _i ("write output to FILE")},
{_i ("DIR"), "dep-prefix", 'P', _i ("prepend DIR to dependencies")},
-#if 0
- /*
- should audit again.
- */
- {0, "safe", 's', _i ("inhibit file output naming and exporting")},
-#endif
+ {0, "safe-mode", 's', _i ("run in safe mode")},
{0, "version", 'v', _i ("print version number")},
{0, "verbose", 'V', _i ("be verbose")},
{0, "warranty", 'w', _i ("show warranty and copyright")},
distill_inname (String str)
{
Path p = split_path (str);
- if (str.empty_b () || str == "-")
+ if (str.is_empty () || str == "-")
p.base = "-";
else
{
for (int i = 0; extensions[i]; i++)
{
p.ext = orig_ext;
- if (*extensions[i] && !p.ext.empty_b ())
+ if (*extensions[i] && !p.ext.is_empty ())
p.ext += ".";
p.ext += extensions[i];
- if (!global_path.find (p.to_string ()).empty_b ())
+ if (!global_path.find (p.to_string ()).is_empty ())
break;
}
/* Reshuffle extension */
return p;
}
-String
-format_to_ext (String format)
-{
- if (format == "tex")
- /* .lytex change put off */
- return "tex"; // "lytex";
- return format;
-}
-
void
prepend_load_path (String dir)
{
do
{
String infile (arg);
- Midi_def::reset_score_count ();
- Paper_def::reset_score_count ();
-
Path inpath = distill_inname (infile);
/* By default, use base name of input file for output file name */
Path outpath = inpath;
if (inpath.to_string () != "-")
- outpath.ext = format_to_ext (output_format_global);
+ outpath.ext = output_format_global;
/* By default, write output to cwd; do not copy directory part
of input file name */
outpath.root = "";
outpath.dir = "";
- if (!output_name_global.empty_b ())
+ if (!output_name_global.is_empty ())
outpath = split_path (output_name_global);
String init;
- if (!init_name_global.empty_b ())
+ if (!init_name_global.is_empty ())
init = init_name_global;
else
init = "init.ly";
- /* Burp: output name communication goes through _global */
- String save_output_name_global = output_name_global;
- output_name_global = outpath.to_string ();
- do_one_file (init, inpath.to_string ());
- output_name_global = save_output_name_global;
+ do_one_file (init, inpath.to_string (), outpath.to_string ());
p++;
} while ((arg = oparser_p_static->get_next_arg ()));
delete oparser_p_static;
oparser_p_static = 0;
+
+ if (exit_status_global)
+ {
+ printf ("Failed files: ");
+ for (int i = 0; i < failed_files.size (); i++)
+ printf ("%s ", failed_files[i].to_str0 ());
+ printf ("\n");
+ }
exit (exit_status_global);
}
{
String s = oparser_p_static->optional_argument_str0_;
Path p = split_path (s);
- if (s != "-" && p.ext.empty_b ())
- p.ext = format_to_ext (output_format_global);
+ if (s != "-" && p.ext.is_empty ())
+ p.ext = output_format_global;
+
output_name_global = p.to_string ();
}
break;
case 'f':
if (oparser_p_static->optional_argument_str0_ == "help")
{
- printf("See http://lilypond.org/wiki?OutputFormats for more information.\n"\
- "This option is for developers only.\n");
+ printf("This option is for developers only; Read the source code for more information\n");
+
+ // actually it's not here,
+ // but we award you special points for looking here.
+
exit (0);
}
output_format_global = oparser_p_static->optional_argument_str0_;
break;
}
}
- identify (stderr);
if (help_b)
{