Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / tool / main.cpp
index 13fc438..fbf64b0 100644 (file)
@@ -50,6 +50,7 @@
 #include <synfig/paramdesc.h>
 #include <synfig/main.h>
 #include <synfig/guid.h>
+#include <autorevision.h>
 #endif
 
 using namespace std;
@@ -304,70 +305,66 @@ void signal_test()
 
 /* === P R O C E D U R E S ================================================= */
 
-void display_help(int amount)
+void display_help_option(const char *flag, const char *arg, string description)
 {
-       class Argument
-       {
-       public:
-               Argument(const char *flag,const char *arg, string description)
-               {
-                       const char spaces[]="                      ";
-                       if(arg)
-                               cerr<<strprintf(" %s %s %s",flag, arg, spaces+strlen(arg)+strlen(flag)+1)+description<<endl;
-                       else
-                               cerr<<strprintf(" %s %s",flag,spaces+strlen(flag))+description<<endl;
-               }
-       };
+       const char spaces[]="                      ";
+       if(arg)
+               cerr << strprintf(" %s %s %s", flag, arg, spaces+strlen(arg)+strlen(flag)+1)+description << endl;
+       else
+               cerr << strprintf(" %s %s", flag, spaces+strlen(flag))+description << endl;
+}
 
+void display_help(bool full)
+{
        cerr << endl << _("syntax: ") << progname << " [DEFAULT OPTIONS] ([SIF FILE] [SPECIFIC OPTIONS])..." << endl << endl;
 
-       if(amount == 0)
-               Argument("--help",NULL,_("Print out usage and syntax info"));
-       else
+       if(full)
        {
-               Argument("-t","<output type>",_("Specify output target (Default:unknown)"));
-               Argument("-w","<pixel width>",_("Set the image width (Use zero for file default)"));
-               Argument("-h","<pixel height>",_("Set the image height (Use zero for file default)"));
-               Argument("-s","<image dist>",_("Set the diagonal size of image window (Span)"));
-               Argument("-a","<1...30>",_("Set antialias amount for parametric renderer."));
-               Argument("-Q","<0...10>",strprintf(_("Specify image quality for accelerated renderer (default=%d)"),DEFAULT_QUALITY).c_str());
-               Argument("-g","<amount>",_("Gamma (default=2.2)"));
-               Argument("-v",NULL,_("Verbose Output (add more for more verbosity)"));
-               Argument("-q",NULL,_("Quiet mode (No progress/time-remaining display)"));
-               Argument("-c","<canvas id>",_("Render the canvas with the given id instead of the root."));
-               Argument("-o","<output file>",_("Specify output filename"));
-               Argument("-T","<# of threads>",_("Enable multithreaded renderer using specified # of threads"));
-               Argument("-b",NULL,_("Print Benchmarks"));
-               Argument("--fps","<framerate>",_("Set the frame rate"));
-               Argument("--time","<time>",_("Render a single frame at <seconds>"));
-               Argument("--begin-time","<time>",_("Set the starting time"));
-               Argument("--start-time","<time>",_("Set the starting time"));
-               Argument("--end-time","<time>",_("Set the ending time"));
-               Argument("--dpi","<res>",_("Set the physical resolution (dots-per-inch)"));
-               Argument("--dpi-x","<res>",_("Set the physical X resolution (dots-per-inch)"));
-               Argument("--dpi-y","<res>",_("Set the physical Y resolution (dots-per-inch)"));
-
-               Argument("--list-canvases",NULL,_("List the exported canvases in the composition"));
-               Argument("--canvas-info","<fields>",_("Print out specified details of the root canvas"));
-               Argument("--append","<filename>",_("Append layers in <filename> to composition"));
-
-               Argument("--layer-info","<layer>",_("Print out layer's description, parameter info, etc."));
-               Argument("--layers",NULL,_("Print out the list of available layers"));
-               Argument("--targets",NULL,_("Print out the list of available targets"));
-               Argument("--importers",NULL,_("Print out the list of available importers"));
-               Argument("--valuenodes",NULL,_("Print out the list of available ValueNodes"));
-               Argument("--modules",NULL,_("Print out the list of loaded modules"));
-               Argument("--version",NULL,_("Print out version information"));
-               Argument("--info",NULL,_("Print out misc build information"));
-               Argument("--license",NULL,_("Print out license information"));
+               display_help_option("-t", "<output type>", _("Specify output target (Default:unknown)"));
+               display_help_option("-w", "<pixel width>", _("Set the image width (Use zero for file default)"));
+               display_help_option("-h", "<pixel height>", _("Set the image height (Use zero for file default)"));
+               display_help_option("-s", "<image dist>", _("Set the diagonal size of image window (Span)"));
+               display_help_option("-a", "<1...30>", _("Set antialias amount for parametric renderer."));
+               display_help_option("-Q", "<0...10>", strprintf(_("Specify image quality for accelerated renderer (default=%d)"), DEFAULT_QUALITY).c_str());
+               display_help_option("-g", "<amount>", _("Gamma (default=2.2)"));
+               display_help_option("-v", NULL, _("Verbose Output (add more for more verbosity)"));
+               display_help_option("-q", NULL, _("Quiet mode (No progress/time-remaining display)"));
+               display_help_option("-c", "<canvas id>", _("Render the canvas with the given id instead of the root."));
+               display_help_option("-o", "<output file>", _("Specify output filename"));
+               display_help_option("-T", "<# of threads>", _("Enable multithreaded renderer using specified # of threads"));
+               display_help_option("-b", NULL, _("Print Benchmarks"));
+               display_help_option("--fps", "<framerate>", _("Set the frame rate"));
+               display_help_option("--time", "<time>", _("Render a single frame at <seconds>"));
+               display_help_option("--begin-time", "<time>", _("Set the starting time"));
+               display_help_option("--start-time", "<time>", _("Set the starting time"));
+               display_help_option("--end-time", "<time>", _("Set the ending time"));
+               display_help_option("--dpi", "<res>", _("Set the physical resolution (dots-per-inch)"));
+               display_help_option("--dpi-x", "<res>", _("Set the physical X resolution (dots-per-inch)"));
+               display_help_option("--dpi-y", "<res>", _("Set the physical Y resolution (dots-per-inch)"));
+
+               display_help_option("--list-canvases", NULL, _("List the exported canvases in the composition"));
+               display_help_option("--canvas-info", "<fields>", _("Print out specified details of the root canvas"));
+               display_help_option("--append", "<filename>", _("Append layers in <filename> to composition"));
+
+               display_help_option("--layer-info", "<layer>", _("Print out layer's description, parameter info, etc."));
+               display_help_option("--layers", NULL, _("Print out the list of available layers"));
+               display_help_option("--targets", NULL, _("Print out the list of available targets"));
+               display_help_option("--importers", NULL, _("Print out the list of available importers"));
+               display_help_option("--valuenodes", NULL, _("Print out the list of available ValueNodes"));
+               display_help_option("--modules", NULL, _("Print out the list of loaded modules"));
+               display_help_option("--version", NULL, _("Print out version information"));
+               display_help_option("--info", NULL, _("Print out misc build information"));
+               display_help_option("--license", NULL, _("Print out license information"));
 
 #ifdef _DEBUG
-               Argument("--guid-test",NULL,_("Test GUID generation"));
-               Argument("--signal-test",NULL,_("Test signal implementation"));
+               display_help_option("--guid-test", NULL, _("Test GUID generation"));
+               display_help_option("--signal-test", NULL, _("Test signal implementation"));
 #endif
        }
+       else
+               display_help_option("--help", NULL, _("Print out usage and syntax info"));
 
-       cerr<<endl;
+       cerr << endl;
 }
 
 int process_global_flags(arg_list_t &arg_list)
