X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=util%2Fstring-util.c;h=b0108811903b27153dcaece1fa10b893234c3b9f;hb=197d67959bf459fc0f1f63a202d162a569535bf3;hp=76c0b9025d0f535243ac7003d5316b22e7e53f17;hpb=f460ad4e9a2516b05162cc57c2d3b0e8b814b0c2;p=notmuch diff --git a/util/string-util.c b/util/string-util.c index 76c0b902..b0108811 100644 --- a/util/string-util.c +++ b/util/string-util.c @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Jani Nikula */ @@ -222,6 +222,19 @@ parse_boolean_term (void *ctx, const char *str, return -1; } +int +strcmp_null (const char *s1, const char *s2) +{ + if (s1 && s2) + return strcmp (s1, s2); + else if (! s1 && ! s2) + return 0; + else if (s1) + return 1; /* s1 (non-NULL) is greater than s2 (NULL) */ + else + return -1; /* s1 (NULL) is less than s2 (non-NULL) */ +} + int strcase_equal (const void *a, const void *b) { @@ -242,3 +255,16 @@ strcase_hash (const void *ptr) return hash; } + +void +strip_trailing (char *str, char ch) +{ + int i; + + for (i = strlen (str) - 1; i >= 0; i--) { + if (str[i] == ch) + str[i] = '\0'; + else + break; + } +}