***************************************************************************/
#include "cliparser.h"
+#include <QDir>
#include <QString>
#include <QFileInfo>
#include <QDebug>
bool CliParser::addLongArg(const CliParserArg::CliArgType type, const QString &name, const QString &value) {
if(argsHash.contains(name)){
if(type == CliParserArg::CliArgOption && argsHash.value(name).type == type) {
- argsHash[name].value = value;
+ argsHash[name].value = escapedValue(value);
return true;
}
else if (type == CliParserArg::CliArgSwitch && argsHash.value(name).type == type) {
QString longName = lnameOfShortArg(shortName);
if(!longName.isNull()) {
if(type == CliParserArg::CliArgOption && argsHash.value(longName).type == type) {
- argsHash[longName].value = value;
+ argsHash[longName].value = escapedValue(value);
return true;
}
else if (type == CliParserArg::CliArgSwitch) {
return false;
}
+QString CliParser::escapedValue(const QString &value) {
+ QString escapedValue = value;
+ if(escapedValue.startsWith("~"))
+ escapedValue.replace(0, 1, QDir::homePath());
+
+ return escapedValue;
+}
+
bool CliParser::parse() {
QStringList::const_iterator currentArg;
for (currentArg = argsRaw.constBegin(); currentArg != argsRaw.constEnd(); ++currentArg) {