From 47ab9a9c9411f14bb95da9bfb97a943e1c531c48 Mon Sep 17 00:00:00 2001 From: dequis Date: Fri, 27 Nov 2015 20:42:00 -0300 Subject: misc.c: Add a str_reject_chars function, use it in otr_filter_colors --- lib/misc.c | 16 ++++++++++++++++ lib/misc.h | 1 + 2 files changed, 17 insertions(+) (limited to 'lib') diff --git a/lib/misc.c b/lib/misc.c index 9384ac4c..1c93f65a 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -770,3 +770,19 @@ gboolean parse_int64(char *string, int base, guint64 *number) return TRUE; } +/* Filters all the characters in 'blacklist' replacing them with 'replacement'. + * Modifies the string in-place and returns the string itself. + * For the opposite, use g_strcanon() */ +char *str_reject_chars(char *string, const char *reject, char replacement) +{ + char *c = string; + + while (*c) { + c += strcspn(c, reject); + if (*c) { + *c = replacement; + } + } + + return string; +} diff --git a/lib/misc.h b/lib/misc.h index 68b63155..73f71e85 100644 --- a/lib/misc.h +++ b/lib/misc.h @@ -149,5 +149,6 @@ G_MODULE_EXPORT char **split_command_parts(char *command, int limit); G_MODULE_EXPORT char *get_rfc822_header(const char *text, const char *header, int len); G_MODULE_EXPORT int truncate_utf8(char *string, int maxlen); G_MODULE_EXPORT gboolean parse_int64(char *string, int base, guint64 *number); +G_MODULE_EXPORT char *str_reject_chars(char *string, const char *reject, char replacement); #endif -- cgit v1.2.3