aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/output/raop_output_plugin.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/output/raop_output_plugin.c b/src/output/raop_output_plugin.c
index b46633dfd..f3c32382a 100644
--- a/src/output/raop_output_plugin.c
+++ b/src/output/raop_output_plugin.c
@@ -182,21 +182,22 @@ kd_lookup(struct key_data *kd, const char *key)
* return the number of deleted characters
*/
static int
-remove_char_from_string(char *str, char rc)
+remove_char_from_string(char *str, char c)
{
- int i = 0, j = 0, len;
- int num = 0;
- len = strlen(str);
- while (i < len) {
- if (str[i] == rc) {
- for (j = i; j < len; j++) str[j] = str[j + 1];
- len--;
- num++;
- } else {
- i++;
- }
- }
- return num;
+ char *src, *dst;
+
+ /* skip all characters that don't need to be copied */
+ src = strchr(str, c);
+ if (!src)
+ return 0;
+
+ for (dst = src; *src; src++)
+ if (*src != c)
+ *(dst++) = *src;
+
+ *dst = '\0';
+
+ return src - dst;
}
#define SLEEP_MSEC(val) usleep(val*1000)