]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/main.cc
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / lily / main.cc
index e0f5dda1a2d93a34a3a06b4834b60954a6fa4dbb..e288d361d665985d4016b3f14ecc8183a6fcd3d8 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  main.cc -- implement main () entrypoint.
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "main.hh"
@@ -12,6 +23,7 @@
 #include <clocale>
 #include <cstring>
 #include <cerrno>
+#include <cstdio>
 using namespace std;
 
 #include <unistd.h>
@@ -57,9 +69,6 @@ string init_name_global;
 /* Output formats to generate.  */
 string output_format_global = "";
 
-bool is_pango_format_global;
-bool is_TeX_format_global;
-
 /* Current output name. */
 string output_name_global;
 
@@ -130,7 +139,7 @@ static Getopt_long *option_parser = 0;
 
 /* Internationalisation kludge in two steps:
  * use _i () to get entry in POT file
- * call gettext () explicitely for actual "translation"  */
+ * call gettext () explicitly for actual "translation"  */
 
 static Long_option_init options_static[]
 = {
@@ -142,11 +151,9 @@ static Long_option_init options_static[]
   /* Bug in option parser: --output =foe is taken as an abbreviation
      for --output-format.  */
   {_i ("FORMATs"), "formats", 'f', _i ("dump FORMAT,...  Also as separate options:")},
-  {0, "dvi", 0, _i ("generate DVI (tex backend only)")},
   {0, "pdf", 0, _i ("generate PDF (default)")},
   {0, "png", 0, _i ("generate PNG")},
   {0, "ps", 0, _i ("generate PostScript")},
-  {0, "tex", 0, _i ("generate TeX (tex backend only)")},
   {0, "help", 'h',  _i ("show this help and exit")},
   {_i ("FIELD"), "header", 'H',  _i ("dump header field FIELD to file\n"
                                     "named BASENAME.FIELD")},
@@ -176,14 +183,18 @@ char const *LILYPOND_DATADIR = PACKAGE_DATADIR "/" TOPLEVEL_VERSION;
   && defined(HAVE_FPU_CONTROL_H) && (HAVE_FPU_CONTROL_H == 1))
 
 #include <fpu_control.h>
