Commit f9218423 authored by Max Kellermann's avatar Max Kellermann

utils: renamed stringFoundInStringArray()

No CamelCase. Use bool instead of int. Make both arguments mandatory.
parent ba34d48c
...@@ -60,7 +60,8 @@ archive_plugin_from_suffix(const char *suffix) ...@@ -60,7 +60,8 @@ archive_plugin_from_suffix(const char *suffix)
for (i=0; i < num_archive_plugins; ++i) { for (i=0; i < num_archive_plugins; ++i) {
const struct archive_plugin *plugin = archive_plugins[i]; const struct archive_plugin *plugin = archive_plugins[i];
if (archive_plugins_enabled[i] && if (archive_plugins_enabled[i] &&
stringFoundInStringArray(plugin->suffixes, suffix)) { plugin->suffixes != NULL &&
string_array_contains(plugin->suffixes, suffix)) {
++i; ++i;
return plugin; return plugin;
} }
......
...@@ -96,16 +96,6 @@ static struct config_entry config_entries[] = { ...@@ -96,16 +96,6 @@ static struct config_entry config_entries[] = {
}; };
static bool static bool
string_array_contains(const char *const* array, const char *value)
{
for (const char *const* x = array; *x; x++)
if (g_ascii_strcasecmp(*x, value) == 0)
return true;
return false;
}
static bool
get_bool(const char *value, bool *value_r) get_bool(const char *value, bool *value_r)
{ {
static const char *t[] = { "yes", "true", "1", NULL }; static const char *t[] = { "yes", "true", "1", NULL };
......
...@@ -118,8 +118,8 @@ decoder_plugin_from_suffix(const char *suffix, unsigned int next) ...@@ -118,8 +118,8 @@ decoder_plugin_from_suffix(const char *suffix, unsigned int next)
i = 0; i = 0;
for (; i < num_decoder_plugins; ++i) { for (; i < num_decoder_plugins; ++i) {
const struct decoder_plugin *plugin = decoder_plugins[i]; const struct decoder_plugin *plugin = decoder_plugins[i];
if (decoder_plugins_enabled[i] && if (decoder_plugins_enabled[i] && plugin->suffixes != NULL &&
stringFoundInStringArray(plugin->suffixes, suffix)) { string_array_contains(plugin->suffixes, suffix)) {
++i; ++i;
return plugin; return plugin;
} }
...@@ -140,8 +140,8 @@ decoder_plugin_from_mime_type(const char *mimeType, unsigned int next) ...@@ -140,8 +140,8 @@ decoder_plugin_from_mime_type(const char *mimeType, unsigned int next)
i = 0; i = 0;
for (; i < num_decoder_plugins; ++i) { for (; i < num_decoder_plugins; ++i) {
const struct decoder_plugin *plugin = decoder_plugins[i]; const struct decoder_plugin *plugin = decoder_plugins[i];
if (decoder_plugins_enabled[i] && if (decoder_plugins_enabled[i] && plugin->mime_types != NULL &&
stringFoundInStringArray(plugin->mime_types, mimeType)) { string_array_contains(plugin->mime_types, mimeType)) {
++i; ++i;
return plugin; return plugin;
} }
......
...@@ -119,8 +119,8 @@ playlist_list_open_uri(const char *uri) ...@@ -119,8 +119,8 @@ playlist_list_open_uri(const char *uri)
for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) {
const struct playlist_plugin *plugin = playlist_plugins[i]; const struct playlist_plugin *plugin = playlist_plugins[i];
if (playlist_plugins_enabled[i] && if (playlist_plugins_enabled[i] && plugin->schemes != NULL &&
stringFoundInStringArray(plugin->schemes, scheme)) { string_array_contains(plugin->schemes, scheme)) {
playlist = playlist_plugin_open_uri(plugin, uri); playlist = playlist_plugin_open_uri(plugin, uri);
if (playlist != NULL) if (playlist != NULL)
break; break;
...@@ -143,7 +143,8 @@ playlist_list_open_stream_mime(struct input_stream *is) ...@@ -143,7 +143,8 @@ playlist_list_open_stream_mime(struct input_stream *is)
const struct playlist_plugin *plugin = playlist_plugins[i]; const struct playlist_plugin *plugin = playlist_plugins[i];
if (playlist_plugins_enabled[i] && if (playlist_plugins_enabled[i] &&
stringFoundInStringArray(plugin->mime_types, is->mime)) { plugin->mime_types != NULL &&
string_array_contains(plugin->mime_types, is->mime)) {
/* rewind the stream, so each plugin gets a /* rewind the stream, so each plugin gets a
fresh start */ fresh start */
input_stream_seek(is, 0, SEEK_SET); input_stream_seek(is, 0, SEEK_SET);
...@@ -168,8 +169,8 @@ playlist_list_open_stream_suffix(struct input_stream *is, const char *suffix) ...@@ -168,8 +169,8 @@ playlist_list_open_stream_suffix(struct input_stream *is, const char *suffix)
for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) {
const struct playlist_plugin *plugin = playlist_plugins[i]; const struct playlist_plugin *plugin = playlist_plugins[i];
if (playlist_plugins_enabled[i] && if (playlist_plugins_enabled[i] && plugin->suffixes != NULL &&
stringFoundInStringArray(plugin->suffixes, suffix)) { string_array_contains(plugin->suffixes, suffix)) {
/* rewind the stream, so each plugin gets a /* rewind the stream, so each plugin gets a
fresh start */ fresh start */
input_stream_seek(is, 0, SEEK_SET); input_stream_seek(is, 0, SEEK_SET);
...@@ -213,8 +214,8 @@ playlist_suffix_supported(const char *suffix) ...@@ -213,8 +214,8 @@ playlist_suffix_supported(const char *suffix)
for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) {
const struct playlist_plugin *plugin = playlist_plugins[i]; const struct playlist_plugin *plugin = playlist_plugins[i];
if (playlist_plugins_enabled[i] && if (playlist_plugins_enabled[i] && plugin->suffixes != NULL &&
stringFoundInStringArray(plugin->suffixes, suffix)) string_array_contains(plugin->suffixes, suffix))
return true; return true;
} }
......
...@@ -132,13 +132,15 @@ int set_nonblocking(int fd) ...@@ -132,13 +132,15 @@ int set_nonblocking(int fd)
#endif #endif
} }
int stringFoundInStringArray(const char *const*array, const char *suffix) bool
string_array_contains(const char *const* haystack, const char *needle)
{ {
while (array && *array) { assert(haystack != NULL);
if (g_ascii_strcasecmp(*array, suffix) == 0) assert(needle != NULL);
return 1;
array++; for (; *haystack != NULL; ++haystack)
} if (g_ascii_strcasecmp(*haystack, needle) == 0)
return true;
return 0; return false;
} }
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
#ifndef MPD_UTILS_H #ifndef MPD_UTILS_H
#define MPD_UTILS_H #define MPD_UTILS_H
#include <stdbool.h>
#ifndef assert_static #ifndef assert_static
/* Compile time assertion developed by Ralf Holly */ /* Compile time assertion developed by Ralf Holly */
/* http://pera-software.com/articles/compile-time-assertions.pdf */ /* http://pera-software.com/articles/compile-time-assertions.pdf */
...@@ -33,6 +35,15 @@ char *parsePath(char *path); ...@@ -33,6 +35,15 @@ char *parsePath(char *path);
int set_nonblocking(int fd); int set_nonblocking(int fd);
int stringFoundInStringArray(const char *const*array, const char *suffix); /**
* Checks whether a string array contains the specified string.
*
* @param haystack a NULL terminated list of strings
* @param needle the string to search for; the comparison is
* case-insensitive for ASCII characters
* @return true if found
*/
bool
string_array_contains(const char *const* haystack, const char *needle);
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment