X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Ftool%2Fmain.cpp;h=22f5a9847eb0bdf7f5a8fe49fe8fdb4f1f2b7cdc;hb=2dc2a206a800705cce91751de1ec3127c2ac2397;hp=63a387c3a719954e304eb1576bafe1d9e295c2d1;hpb=4b2b2d6fe6736b8f1a0dc4fccea71ad4e39d89d1;p=synfig.git diff --git a/synfig-core/trunk/src/tool/main.cpp b/synfig-core/trunk/src/tool/main.cpp index 63a387c..22f5a98 100644 --- a/synfig-core/trunk/src/tool/main.cpp +++ b/synfig-core/trunk/src/tool/main.cpp @@ -520,6 +520,15 @@ int process_global_flags(arg_list_t &arg_list) return SYNFIGTOOL_OK; } +/* true if the given flag takes an extra parameter */ +bool flag_requires_value(String flag) { + return (flag=="-a" || flag=="-c" || flag=="-g" || flag=="-h" || flag=="-o" || + flag=="-Q" || flag=="-s" || flag=="-t" || flag=="-T" || flag=="-w" || + flag=="--append" || flag=="--begin-time" || flag=="--dpi" || flag=="--dpi-x" || + flag=="--dpi-y" || flag=="--end-frame" || flag=="--end-time" || flag=="--fps" || + flag=="--frame" || flag=="--start-frame" || flag=="--start-time" || flag=="--time" ); +} + int extract_arg_cluster(arg_list_t &arg_list,arg_list_t &cluster) { arg_list_t::iterator iter, next; @@ -532,29 +541,7 @@ int extract_arg_cluster(arg_list_t &arg_list,arg_list_t &cluster) return SYNFIGTOOL_OK; } - if( - *iter=="-t" || - *iter=="-w" || - *iter=="-h" || - *iter=="-a" || - *iter=="-g" || - *iter=="-o" || - *iter=="-s" || - *iter=="-Q" || - *iter=="-c" || - *iter=="--fps" || - *iter=="--start-time" || - *iter=="--begin-time" || - *iter=="--end-time" || - *iter=="--start-frame" || - *iter=="--end-frame" || - *iter=="--time" || - *iter=="--frame" || - *iter=="--dpi" || - *iter=="--dpi-x" || - *iter=="--dpi-y" || - *iter=="--append" || - *iter=="-T" ) + if (flag_requires_value(*iter)) { cluster.push_back(*iter); arg_list.erase(iter); @@ -680,6 +667,8 @@ int extract_RendDesc(arg_list_t &arg_list,RendDesc &desc) //desc.set_gamma(Gamma(atof(iter->c_str()))); arg_list.erase(iter); } + else if (flag_requires_value(*iter)) + iter=next++; } if(w&&h) { @@ -717,6 +706,8 @@ int extract_quality(arg_list_t &arg_list,int &quality) VERBOSE_OUT(1)<