Skip to content

Commit

Permalink
Fix issue in str_splits
Browse files Browse the repository at this point in the history
  • Loading branch information
frang75 committed Apr 4, 2024
1 parent 579766a commit 845c4c0
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 21 deletions.
4 changes: 3 additions & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

### Improved

* `gui_text_t` properties in private API.
* `gui_text_t` properties in private API. [Commit](https://github.com/frang75/nappgui_src/commit/579766ab451eb445ce5013a93892261997137706).

* `str_splits()` adds a new `add_empty` parameters. [Issue](https://github.com/frang75/nappgui_src/issues/124). [Doc](https://nappgui.com/en/core/string.html#f52)

## v1.4.1 - Apr 3, 2024 (r4993)

Expand Down
2 changes: 1 addition & 1 deletion prj/build.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5004
5007
35 changes: 18 additions & 17 deletions src/core/strings.c
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@ bool_t str_split_trim(const char_t *str, const char_t *substr, String **left, St

/*---------------------------------------------------------------------------*/

ArrPt(String) *str_splits(const char_t *str, const char_t *substr, const bool_t trim)
ArrPt(String) *str_splits(const char_t *str, const char_t *substr, const bool_t trim, const bool_t add_empty)
{
ArrPt(String) *strs = arrpt_create(String);
cassert_no_null(str);
Expand All @@ -985,42 +985,43 @@ ArrPt(String) *str_splits(const char_t *str, const char_t *substr, const bool_t
else
sstr = str_cn(str, n);

if (str_empty(sstr) == TRUE)
str_destroy(&sstr);
else
if (str_empty(sstr) == FALSE || add_empty == TRUE)
arrpt_append(strs, sstr, String);
else
str_destroy(&sstr);

fstr += sn;
str = fstr;
fstr = blib_strstr(str, substr);
}

/* Compute the last string */
if (trim == TRUE)
{
String *sstr = str_trim(str);
if (str_empty(sstr) == TRUE)
str_destroy(&sstr);
String *sstr = NULL;
if (trim == TRUE)
sstr = str_trim(str);
else
sstr = str_c(str);

if (str_empty(sstr) == FALSE || add_empty == TRUE)
arrpt_append(strs, sstr, String);
}
else
{
if (str_empty_c(str) == FALSE)
{
String *sstr = str_c(str);
arrpt_append(strs, sstr, String);
}
else
str_destroy(&sstr);
}
}
else
{
String *sstr = NULL;

if (trim == TRUE)
sstr = str_trim(str);
else
sstr = str_c(str);
arrpt_append(strs, sstr, String);

if (str_empty(sstr) == FALSE || add_empty == TRUE)
arrpt_append(strs, sstr, String);
else
str_destroy(&sstr);
}

return strs;
Expand Down
2 changes: 1 addition & 1 deletion src/core/strings.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ _core_api bool_t str_split(const char_t *str, const char_t *substr, String **lef

_core_api bool_t str_split_trim(const char_t *str, const char_t *substr, String **left, String **right);

_core_api ArrPt(String) *str_splits(const char_t *str, const char_t *substr, const bool_t trim);
_core_api ArrPt(String) *str_splits(const char_t *str, const char_t *substr, const bool_t trim, const bool_t add_empty);

_core_api void str_split_pathname(const char_t *pathname, String **path, String **file);

Expand Down
2 changes: 1 addition & 1 deletion src/gui/tableview.c
Original file line number Diff line number Diff line change
Expand Up @@ -1774,7 +1774,7 @@ void tableview_header_title(TableView *view, const uint32_t column_id, const cha
column = arrst_get(data->columns, column_id, Column);
ltext = _gui_respack_text(text, &column->head_textid);
arrpt_destroy(&column->head_text, str_destroy, String);
column->head_text = str_splits(ltext, "\n", TRUE);
column->head_text = str_splits(ltext, "\n", TRUE, FALSE);
i_head_height(data);
view_update((View *)view);
}
Expand Down

0 comments on commit 845c4c0

Please sign in to comment.