]> granicus.if.org Git - transmission/commitdiff
Fix warning for when 2nd `iconv()` argument is const
authorMike Gelfand <mikedld@mikedld.com>
Tue, 23 Feb 2016 05:07:43 +0000 (05:07 +0000)
committerMike Gelfand <mikedld@mikedld.com>
Tue, 23 Feb 2016 05:07:43 +0000 (05:07 +0000)
CMakeLists.txt
cmake/FindICONV.cmake
libtransmission/utils.c

index 7197440a3d314b4dbcf66ed32ce1f72ee67ef7a8..b52ab649e6db48d090a75b01cb7722625c32e3a1 100644 (file)
@@ -514,6 +514,9 @@ endforeach()
 
 if(ICONV_FOUND)
     add_definitions(-DHAVE_ICONV)
+    if(ICONV_SECOND_ARGUMENT_IS_CONST)
+        add_definitions(-DICONV_SECOND_ARGUMENT_IS_CONST)
+    endif()
 endif()
 
 # if(MINGW)
index 5e81ce141ace3f4563f540e049037bfe94c4fe89..d5a9217b1c48240973bf5af80b0b54649c78f9de 100644 (file)
@@ -22,8 +22,7 @@ if(ICONV_FOUND AND NOT DEFINED ICONV_SECOND_ARGUMENT_IS_CONST)
     set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIRS})
     set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
 
-    check_c_source_compiles(
-        "
+    check_c_source_compiles("
         #include <iconv.h>
         int main ()
         {
@@ -34,7 +33,10 @@ if(ICONV_FOUND AND NOT DEFINED ICONV_SECOND_ARGUMENT_IS_CONST)
             size_t olen = 0;
             iconv (conv, &in, &ilen, &out, &olen);
             return 0;
-        }" ICONV_SECOND_ARGUMENT_IS_CONST)
+        }"
+        ICONV_SECOND_ARGUMENT_IS_CONST
+        FAIL_REGEX "incompatible pointer type"
+        FAIL_REGEX "discards qualifiers in nested pointer types")
 
     set(CMAKE_REQUIRED_INCLUDES)
     set(CMAKE_REQUIRED_LIBRARIES)
index 2e542734b34d22a5c5c1080cb2447ab114b9a9ba..db9a4456f615395291968ea9f3282f6427410d32 100644 (file)
@@ -1034,7 +1034,11 @@ to_utf8 (const char * in, size_t inlen)
 
   for (i=0; !ret && i<encoding_count; ++i)
     {
+#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
+      const char * inbuf = in;
+#else
       char * inbuf = (char*) in;
+#endif
       char * outbuf = out;
       size_t inbytesleft = inlen;
       size_t outbytesleft = buflen;