Moved quote stripper to common, added tests

This commit is contained in:
James Booth
2015-02-08 20:59:51 +00:00
parent 236e508cd8
commit 44c5b34a71
6 changed files with 79 additions and 27 deletions

View File

@@ -566,3 +566,25 @@ get_file_or_linked(char *loc, char *basedir)
return true_loc;
}
char *
strip_arg_quotes(const char * const input)
{
char *unquoted = strdup(input);
// Remove starting quote if it exists
if(strchr(unquoted, '"') != NULL) {
if(strchr(unquoted, ' ') + 1 == strchr(unquoted, '"')) {
memmove(strchr(unquoted, '"'), strchr(unquoted, '"')+1, strchr(unquoted, '\0') - strchr(unquoted, '"'));
}
}
// Remove ending quote if it exists
if(strchr(unquoted, '"') != NULL) {
if(strchr(unquoted, '\0') - 1 == strchr(unquoted, '"')) {
memmove(strchr(unquoted, '"'), strchr(unquoted, '"')+1, strchr(unquoted, '\0') - strchr(unquoted, '"'));
}
}
return unquoted;
}