From 4a2a2250f9470e28e83c9e5db900e8ff71dfc416 Mon Sep 17 00:00:00 2001 From: AlexeyAB Date: Thu, 21 Jun 2018 02:42:39 +0300 Subject: [PATCH] Fixed removing escape symbols for command line arguments --- src/darknet.c | 2 +- src/utils.c | 14 ++++++++++++++ src/utils.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/darknet.c b/src/darknet.c index 39f9522a..f6d61c09 100644 --- a/src/darknet.c +++ b/src/darknet.c @@ -357,7 +357,7 @@ int main(int argc, char **argv) int i; for (i = 0; i < argc; ++i) { if (!argv[i]) continue; - strip(argv[i]); + strip_args(argv[i]); } //test_resize("data/bad.jpg"); diff --git a/src/utils.c b/src/utils.c index cafbeb5a..5dca2123 100644 --- a/src/utils.c +++ b/src/utils.c @@ -296,6 +296,20 @@ void strip(char *s) s[len-offset] = '\0'; } + +void strip_args(char *s) +{ + size_t i; + size_t len = strlen(s); + size_t offset = 0; + for (i = 0; i < len; ++i) { + char c = s[i]; + if (c == '\t' || c == '\n' || c == '\r' || c == 0x0d || c == 0x0a) ++offset; + else s[i - offset] = c; + } + s[len - offset] = '\0'; +} + void strip_char(char *s, char bad) { size_t i; diff --git a/src/utils.h b/src/utils.h index e2afba45..58cea936 100644 --- a/src/utils.h +++ b/src/utils.h @@ -45,6 +45,7 @@ void error(const char *s); void malloc_error(); void file_error(char *s); void strip(char *s); +void strip_args(char *s); void strip_char(char *s, char bad); void top_k(float *a, int n, int k, int *index); list *split_str(char *s, char delim);