X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Ftool%2Fmain.cpp;h=59985cb001b78d55f1edef1a0d19732284bb12a0;hb=2faf3310778c102003b3408b24fcc7968a854a4b;hp=eb609c553f773f018fa02a73af6023fa14041a17;hpb=e8a065f2385c219c511b57dac52786120bfa097d;p=synfig.git diff --git a/synfig-core/trunk/src/tool/main.cpp b/synfig-core/trunk/src/tool/main.cpp index eb609c5..59985cb 100644 --- a/synfig-core/trunk/src/tool/main.cpp +++ b/synfig-core/trunk/src/tool/main.cpp @@ -1,5 +1,5 @@ /* === S Y N F I G ========================================================= */ -/*! \file main.cpp +/*! \file tool/main.cpp ** \brief SYNFIG Tool ** ** $Id: main.cpp,v 1.9 2005/01/23 04:41:10 darco Exp $ @@ -62,12 +62,13 @@ enum exit_code SYNFIGTOOL_FILENOTFOUND =1, SYNFIGTOOL_BORRED =2, SYNFIGTOOL_HELP =3, - SYNFIGTOOL_UNKNOWNARGUMENT =4, - SYNFIGTOOL_UNKNOWNERROR =5, - SYNFIGTOOL_INVALIDTARGET =6, - SYNFIGTOOL_RENDERFAILURE =7, + SYNFIGTOOL_UNKNOWNARGUMENT =4, + SYNFIGTOOL_UNKNOWNERROR =5, + SYNFIGTOOL_INVALIDTARGET =6, + SYNFIGTOOL_RENDERFAILURE =7, SYNFIGTOOL_BLANK =8, - SYNFIGTOOL_BADVERSION =9 + SYNFIGTOOL_BADVERSION =9, + SYNFIGTOOL_MISSINGARGUMENT =10 }; #ifndef VERSION @@ -94,11 +95,11 @@ bool print_benchmarks=false; class Progress : public synfig::ProgressCallback { const char *program; - + public: - + Progress(const char *name):program(name) { } - + virtual bool task(const String &task) { @@ -130,16 +131,16 @@ public: class RenderProgress : public synfig::ProgressCallback { string taskname; - + etl::clock clk; int clk_scanline; // The scanline at which the clock was reset etl::clock clk2; - float last_time; + float last_time; public: - - RenderProgress():clk_scanline(0) { } - + + RenderProgress():clk_scanline(0), last_time(0) { } + virtual bool task(const String &thetask) { @@ -177,7 +178,7 @@ public: if(clk2()<0.2) return true; clk2.reset(); - + if(scanline) seconds=(int)time+1; else @@ -186,7 +187,7 @@ public: clk.reset(); clk_scanline=scanline; } - + if(seconds<0) { clk.reset(); @@ -201,7 +202,7 @@ public: days++,hours-=24; while(days>=7) weeks++,days-=7; - + cerr<first<first<first<begin() != '-') @@ -565,12 +566,16 @@ int extract_arg_cluster(arg_list_t &arg_list,arg_list_t &cluster) cluster.push_back(*iter); arg_list.erase(iter); iter=next++; + if (iter==arg_list.end()) { + error("The `%s' flag requires a value. Use --help for a list of options.", cluster.back().c_str()); + return SYNFIGTOOL_MISSINGARGUMENT; + } } - + cluster.push_back(*iter); arg_list.erase(iter); } - + return SYNFIGTOOL_OK; } @@ -588,14 +593,14 @@ int extract_RendDesc(arg_list_t &arg_list,RendDesc &desc) w=atoi(iter->c_str()); arg_list.erase(iter); } - if(*iter=="-h") + else if(*iter=="-h") { arg_list.erase(iter); iter=next++; h=atoi(iter->c_str()); arg_list.erase(iter); } - if(*iter=="-a") + else if(*iter=="-a") { int a; arg_list.erase(iter); @@ -605,7 +610,7 @@ int extract_RendDesc(arg_list_t &arg_list,RendDesc &desc) VERBOSE_OUT(1)<set_time(0); - + string canvasid; extract_canvasid(imageargs,canvasid); if(!canvasid.empty()) @@ -899,7 +907,7 @@ int main(int argc, char *argv[]) cerr<<_("Throwing out job...")<rend_desc()); extract_target(imageargs,target_name); extract_threads(imageargs,threads); @@ -941,9 +949,9 @@ int main(int argc, char *argv[]) VERBOSE_OUT(2)<<_("Appended contents of ")<set_canvas(job_list.front().canvas); - VERBOSE_OUT(4)<<_("Setting the quality of the target...")<set_quality(job_list.front().quality); } - + // Set the threads for the target if(job_list.front().target && Target_Scanline::Handle::cast_dynamic(job_list.front().target)) { Target_Scanline::Handle::cast_dynamic(job_list.front().target)->set_threads(threads); } - + if(imageargs.size()) { cerr<<_("Unidentified arguments for ")< "+job_list.front().outfilename); if(!job_list.front().sifout) @@ -1094,10 +1102,10 @@ int main(int argc, char *argv[]) } } } - + job_list.clear(); - + VERBOSE_OUT(1)<<_("Done.")<