-static void configure_fpu() {
+static void
+configure_fpu ()
+{
   fpu_control_t fpu_control = 0x027f;
   _FPU_SETCW (fpu_control);
 }
 
 #else
 
-static void configure_fpu() {
+static void
+configure_fpu ()
+{
 }
 
 #endif /* defined(__x86__) || defined(__i386__) */
@@ -223,9 +234,9 @@ dir_info (FILE *out)
 static void
 copyright ()
 {
-  printf (_f ("Copyright (c) %s by\n%s  and others.",
-             "1996--2007",
-             AUTHORS).c_str ());
+  /* Do not update the copyright years here, run `make grand-replace'  */
+  printf ("%s", (_f ("Copyright (c) %s by\n%s  and others.", "1996--2010",
+                     AUTHORS).c_str ()));
   printf ("\n");
 }
 
@@ -240,9 +251,10 @@ static void
 notice ()
 {
   identify (stdout);
-  puts (_f (NOTICE, PROGRAM_NAME).c_str ());
   printf ("\n");
   copyright ();
+  printf ("\n");
+  puts (_f (NOTICE, PROGRAM_NAME).c_str ());
 }
 
 LY_DEFINE (ly_usage, "ly:usage",
@@ -250,21 +262,25 @@ LY_DEFINE (ly_usage, "ly:usage",
           "Print usage message.")
 {
   /* No version number or newline here.  It confuses help2man.  */
-  printf (_f ("Usage: %s [OPTION]... FILE...", PROGRAM_NAME).c_str ());
+  printf ("%s", (_f ("Usage: %s [OPTION]... FILE...", PROGRAM_NAME).c_str ()));
   printf ("\n\n");
-  printf (_ ("Typeset music and/or produce MIDI from FILE.").c_str ());
+  printf ("%s", (_ ("Typeset music and/or produce MIDI from FILE.").c_str ()));
   printf ("\n\n");
-  printf (_ ("LilyPond produces beautiful music notation.").c_str ());
+  printf ("%s", (_ ("LilyPond produces beautiful music notation.").c_str ()));
   printf ("\n");
-  printf (_f ("For more information, see %s", PROGRAM_URL).c_str ());
+  printf ("%s", (_f ("For more information, see %s", PROGRAM_URL).c_str ()));
   printf ("\n\n");
-  printf (_ ("Options:").c_str ());
+  printf ("%s", (_ ("Options:").c_str ()));
   printf ("\n");
-  printf (Long_option_init::table_string (options_static).c_str ());
+  printf ("%s", Long_option_init::table_string (options_static).c_str ());
   printf ("\n");
-  printf (_f ("Report bugs via %s",
-             "http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs"
-             ).c_str ());
+  /* Translators, please translate this string as
+     "Report bugs in English via %s",
+     or if there is a LilyPond users list or forum in your language
+     "Report bugs in English via %s or in YOUR_LANG via URI"  */
+  printf ("%s", (_f ("Report bugs via %s",
+                    "http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs"
+                    ).c_str ()));
   printf ("\n");
   printf ("\n");
   return SCM_UNSPECIFIED;
@@ -277,7 +293,7 @@ warranty ()
   printf ("\n");
   copyright ();
   printf ("\n");
-  printf (_ (WARRANTY).c_str ());
+  printf ("%s", (_ (WARRANTY).c_str ()));
 }
 
 static void
@@ -387,7 +403,6 @@ main_with_guile (void *, int, char **)
   if (be_verbose_global)
     dir_info (stderr);
 
-  is_pango_format_global = !is_TeX_format_global;
   init_scheme_variables_global = "(list " + init_scheme_variables_global + ")";
   init_scheme_code_global = "(begin " + init_scheme_code_global + ")";
 
@@ -398,10 +413,6 @@ main_with_guile (void *, int, char **)
   init_freetype ();
   ly_reset_all_fonts ();
 
-  is_TeX_format_global = (get_output_backend_name () == "tex"
-                         || get_output_backend_name () == "texstr");
-  
-
   /* We accept multiple independent music files on the command line to
      reduce compile time when processing lots of small files.
      Starting the GUILE engine is very time consuming.  */
@@ -413,7 +424,7 @@ main_with_guile (void *, int, char **)
       *tail = scm_cons (scm_from_locale_string (arg), SCM_EOL);
       tail = SCM_CDRLOC (*tail);
     }
-  
+
   delete option_parser;
   option_parser = 0;
 
@@ -437,7 +448,7 @@ setup_localisation ()
   setlocale (LC_ALL, "");
 
   /* FIXME: check if this is still true.
-     Disable localisation of float values.  This breaks TeX output.  */
+     Disable localisation of float values. */
   setlocale (LC_NUMERIC, "C");
 
   string localedir = LOCALEDIR;
@@ -467,11 +478,9 @@ parse_argv (int argc, char **argv)
       switch (opt->shortname_char_)
        {
        case 0:
-         if (string (opt->longname_str0_) == "dvi"
-             || string (opt->longname_str0_) == "pdf"
+         if (string (opt->longname_str0_) == "pdf"
              || string (opt->longname_str0_) == "png"
-             || string (opt->longname_str0_) == "ps"
-             || string (opt->longname_str0_) == "tex")
+             || string (opt->longname_str0_) == "ps")
            add_output_format (opt->longname_str0_);
          else if (string (opt->longname_str0_) == "relocate")
            relocate_binary = true;
@@ -510,9 +519,10 @@ parse_argv (int argc, char **argv)
        case 'j':
          jail_spec = option_parser->optional_argument_str0_;
          break;
-         
+
        case 'e':
-         init_scheme_code_global += option_parser->optional_argument_str0_ + string (" ");
+         init_scheme_code_global
+            += option_parser->optional_argument_str0_ + string (" ");
          break;
        case 'w':
          warranty ();
@@ -557,7 +567,6 @@ parse_argv (int argc, char **argv)
 
   if (show_help)
     {
-      identify (stdout);
       ly_usage ();
       if (be_verbose_global)
        dir_info (stdout);
@@ -568,7 +577,7 @@ parse_argv (int argc, char **argv)
 void
 setup_guile_env ()
 {
-  const char *yield = getenv ("LILYPOND_GC_YIELD");
+  char const *yield = getenv ("LILYPOND_GC_YIELD");
   bool overwrite = true;
   if (!yield)
     {
@@ -588,7 +597,7 @@ setup_guile_env ()
 }
 
 vector<string> start_environment_global;
+
 int
 main (int argc, char **argv, char **envp)
 {
@@ -596,7 +605,7 @@ main (int argc, char **argv, char **envp)
 
   for (char **p = envp; *p; p++)
     start_environment_global.push_back(*p);
-  
+
   if (getenv ("LILYPOND_VERBOSE"))
     be_verbose_global = true;
 
@@ -621,7 +630,7 @@ main (int argc, char **argv, char **envp)
 #else
   scm_boot_guile (argc, argv, main_with_guile, 0);
 #endif
-       
+
   /* Only reachable if GUILE exits.  That is an error.  */
   return 1;
 }