const char *__char_list = " \t\n\r\x0B";
char white_char[256] = { 1, 0 };
- if (!s)
+ if (not s)
return;
- if (!char_list) {
+ if (not char_list) {
while (*__char_list) {
white_char[(unsigned char) *__char_list++] = 1;
}
const char *__char_list = " \t\n\r\x0B";
char white_char[256] = { 1, 0 };
- if (!s)
+ if (not s)
return;
- if (!char_list) {
+ if (not char_list) {
while (*__char_list) {
white_char[(unsigned char) *__char_list++] = 1;
}
*/
void xbt_str_trim(char *s, const char *char_list)
{
- if (!s)
+ if (not s)
return;
xbt_str_rtrim(s, char_list);
/* check what are the separators */
memset(is_sep, 0, sizeof(is_sep));
- if (!sep) {
+ if (not sep) {
while (*sep_dflt)
is_sep[(unsigned char) *sep_dflt++] = 1;
} else {
if (s[0] == '\0')
return res;
- while (!done) {
+ while (not done) {
char *topush;
- while (!is_sep[(unsigned char) *q]) {
+ while (not is_sep[(unsigned char)*q]) {
q++;
}
if (*q == '\0')
/**
* \brief This functions splits a string after using another string as separator
- * For example A!!B!!C split after !! will return the dynar {A,B,C}
+ * For example Anot not B!not C split after !! will return the dynar {A,B,C}
* \return An array of dynars containing the string tokens
*/
xbt_dynar_t xbt_str_split_str(const char *s, const char *sep)
return res;
}
- while (!done) {
+ while (not done) {
char *to_push;
- int v = 0;
// get the start of the first occurrence of the substring
q = strstr(p, sep);
//if substring was not found add the entire string
if (nullptr == q) {
- v = strlen(p);
+ int v = strlen(p);
to_push = (char*) xbt_malloc(v + 1);
memcpy(to_push, p, v);
to_push[v] = '\0';
/* do not trim leading spaces: caller responsibility to clean his cruft */
end = beg;
- while (!done) {
+ while (not done) {
switch (*end) {
case '\\':
ctn = 1;
break;
case '\'':
ctn = 1;
- if (!in_double_quote) {
- in_simple_quote = !in_simple_quote;
+ if (not in_double_quote) {
+ in_simple_quote = not in_simple_quote;
memmove(end, end + 1, strlen(end));
} else {
/* simple quote protected by double ones */
break;
case '"':
ctn = 1;
- if (!in_simple_quote) {
- in_double_quote = !in_double_quote;
+ if (not in_simple_quote) {
+ in_double_quote = not in_double_quote;
memmove(end, end + 1, strlen(end));
} else {
/* double quote protected by simple ones */
/** @brief Join a set of strings as a single string */
char *xbt_str_join(xbt_dynar_t dyn, const char *sep)
{
- int len = 1, dyn_len = xbt_dynar_length(dyn);
+ int len = 1;
+ int dyn_len = xbt_dynar_length(dyn);
unsigned int cpt;
char* cursor;
- if (!dyn_len)
+ if (not dyn_len)
return xbt_strdup("");
/* compute the length */
int amount_strings=0;
int len=0;
- if ((!strs) || (!strs[0]))
+ if ((not strs) || (not strs[0]))
return xbt_strdup("");
/* compute the length before malloc */
XBT_TEST_SUITE("xbt_str", "String Handling");
-#define mytest(name, input, expected) \
- xbt_test_add(name); \
- d=xbt_str_split_quoted(input); \
- s=xbt_str_join(d,"XXX"); \
- xbt_test_assert(!strcmp(s,expected),\
- "Input (%s) leads to (%s) instead of (%s)", \
- input,s,expected);\
- free(s); \
- xbt_dynar_free(&d);
+#define mytest(name, input, expected) \
+ xbt_test_add(name); \
+ d = xbt_str_split_quoted(input); \
+ s = xbt_str_join(d, "XXX"); \
+ xbt_test_assert(not strcmp(s, expected), "Input (%s) leads to (%s) instead of (%s)", input, s, expected); \
+ free(s); \
+ xbt_dynar_free(&d);
XBT_TEST_UNIT("xbt_str_split_quoted", test_split_quoted, "test the function xbt_str_split_quoted")
{
xbt_dynar_t d;
mytest("Backslashed quotes + quotes", "'toto \\'tutu' tata", "toto 'tutuXXXtata");
}
-#define mytest_str(name, input, separator, expected) \
- xbt_test_add(name); \
- d=xbt_str_split_str(input, separator); \
- s=xbt_str_join(d,"XXX"); \
- xbt_test_assert(!strcmp(s,expected),\
- "Input (%s) leads to (%s) instead of (%s)", \
- input,s,expected);\
- free(s); \
- xbt_dynar_free(&d);
+#define mytest_str(name, input, separator, expected) \
+ xbt_test_add(name); \
+ d = xbt_str_split_str(input, separator); \
+ s = xbt_str_join(d, "XXX"); \
+ xbt_test_assert(not strcmp(s, expected), "Input (%s) leads to (%s) instead of (%s)", input, s, expected); \
+ free(s); \
+ xbt_dynar_free(&d);
XBT_TEST_UNIT("xbt_str_split_str", test_split_str, "test the function xbt_str_split_str")
{