utils: renamed stringFoundInStringArray()
No CamelCase. Use bool instead of int. Make both arguments mandatory.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
10
src/conf.c
10
src/conf.c
@@ -95,16 +95,6 @@ static struct config_entry config_entries[] = {
|
|||||||
{ .name = "filter", true, true },
|
{ .name = "filter", true, true },
|
||||||
};
|
};
|
||||||
|
|
||||||
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
|
static bool
|
||||||
get_bool(const char *value, bool *value_r)
|
get_bool(const char *value, bool *value_r)
|
||||||
{
|
{
|
||||||
|
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
src/utils.c
16
src/utils.c
@@ -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++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
for (; *haystack != NULL; ++haystack)
|
||||||
|
if (g_ascii_strcasecmp(*haystack, needle) == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
13
src/utils.h
13
src/utils.h
@@ -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);
|
|||||||
|
|
||||||
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
|
||||||
|
Reference in New Issue
Block a user