aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2014-01-05 15:59:45 +0800
committerLAN-TW <lantw44@gmail.com>2014-01-05 15:59:45 +0800
commit6808c5b02ac11441838362579549770910ddbdc6 (patch)
treefc1132003be1aa63def5211762e7fb94dc2bf965
parentc04d1f40df443d209dfedca03b2f4320b7b48ba7 (diff)
downloadl4basic-6808c5b02ac11441838362579549770910ddbdc6.tar
l4basic-6808c5b02ac11441838362579549770910ddbdc6.tar.gz
l4basic-6808c5b02ac11441838362579549770910ddbdc6.tar.bz2
l4basic-6808c5b02ac11441838362579549770910ddbdc6.tar.lz
l4basic-6808c5b02ac11441838362579549770910ddbdc6.tar.xz
l4basic-6808c5b02ac11441838362579549770910ddbdc6.tar.zst
l4basic-6808c5b02ac11441838362579549770910ddbdc6.zip
Do not ignore max argument when creating a LbsStrv
-rw-r--r--l4strv.c22
-rw-r--r--l4strv.h1
2 files changed, 18 insertions, 5 deletions
diff --git a/l4strv.c b/l4strv.c
index 26e9969..94f85c7 100644
--- a/l4strv.c
+++ b/l4strv.c
@@ -12,7 +12,7 @@ LbsStrv* lbs_strv_new_with_max (size_t max) {
return NULL;
}
- if (lbs_array_init (&strv->array, sizeof (LbsArray)) < 0) {
+ if (lbs_array_init_with_max (&strv->array, sizeof (LbsArray), max) < 0) {
free (strv);
return NULL;
}
@@ -23,7 +23,7 @@ LbsStrv* lbs_strv_new_with_max (size_t max) {
}
int lbs_strv_init_with_max (LbsStrv* strv, size_t max) {
- if (lbs_array_init (&strv->array, sizeof (LbsArray)) < 0) {
+ if (lbs_array_init_with_max (&strv->array, sizeof (LbsArray), max) < 0) {
return -1;
}
@@ -54,7 +54,7 @@ void lbs_strv_free_generic (void* strv_generic) {
return;
}
LbsStrv* strv = LBS_STRV (strv_generic);
- int i = 0;
+ size_t i = 0;
for (; i < lbs_strv_get_len (strv); i++) {
LbsArray* str_wrapper = lbs_strv_get_str_wrapper (strv, i);
lbs_array_unref (str_wrapper);
@@ -98,6 +98,18 @@ int lbs_strv_append_char (LbsStrv* strv, size_t stri, char chr) {
return lbs_array_append_data (str, &chr);
}
+int lbs_strv_append_str_empty (LbsStrv* strv) {
+ LbsArray str_struct, *str = &str_struct;
+ if (lbs_array_init (str, sizeof (char)) < 0) {
+ return -1;
+ }
+ if (lbs_array_append_data (&strv->array, &str_struct) < 0) {
+ lbs_array_unref (str);
+ return -1;
+ }
+ return 0;
+}
+
int lbs_strv_append_str (LbsStrv* strv, const char* bstr) {
if (bstr == NULL) {
return -1;
@@ -155,7 +167,7 @@ int lbs_strv_minimize (LbsStrv* strv) {
return -1;
}
- int i;
+ size_t i;
size_t len = lbs_strv_get_len (strv);
for (i = 0; i < len; i++) {
LbsArray* str = lbs_strv_get_str_wrapper (strv, i);
@@ -174,7 +186,7 @@ char** lbs_strv_copy_strv (LbsStrv* strv) {
return NULL;
}
- int i;
+ size_t i;
for (i = 0; i < len; i++) {
LbsArray* str = lbs_strv_get_str_wrapper (strv, i);
size_t str_len = lbs_array_get_len (str);
diff --git a/l4strv.h b/l4strv.h
index 1ce5cfc..588b66d 100644
--- a/l4strv.h
+++ b/l4strv.h
@@ -57,6 +57,7 @@ char* lbs_strv_dup_str (LbsStrv* strv, size_t stri);
(lbs_array_v (lbs_strv_get_str_wrapper (strv, stri), char, (chri)))
int lbs_strv_append_char (LbsStrv* strv, size_t stri, char chr);
+int lbs_strv_append_str_empty (LbsStrv* strv);
int lbs_strv_append_str (LbsStrv* strv, const char* bstr);
int lbs_strv_append_strv (LbsStrv* strv, const char* const* bstrv);
int lbs_strv_remove_str (LbsStrv* strv);