mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-22 19:45:43 -04:00
[dmap] Use a wrapper for dmap_find_field()
Avoids the need to have definition of dmap_find_field in dmap_common.h that must be kept in sync with the definition that gperf generates. Also should fix compilation problems when gperf is not present, ref pr #390
This commit is contained in:
parent
43abb18e4e
commit
1b8adc11ed
21
configure.ac
21
configure.ac
@ -32,27 +32,6 @@ to install it.]])],
|
|||||||
[AC_MSG_ERROR([[GNU gperf required, please install it.]])])
|
[AC_MSG_ERROR([[GNU gperf required, please install it.]])])
|
||||||
])
|
])
|
||||||
|
|
||||||
GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)"
|
|
||||||
|
|
||||||
AC_COMPILE_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM([
|
|
||||||
#include <string.h>
|
|
||||||
const char * in_word_set(const char *, size_t);
|
|
||||||
$GPERF_TEST]
|
|
||||||
)],
|
|
||||||
[GPERF_LEN_TYPE=size_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM([
|
|
||||||
#include <string.h>
|
|
||||||
const char * in_word_set(const char *, unsigned);
|
|
||||||
$GPERF_TEST]
|
|
||||||
)],
|
|
||||||
[GPERF_LEN_TYPE=unsigned],
|
|
||||||
[AC_MSG_ERROR([** unable to determine gperf len type])]
|
|
||||||
)]
|
|
||||||
)
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
|
|
||||||
AC_PATH_PROG([ANTLR], [[antlr3]])
|
AC_PATH_PROG([ANTLR], [[antlr3]])
|
||||||
AS_IF([[test -z "$ANTLR"]],
|
AS_IF([[test -z "$ANTLR"]],
|
||||||
[AS_IF([[test -f "$srcdir/src/SMARTPLLexer.h"]],
|
[AS_IF([[test -f "$srcdir/src/SMARTPLLexer.h"]],
|
||||||
|
@ -42,6 +42,12 @@ dmap_get_fields_table(int *nfields)
|
|||||||
return dmap_fields;
|
return dmap_fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This wrapper is so callers don't need to include dmap_fields_hash.h
|
||||||
|
const struct dmap_field *
|
||||||
|
dmap_find_field_wrapper(const char *str, int len)
|
||||||
|
{
|
||||||
|
return dmap_find_field(str, len);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
dmap_add_container(struct evbuffer *evbuf, const char *tag, int len)
|
dmap_add_container(struct evbuffer *evbuf, const char *tag, int len)
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#ifndef __DMAP_HELPERS_H__
|
#ifndef __DMAP_HELPERS_H__
|
||||||
#define __DMAP_HELPERS_H__
|
#define __DMAP_HELPERS_H__
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include <event2/buffer.h>
|
#include <event2/buffer.h>
|
||||||
#include <event2/http.h>
|
#include <event2/http.h>
|
||||||
|
|
||||||
@ -45,9 +44,8 @@ extern const struct dmap_field_map dfm_dmap_aeSP;
|
|||||||
const struct dmap_field *
|
const struct dmap_field *
|
||||||
dmap_get_fields_table(int *nfields);
|
dmap_get_fields_table(int *nfields);
|
||||||
|
|
||||||
/* From dmap_fields.gperf - keep in sync, don't alter */
|
|
||||||
const struct dmap_field *
|
const struct dmap_field *
|
||||||
dmap_find_field (register const char *str, register GPERF_LEN_TYPE len);
|
dmap_find_field_wrapper(const char *str, int len);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -738,7 +738,7 @@ parse_meta(struct evhttp_request *req, char *tag, const char *param, const struc
|
|||||||
|
|
||||||
if (n == i)
|
if (n == i)
|
||||||
{
|
{
|
||||||
meta[i] = dmap_find_field(field, strlen(field));
|
meta[i] = dmap_find_field_wrapper(field, strlen(field));
|
||||||
|
|
||||||
if (!meta[i])
|
if (!meta[i])
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user