diff options
| author | 2023-01-24 14:57:04 +0100 | |
|---|---|---|
| committer | 2023-01-24 14:57:04 +0100 | |
| commit | 4baf56c4ce2c02363ed04cf11c068c6cbffcf199 (patch) | |
| tree | eacfd0f3fb1df28963dff4f9987728f8d70882da | |
| parent | Updated RELEASE_NOTES. (diff) | |
| download | penes-snac2-4baf56c4ce2c02363ed04cf11c068c6cbffcf199.tar.gz penes-snac2-4baf56c4ce2c02363ed04cf11c068c6cbffcf199.tar.xz penes-snac2-4baf56c4ce2c02363ed04cf11c068c6cbffcf199.zip | |
Backport from xs.
| -rw-r--r-- | xs.h | 18 | ||||
| -rw-r--r-- | xs_version.h | 2 |
2 files changed, 14 insertions, 6 deletions
| @@ -76,7 +76,9 @@ d_char *xs_list_del(d_char *list, int num); | |||
| 76 | d_char *xs_list_insert(d_char *list, int num, const char *data); | 76 | d_char *xs_list_insert(d_char *list, int num, const char *data); |
| 77 | d_char *xs_list_insert_sorted(d_char *list, const char *str); | 77 | d_char *xs_list_insert_sorted(d_char *list, const char *str); |
| 78 | d_char *xs_list_set(d_char *list, int num, const char *data); | 78 | d_char *xs_list_set(d_char *list, int num, const char *data); |
| 79 | d_char *xs_list_pop(d_char *list, char **data); | 79 | d_char *xs_list_dequeue(d_char *list, char **data, int last); |
| 80 | #define xs_list_pop(list, data) xs_list_dequeue(list, data, 1) | ||
| 81 | #define xs_list_shift(list, data) xs_list_dequeue(list, data, 0) | ||
| 80 | int xs_list_in(char *list, const char *val); | 82 | int xs_list_in(char *list, const char *val); |
| 81 | d_char *xs_join(char *list, const char *sep); | 83 | d_char *xs_join(char *list, const char *sep); |
| 82 | d_char *xs_split_n(const char *str, const char *sep, int times); | 84 | d_char *xs_split_n(const char *str, const char *sep, int times); |
| @@ -665,13 +667,19 @@ d_char *xs_list_set(d_char *list, int num, const char *data) | |||
| 665 | } | 667 | } |
| 666 | 668 | ||
| 667 | 669 | ||
| 668 | d_char *xs_list_pop(d_char *list, char **data) | 670 | d_char *xs_list_dequeue(d_char *list, char **data, int last) |
| 669 | /* pops the last element from the list */ | 671 | /* gets a copy of the first or last element of a list, shrinking it */ |
| 670 | { | 672 | { |
| 671 | char *p = list, *v = NULL; | 673 | char *p = list, *v = NULL; |
| 672 | 674 | ||
| 673 | /* iterate to the end */ | 675 | if (!last) { |
| 674 | while (xs_list_iter(&p, &v)); | 676 | /* get the first */ |
| 677 | xs_list_iter(&p, &v); | ||
| 678 | } | ||
| 679 | else { | ||
| 680 | /* iterate to the end */ | ||
| 681 | while (xs_list_iter(&p, &v)); | ||
| 682 | } | ||
| 675 | 683 | ||
| 676 | if (v != NULL) { | 684 | if (v != NULL) { |
| 677 | *data = xs_dup(v); | 685 | *data = xs_dup(v); |
diff --git a/xs_version.h b/xs_version.h index 261706a..87a8874 100644 --- a/xs_version.h +++ b/xs_version.h | |||
| @@ -1 +1 @@ | |||
| /* 366ce5817597e9f4d735bced6b8c40ecc897608e */ | /* e8b70248081aa9086f64861bc85a67f390c41afb */ | ||