diff options
-rw-r--r-- | funcs/func_iconv.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/funcs/func_iconv.c b/funcs/func_iconv.c index cc7294c6c..1bce3c66a 100644 --- a/funcs/func_iconv.c +++ b/funcs/func_iconv.c @@ -47,6 +47,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/app.h" #include "asterisk/options.h" +/*! + * Some systems define the second arg to iconv() as (const char *), + * while others define it as (char *). Cast it to a (void *) to + * suppress compiler warnings about it. + */ +#define AST_ICONV_CAST void * + static int iconv_read(struct ast_channel *chan, const char *cmd, char *arguments, char *buf, size_t len) { AST_DECLARE_APP_ARGS(args, @@ -82,7 +89,7 @@ static int iconv_read(struct ast_channel *chan, const char *cmd, char *arguments return -1; } - if (iconv(cd, &args.text, &incount, &buf, &outcount) == (size_t) -1) { + if (iconv(cd, (AST_ICONV_CAST) &args.text, &incount, &buf, &outcount) == (size_t) -1) { if (errno == E2BIG) ast_log(LOG_WARNING, "Iconv: output buffer too small.\n"); else if (errno == EILSEQ) |