diff options
author | Karel Klic <kklic@redhat.com> | 2009-11-12 15:27:35 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2009-11-12 15:27:35 +0100 |
commit | 43761c9351636628da1c37035fa2dcea523cfa80 (patch) | |
tree | dd444131dd32020f3cf12d018a48a814aee4cace /lib | |
parent | cb3c80e309ca3d679a381ec419ec8658a6109144 (diff) | |
parent | 9b5293641cdc39bb33b39f6773c0537700514f4e (diff) | |
download | abrt-43761c9351636628da1c37035fa2dcea523cfa80.tar.gz abrt-43761c9351636628da1c37035fa2dcea523cfa80.tar.xz abrt-43761c9351636628da1c37035fa2dcea523cfa80.zip |
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Plugins/RunApp.cpp | 33 | ||||
-rw-r--r-- | lib/Plugins/SOSreport.cpp | 32 | ||||
-rw-r--r-- | lib/Utils/Makefile.am | 1 | ||||
-rw-r--r-- | lib/Utils/stringops.cpp | 30 |
4 files changed, 34 insertions, 62 deletions
diff --git a/lib/Plugins/RunApp.cpp b/lib/Plugins/RunApp.cpp index f816dc23..e525d89c 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) diff --git a/lib/Plugins/SOSreport.cpp b/lib/Plugins/SOSreport.cpp index fedc51ab..b949339f 100644 --- a/lib/Plugins/SOSreport.cpp +++ b/lib/Plugins/SOSreport.cpp @@ -65,36 +65,6 @@ static std::string ParseFilename(const std::string& pOutput) return pOutput.substr(filename_start, filename_end - filename_start + 1); } -/* TODO: do not duplicate: RunApp.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 CActionSOSreport::Run(const char *pActionDir, const char *pArgs) { update_client(_("Executing SOSreport plugin...")); @@ -108,7 +78,7 @@ void CActionSOSreport::Run(const char *pActionDir, const char *pArgs) std::string command; vector_string_t args; - ParseArgs(pArgs, args); + parse_args(pArgs, args, '"'); if (args.size() == 0 || args[0] == "") { diff --git a/lib/Utils/Makefile.am b/lib/Utils/Makefile.am index 1b141bd7..0ca7a2b1 100644 --- a/lib/Utils/Makefile.am +++ b/lib/Utils/Makefile.am @@ -5,6 +5,7 @@ lib_LTLIBRARIES = libABRTUtils.la # xconnect.cpp libABRTUtils_la_SOURCES = \ + stringops.cpp \ xfuncs.cpp \ encbase64.cpp \ read_write.cpp \ diff --git a/lib/Utils/stringops.cpp b/lib/Utils/stringops.cpp new file mode 100644 index 00000000..73084fc1 --- /dev/null +++ b/lib/Utils/stringops.cpp @@ -0,0 +1,30 @@ +#include "abrtlib.h" + +void parse_args(const char *psArgs, vector_string_t& pArgs, const char quote) +{ + unsigned ii; + bool is_quote = false; + std::string item; + + for (ii = 0; psArgs[ii]; ii++) + { + if (quote != -1 && psArgs[ii] == quote) + { + 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); + } +} |