Mon, 28 Jan 2013 17:37:18 +0100
Correct socket error reporting improvement with IPv6 portable code,
after helpful recommendation by Saúl Ibarra Corretgé on OSips devlist.
michael@110 | 1 | Index: include/sswf/libsswf.h |
michael@110 | 2 | --- include/sswf/libsswf.h.orig 2008-06-23 07:51:47 +0200 |
michael@110 | 3 | +++ include/sswf/libsswf.h 2008-06-23 18:10:33 +0200 |
michael@110 | 4 | @@ -71,12 +71,14 @@ |
michael@110 | 5 | /* wint_t is an "equivalent" to wchar_t without being limited to 16 bits as on MS-Windows */ |
michael@110 | 6 | #ifndef _MSVC |
michael@110 | 7 | #ifndef __APPLE_CC__ |
michael@110 | 8 | +#ifndef __FreeBSD__ |
michael@110 | 9 | #ifndef _WINT_T |
michael@110 | 10 | #define _WINT_T |
michael@110 | 11 | typedef unsigned int wint_t; |
michael@110 | 12 | #endif |
michael@110 | 13 | #endif |
michael@110 | 14 | #endif |
michael@110 | 15 | +#endif |
michael@110 | 16 | |
michael@110 | 17 | #ifndef M_PI |
michael@110 | 18 | #define M_PI 3.14159265358979323846 |
michael@110 | 19 | @@ -88,7 +90,7 @@ |
michael@110 | 20 | #define rint(x) ((double) (long) floor(x + 0.5)) |
michael@110 | 21 | #endif |
michael@110 | 22 | |
michael@110 | 23 | -#ifdef _LIBICONV_H |
michael@110 | 24 | +#if defined(_LIBICONV_H) && !defined(__FreeBSD__) |
michael@110 | 25 | #define ICONV_INPUT_CAST |
michael@110 | 26 | #else |
michael@110 | 27 | /* older versions of iconv() were broken in regard to the |
michael@110 | 28 | Index: include/sswf/libsswf_c.h |
michael@110 | 29 | --- include/sswf/libsswf_c.h.orig 2008-06-23 07:51:47 +0200 |
michael@110 | 30 | +++ include/sswf/libsswf_c.h 2008-06-23 18:10:33 +0200 |
michael@110 | 31 | @@ -38,7 +38,7 @@ |
michael@110 | 32 | |
michael@110 | 33 | #include <stdlib.h> |
michael@110 | 34 | #include <stdarg.h> |
michael@110 | 35 | -#if IRIX |
michael@110 | 36 | +#if IRIX || defined(__FreeBSD__) |
michael@110 | 37 | #include <inttypes.h> |
michael@110 | 38 | #endif |
michael@110 | 39 | #include <sswf/libsswf-config.h> |
michael@111 | 40 | Index: src/lib/libsswf_tag_header.c++ |
michael@111 | 41 | --- src/lib/libsswf_tag_header.c++.orig 2009-02-25 11:44:25.018888440 +0100 |
michael@111 | 42 | +++ src/lib/libsswf_tag_header.c++ 2009-02-25 12:03:04.998881702 +0100 |
michael@111 | 43 | @@ -745,7 +745,7 @@ |
michael@111 | 44 | } |
michael@111 | 45 | #endif |
michael@111 | 46 | |
michael@111 | 47 | - r = (int) iconv(f_iconvertor, ICONV_INPUT_CAST &string, &in, &p, &out); |
michael@111 | 48 | + r = (int) iconv(f_iconvertor, ICONV_INPUT_CAST const_cast<char **>(&string), &in, &p, &out); |
michael@111 | 49 | if(r < 0) { |
michael@111 | 50 | if(s != buf) { |
michael@111 | 51 | MemFree(s); |
michael@111 | 52 | Index: src/lib/sswf_lexical.c++ |
michael@111 | 53 | --- src/sswf/sswf_lexical.c++.orig 2008-06-23 07:51:47.000000000 +0200 |
michael@111 | 54 | +++ src/sswf/sswf_lexical.c++ 2009-02-25 12:06:36.214881561 +0100 |
michael@111 | 55 | @@ -2026,7 +2026,7 @@ |
michael@111 | 56 | out = sizeof(outchar); |
michael@111 | 57 | output = (char *) &outchar; |
michael@111 | 58 | b = (int) f_mb_count; |
michael@111 | 59 | - a = (int) iconv(f_iconvertor, ICONV_INPUT_CAST &input, &f_mb_count, &output, &out); |
michael@111 | 60 | + a = (int) iconv(f_iconvertor, ICONV_INPUT_CAST const_cast<char **>(&input), &f_mb_count, &output, &out); |
michael@111 | 61 | // the output buffer will usually be full before the |
michael@111 | 62 | // input is fully emptied! |
michael@111 | 63 | if(a < 0 && errno == E2BIG && out == 0 && b != (int) f_mb_count) { |