|
|
- From 1b8adc11edec48a9b8fcb75b9efdaf618a6744bd Mon Sep 17 00:00:00 2001
- From: ejurgensen <espenjurgensen@gmail.com>
- Date: Fri, 25 Aug 2017 19:27:41 +0200
- Subject: [PATCH] [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
- ---
- configure.ac | 21 ---------------------
- src/dmap_common.c | 6 ++++++
- src/dmap_common.h | 4 +---
- src/httpd_daap.c | 2 +-
- 4 files changed, 8 insertions(+), 25 deletions(-)
-
- diff --git a/configure.ac b/configure.ac
- index 9b149be..9819c82 100644
- --- a/configure.ac
- +++ b/configure.ac
- @@ -32,27 +32,6 @@ to 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]])
- AS_IF([[test -z "$ANTLR"]],
- [AS_IF([[test -f "$srcdir/src/SMARTPLLexer.h"]],
- diff --git a/src/dmap_common.c b/src/dmap_common.c
- index 250a2d1..b2bc362 100644
- --- a/src/dmap_common.c
- +++ b/src/dmap_common.c
- @@ -42,6 +42,12 @@ dmap_get_fields_table(int *nfields)
- 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
- dmap_add_container(struct evbuffer *evbuf, const char *tag, int len)
- diff --git a/src/dmap_common.h b/src/dmap_common.h
- index 93a2bdc..73f72d0 100644
- --- a/src/dmap_common.h
- +++ b/src/dmap_common.h
- @@ -2,7 +2,6 @@
- #ifndef __DMAP_HELPERS_H__
- #define __DMAP_HELPERS_H__
-
- -#include "config.h"
- #include <event2/buffer.h>
- #include <event2/http.h>
-
- @@ -45,9 +44,8 @@ extern const struct dmap_field_map dfm_dmap_aeSP;
- const struct dmap_field *
- dmap_get_fields_table(int *nfields);
-
- -/* From dmap_fields.gperf - keep in sync, don't alter */
- 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
- diff --git a/src/httpd_daap.c b/src/httpd_daap.c
- index aef2fe0..0564275 100644
- --- a/src/httpd_daap.c
- +++ b/src/httpd_daap.c
- @@ -738,7 +738,7 @@ parse_meta(struct evhttp_request *req, char *tag, const char *param, const struc
-
- if (n == i)
- {
- - meta[i] = dmap_find_field(field, strlen(field));
- + meta[i] = dmap_find_field_wrapper(field, strlen(field));
-
- if (!meta[i])
- {
- --
- 2.7.4
-
|