diff options
| author | Dmitry Zhulanov <dmitry.zhulanov@gmail.com> | 2016-09-27 16:25:28 +0000 |
|---|---|---|
| committer | Dmitry Zhulanov <dmitry.zhulanov@gmail.com> | 2016-09-27 16:25:28 +0000 |
| commit | 2de5e2452a8cd319e195eb77099e5a3a8898c94f (patch) | |
| tree | 33d22f0481e687e4bdb5138ebdf377f2ee819675 /src/main-cmdlinexact.cpp | |
| parent | no need to FileQuit verb checking (diff) | |
| download | inkscape-2de5e2452a8cd319e195eb77099e5a3a8898c94f.tar.gz inkscape-2de5e2452a8cd319e195eb77099e5a3a8898c94f.zip | |
ignore additional arguments of x-verbs
(bzr r15136.1.6)
Diffstat (limited to 'src/main-cmdlinexact.cpp')
| -rw-r--r-- | src/main-cmdlinexact.cpp | 98 |
1 files changed, 64 insertions, 34 deletions
diff --git a/src/main-cmdlinexact.cpp b/src/main-cmdlinexact.cpp index 940abfca4..a498f8425 100644 --- a/src/main-cmdlinexact.cpp +++ b/src/main-cmdlinexact.cpp @@ -437,44 +437,74 @@ CmdLineXAction::createActionsFromYAML( gchar const *yaml_filename ) { int undo_counter = 0; verbs_list_t::iterator iter = verbs_list.begin(); - for( ; iter != verbs_list.end(); ++iter ) { + for (;iter != verbs_list.end(); ++iter) { verb_info_t &verb = *iter; std::string &verb_word = verb.args[0]; - if( s_verbose ) + if (s_verbose) printf("handle %s and args count is %d\n", verb_word.c_str(), (int)verb.args.size()); - if( verb.args.size() == 2 ) { - xaction_args_values_map_t values_map; - if (verb_word == "XFileSaveAs" || verb_word == "XFileOpen") { - std::string &filename = verb.args[1]; - values_map["filename"] = filename; - new CmdLineXAction(verb_word.c_str(), values_map); - } - else if (verb_word == "XUndoLabel") - undo_labels_map[verb.args[1]] = undo_counter; - else if (verb_word == "UndoToLabel") { - undo_labels_map_t::iterator iter = undo_labels_map.find(verb.args[1]); - if(iter != undo_labels_map.end()) { - int counter = undo_counter - iter->second; - if( counter > 0 ) { - for(int i = 0; i < counter; ++i) - new CmdLineAction(true, "EditUndo"); - undo_counter -= counter; - } - } - } - else if (verb_word == "XSelectElement") { - ++undo_counter; - values_map["element-id"] = verb.args[1]; - new CmdLineXAction(verb_word.c_str(), values_map); - } - else if (verb_word == "XFileExportPNG") { - std::string &png_filename = verb.args[1]; - values_map["png_filename"] = png_filename; - if(createDirForFilename( png_filename )) { - new CmdLineXAction(verb_word.c_str(), values_map); - } - } + if (verb_word == "XFileOpen") { + if( verb.args.size() < 2 ) + { + printf("bad arguments for XFileOpen\n"); + continue; + } + + xaction_args_values_map_t values_map; + values_map["filename"] = verb.args[1]; + new CmdLineXAction(verb_word.c_str(), values_map); + } else if (verb_word == "XFileSaveAs") + { + if (verb.args.size() < 2) { + printf("bad arguments for XFileSaveAs\n"); + continue; + } + + xaction_args_values_map_t values_map; + values_map["filename"] = verb.args[1]; + new CmdLineXAction(verb_word.c_str(), values_map); + } else if (verb_word == "XUndoLabel") { + if (verb.args.size() < 2) { + printf("bad arguments for XUndoLabel\n"); + continue; + } + undo_labels_map[verb.args[1]] = undo_counter; + } else if (verb_word == "UndoToLabel") { + if (verb.args.size() < 2) { + printf("bad arguments for UndoToLabel\n"); + continue; + } + + undo_labels_map_t::iterator iter = undo_labels_map.find(verb.args[1]); + if(iter != undo_labels_map.end()) { + int counter = undo_counter - iter->second; + if( counter > 0 ) { + for(int i = 0; i < counter; ++i) + new CmdLineAction(true, "EditUndo"); + undo_counter -= counter; + } + } + } else if (verb_word == "XSelectElement") { + if (verb.args.size() < 2) { + printf("bad arguments for XSelectElement\n"); + continue; + } + ++undo_counter; + + xaction_args_values_map_t values_map; + values_map["element-id"] = verb.args[1]; + new CmdLineXAction(verb_word.c_str(), values_map); + } else if (verb_word == "XFileExportPNG") { + if (verb.args.size() < 2) { + printf("bad arguments for XFileExportPNG\n"); + continue; + } + + xaction_args_values_map_t values_map; + std::string &png_filename = verb.args[1]; + values_map["png_filename"] = png_filename; + if(createDirForFilename( png_filename )) + new CmdLineXAction(verb_word.c_str(), values_map); } else if(!verb.xverb) { ++undo_counter; |
