From 2707930a0c1a2f4642a0f9371b6674d0b23d1b67 Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Thu, 12 Nov 2009 13:18:27 +0100 Subject: Factored ParseArg --- lib/Plugins/RunApp.cpp | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) (limited to 'lib/Plugins/RunApp.cpp') diff --git a/lib/Plugins/RunApp.cpp b/lib/Plugins/RunApp.cpp index f816dc2..e525d89 100644 --- a/lib/Plugins/RunApp.cpp +++ b/lib/Plugins/RunApp.cpp @@ -25,40 +25,11 @@ #include "DebugDump.h" #include "ABRTException.h" #include "CommLayerInner.h" +#include "abrtlib.h" #define COMMAND 0 #define FILENAME 1 -/* TODO: do not duplicate: SOSreport.cpp has same function too */ -static void ParseArgs(const char *psArgs, vector_string_t& pArgs) -{ - unsigned ii; - bool is_quote = false; - std::string item; - - for (ii = 0; psArgs[ii]; ii++) - { - if (psArgs[ii] == '"') - { - is_quote = !is_quote; - } - else if (psArgs[ii] == ',' && !is_quote) - { - pArgs.push_back(item); - item.clear(); - } - else - { - item += psArgs[ii]; - } - } - - if (item.size() != 0) - { - pArgs.push_back(item); - } -} - void CActionRunApp::Run(const char *pActionDir, const char *pArgs) { update_client(_("Executing RunApp plugin...")); @@ -66,7 +37,7 @@ void CActionRunApp::Run(const char *pActionDir, const char *pArgs) std::string output; vector_string_t args; - ParseArgs(pArgs, args); + parse_args(pArgs, args, '"'); FILE *fp = popen(args[COMMAND].c_str(), "r"); if (fp == NULL) -- cgit