aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/mem.c2
-rw-r--r--src/utils/slist.c2
-rw-r--r--src/utils/strings.c49
-rw-r--r--src/utils/trie.c2
-rw-r--r--src/utils/utils.h4
5 files changed, 46 insertions, 13 deletions
diff --git a/src/utils/mem.c b/src/utils/mem.c
index 7c5e0a2..693d555 100644
--- a/src/utils/mem.c
+++ b/src/utils/mem.c
@@ -1,6 +1,6 @@
/*
* blogc: A blog compiler.
- * Copyright (C) 2014-2015 Rafael G. Martins <rafael@rafaelmartins.eng.br>
+ * Copyright (C) 2014-2016 Rafael G. Martins <rafael@rafaelmartins.eng.br>
*
* This program can be distributed under the terms of the BSD License.
* See the file LICENSE.
diff --git a/src/utils/slist.c b/src/utils/slist.c
index 3d9b892..9753aa7 100644
--- a/src/utils/slist.c
+++ b/src/utils/slist.c
@@ -1,6 +1,6 @@
/*
* blogc: A blog compiler.
- * Copyright (C) 2014-2015 Rafael G. Martins <rafael@rafaelmartins.eng.br>
+ * Copyright (C) 2014-2016 Rafael G. Martins <rafael@rafaelmartins.eng.br>
*
* This program can be distributed under the terms of the BSD License.
* See the file LICENSE.
diff --git a/src/utils/strings.c b/src/utils/strings.c
index 40174a1..3151612 100644
--- a/src/utils/strings.c
+++ b/src/utils/strings.c
@@ -1,6 +1,6 @@
/*
* blogc: A blog compiler.
- * Copyright (C) 2014-2015 Rafael G. Martins <rafael@rafaelmartins.eng.br>
+ * Copyright (C) 2014-2016 Rafael G. Martins <rafael@rafaelmartins.eng.br>
*
* This program can be distributed under the terms of the BSD License.
* See the file LICENSE.
@@ -103,22 +103,46 @@ b_str_ends_with(const char *str, const char *suffix)
char*
-b_str_strip(char *str)
+b_str_lstrip(char *str)
{
if (str == NULL)
- return str;
+ return NULL;
+ int i;
+ size_t str_len = strlen(str);
+ for (i = 0; i < str_len; i++) {
+ if ((str[i] != ' ') && (str[i] != '\t') && (str[i] != '\n') &&
+ (str[i] != '\r') && (str[i] != '\t') && (str[i] != '\f') &&
+ (str[i] != '\v'))
+ {
+ str += i;
+ break;
+ }
+ if (i == str_len - 1) {
+ str += str_len;
+ break;
+ }
+ }
+ return str;
+}
+
+
+char*
+b_str_rstrip(char *str)
+{
+ if (str == NULL)
+ return NULL;
int i;
size_t str_len = strlen(str);
for (i = str_len - 1; i >= 0; i--) {
- if (!isspace(str[i])) {
+ if ((str[i] != ' ') && (str[i] != '\t') && (str[i] != '\n') &&
+ (str[i] != '\r') && (str[i] != '\t') && (str[i] != '\f') &&
+ (str[i] != '\v'))
+ {
str[i + 1] = '\0';
break;
}
- }
- str_len = strlen(str);
- for (i = 0; i < str_len; i++) {
- if (!isspace(str[i])) {
- str = str + i;
+ if (i == 0) {
+ str[0] = '\0';
break;
}
}
@@ -126,6 +150,13 @@ b_str_strip(char *str)
}
+char*
+b_str_strip(char *str)
+{
+ return b_str_lstrip(b_str_rstrip(str));
+}
+
+
char**
b_str_split(const char *str, char c, unsigned int max_pieces)
{
diff --git a/src/utils/trie.c b/src/utils/trie.c
index db64e1d..2e6a0d8 100644
--- a/src/utils/trie.c
+++ b/src/utils/trie.c
@@ -1,6 +1,6 @@
/*
* blogc: A blog compiler.
- * Copyright (C) 2014-2015 Rafael G. Martins <rafael@rafaelmartins.eng.br>
+ * Copyright (C) 2014-2016 Rafael G. Martins <rafael@rafaelmartins.eng.br>
*
* This program can be distributed under the terms of the BSD License.
* See the file LICENSE.
diff --git a/src/utils/utils.h b/src/utils/utils.h
index 5a1505b..dc67497 100644
--- a/src/utils/utils.h
+++ b/src/utils/utils.h
@@ -1,6 +1,6 @@
/*
* blogc: A blog compiler.
- * Copyright (C) 2014-2015 Rafael G. Martins <rafael@rafaelmartins.eng.br>
+ * Copyright (C) 2014-2016 Rafael G. Martins <rafael@rafaelmartins.eng.br>
*
* This program can be distributed under the terms of the BSD License.
* See the file LICENSE.
@@ -50,6 +50,8 @@ char* b_strdup_vprintf(const char *format, va_list ap);
char* b_strdup_printf(const char *format, ...);
bool b_str_starts_with(const char *str, const char *prefix);
bool b_str_ends_with(const char *str, const char *suffix);
+char* b_str_lstrip(char *str);
+char* b_str_rstrip(char *str);
char* b_str_strip(char *str);
char** b_str_split(const char *str, char c, unsigned int max_pieces);
char* b_str_replace(const char *str, const char search, const char *replace);