Make av_strerror() print an error message mentioning the error code
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 3 May 2010 21:56:21 +0000 (21:56 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 3 May 2010 21:56:21 +0000 (21:56 +0000)
number if strerror_r() did not succeed for whatever reason.

This avoids the need for the application to fill the string in case
strerror_r() fails, for example because the error code is not known.

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

libavutil/error.c
libavutil/error.h

index a1a0b87..3dd38a3 100644 (file)
@@ -36,9 +36,9 @@ 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
-        snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum);
 #endif
+        if (!HAVE_STRERROR_R || ret < 0)
+            snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum);
     }
 
     return ret;
index abf9a57..a1b9ccc 100644 (file)
@@ -60,7 +60,8 @@
 /**
  * Puts a description of the AVERROR code errnum in errbuf.
  * In case of failure the global variable errno is set to indicate the
- * error.
+ * error. Even in case of failure av_strerror() will print a generic
+ * 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