summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/RunApp.cpp
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-11-12 16:58:07 +0100
committerKarel Klic <kklic@redhat.com>2009-11-12 16:58:07 +0100
commit32cee84a34c005fe0d2863f439007ec633687fa8 (patch)
tree149ca7014e4295de3788f28ae88e9d9d7003da46 /lib/Plugins/RunApp.cpp
parent5a8a8a6c99c9067e0dfcce839c32826a2badff0b (diff)
parent3938e6e075867ae3a349ba307ee672aa458d2662 (diff)
downloadabrt-32cee84a34c005fe0d2863f439007ec633687fa8.tar.gz
abrt-32cee84a34c005fe0d2863f439007ec633687fa8.tar.xz
abrt-32cee84a34c005fe0d2863f439007ec633687fa8.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'lib/Plugins/RunApp.cpp')
-rw-r--r--lib/Plugins/RunApp.cpp33
1 files changed, 2 insertions, 31 deletions
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)