@@ -393,13 +390,16 @@ int process_global_flags(arg_list_t &arg_list)
 
                if(*iter == "--help")
                {
-                       display_help(1);
+                       display_help(true);
                        return SYNFIGTOOL_HELP;
                }
 
                if(*iter == "--info")
                {
                        cout<<PACKAGE"-"VERSION<<endl;
+                       #ifdef DEVEL_VERSION
+                               cout<<endl<<DEVEL_VERSION<<endl<<endl;
+                       #endif
                        cout<<"Compiled on "__DATE__ /* " at "__TIME__ */;
 #ifdef __GNUC__
                        cout<<" with GCC "<<__VERSION__;
@@ -410,7 +410,6 @@ int process_global_flags(arg_list_t &arg_list)
 #ifdef __TCPLUSPLUS__
                        cout<<" with Borland Turbo C++ "<<(__TCPLUSPLUS__>>8)<<'.'<<((__TCPLUSPLUS__&255)>>4)<<'.'<<(__TCPLUSPLUS__&15);
 #endif
-
                        cout<<endl<<SYNFIG_COPYRIGHT<<endl;
                        cout<<endl;
                        return SYNFIGTOOL_HELP;
@@ -1125,6 +1124,7 @@ int main(int argc, char *argv[])
 
 #ifdef ENABLE_NLS
        bindtextdomain("synfig", LOCALEDIR);
+       bind_textdomain_codeset("synfig", "UTF-8");
        textdomain("synfig");
 #endif
 
@@ -1139,7 +1139,7 @@ int main(int argc, char *argv[])
 
        if(argc==1)
        {
-               display_help(0);
+               display_help(false);
                return SYNFIGTOOL_BLANK;
        }
 
@@ -1174,8 +1174,15 @@ int main(int argc, char *argv[])
                          return ret;
 
                        // Open the composition
-                       String errors;
-                       job_list.front().root=open_canvas(job_list.front().filename, errors);
+                       String errors, warnings;
+                       try
+                       {
+                               job_list.front().root=open_canvas(job_list.front().filename, errors, warnings);
+                       }
+                       catch(runtime_error x)
+                       {
+                               job_list.front().root = 0;
+                       }
 
                        if(!job_list.front().root)
                        {
@@ -1199,7 +1206,8 @@ int main(int argc, char *argv[])
                        {
                                try
                                {
-                                       job_list.front().canvas=job_list.front().root->find_canvas(canvasid);
+                                       String warnings;
+                                       job_list.front().canvas=job_list.front().root->find_canvas(canvasid, warnings);
                                }
                                catch(Exception::IDNotFound)
                                {
@@ -1235,8 +1243,8 @@ int main(int argc, char *argv[])
                                extract_append(imageargs,composite_file);
                                if(!composite_file.empty())
                                {
-                                       String errors;
-                                       Canvas::Handle composite(open_canvas(composite_file, errors));
+                                       String errors, warnings;
+                                       Canvas::Handle composite(open_canvas(composite_file, errors, warnings));
                                        if(!composite)
                                        {
                                                cerr<<_("Unable to append '")<<composite_file<<"'."<<endl;