From a0bbf78a3dd0f9e9a78d511769311c0a7cdc7365 Mon Sep 17 00:00:00 2001 From: Jeesun Kim Date: Tue, 27 Dec 2016 19:58:06 +0900 Subject: [PATCH] add delimiters as \n(line feed) Change-Id: Ibc40dbb737de13f002cd46a977f2007ddc4f7154 --- server/ctsvc_utils_string.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/server/ctsvc_utils_string.c b/server/ctsvc_utils_string.c index b2211f0..2245134 100644 --- a/server/ctsvc_utils_string.c +++ b/server/ctsvc_utils_string.c @@ -484,17 +484,26 @@ static bool _get_modified_number(char *temp, char *keyword, int *out_len_keyword return true; } -static char *_strchr_with_nth(char *end_pointer, char *s, int c, int nth) +static char *_strchr_with_nth(char *end_pointer, char *s, char *delimiters, int nth) { + RETV_IF(NULL == delimiters, s); + RETV_IF('\0' == *delimiters, s); + + int i; char *cursor = s; + int len_delimiters = strlen(delimiters); + while (*cursor) { if (end_pointer <= cursor) { ERR("over end"); return end_pointer; } - if (*cursor == c) - nth--; - + for (i = 0; i < len_delimiters; i++) { + if (*cursor == delimiters[i]) { + nth--; + break; + } + } if (nth < 0) break; @@ -503,9 +512,15 @@ static char *_strchr_with_nth(char *end_pointer, char *s, int c, int nth) return cursor; } -static char *_strrchr_with_nth(char *start_pointer, char *s, int c, int nth) +static char *_strrchr_with_nth(char *start_pointer, char *s, char *delimiters, int nth) { + RETV_IF(NULL == delimiters, s); + RETV_IF('\0' == *delimiters, s); + + int i; char *cursor = s; + int len_delimiters = strlen(delimiters); + while (*cursor) { if (cursor <= start_pointer) { /* LCOV_EXCL_START */ @@ -513,9 +528,12 @@ static char *_strrchr_with_nth(char *start_pointer, char *s, int c, int nth) return start_pointer; /* LCOV_EXCL_STOP */ } - if (*cursor == c) - nth--; - + for (i = 0; i < len_delimiters; i++) { + if (*cursor == delimiters[i]) { + nth--; + break; + } + } if (nth < 0) break; @@ -611,9 +629,9 @@ char *ctsvc_utils_get_modified_str(char *temp, bool is_snippet, const char *keyw return mod_temp; char *cursor = NULL; - cursor = _strchr_with_nth(mod_temp + len_full, keyword_start, ' ', token_number); + cursor = _strchr_with_nth(mod_temp + len_full, keyword_start, " \n", token_number); *cursor = '\0'; - cursor = _strrchr_with_nth(mod_temp, keyword_start, ' ', token_number); + cursor = _strrchr_with_nth(mod_temp, keyword_start, " \n", token_number); memcpy(mod_temp, cursor, len_full); return mod_temp; -- 2.7.4