Browse Source

Make av_strerror() return -1 even in the case when av_strerror_r() is
not defined.

This allows applications to check if av_strerror() cannot provide a
meaningful representation for the provided error code, without having
to actually check the filled string.

Originally committed as revision 23031 to svn://svn.ffmpeg.org/ffmpeg/trunk

Stefano Sabatini 15 years ago
parent
commit
e2959f4558
3 changed files with 6 additions and 3 deletions
  1. 1 1
      libavutil/avutil.h
  2. 3 1
      libavutil/error.c
  3. 2 1
      libavutil/error.h

+ 1 - 1
libavutil/avutil.h

@@ -41,7 +41,7 @@
 
 #define LIBAVUTIL_VERSION_MAJOR 50
 #define LIBAVUTIL_VERSION_MINOR 15
-#define LIBAVUTIL_VERSION_MICRO  0
+#define LIBAVUTIL_VERSION_MICRO  1
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \

+ 3 - 1
libavutil/error.c

@@ -36,8 +36,10 @@ int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
     } else {
 #if HAVE_STRERROR_R
         ret = strerror_r(AVUNERROR(errnum), errbuf, errbuf_size);
+#else
+        ret = -1;
 #endif
-        if (!HAVE_STRERROR_R || ret < 0)
+        if (ret < 0)
             snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum);
     }
 

+ 2 - 1
libavutil/error.h

@@ -64,7 +64,8 @@
  * error message indicating the errnum provided to errbuf.
  *
  * @param errbuf_size the size in bytes of errbuf
- * @return 0 on success, a negative value otherwise
+ * @return 0 on success, a negative value if a description for errnum
+ * cannot be found
  */
 int av_strerror(int errnum, char *errbuf, size_t errbuf_size);