diff options
Diffstat (limited to 'media-sound/vorbisgain/files/vorbisgain-0.37-fix-errno-and-warnings.patch')
-rw-r--r-- | media-sound/vorbisgain/files/vorbisgain-0.37-fix-errno-and-warnings.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/media-sound/vorbisgain/files/vorbisgain-0.37-fix-errno-and-warnings.patch b/media-sound/vorbisgain/files/vorbisgain-0.37-fix-errno-and-warnings.patch new file mode 100644 index 000000000000..7d2efb63f33c --- /dev/null +++ b/media-sound/vorbisgain/files/vorbisgain-0.37-fix-errno-and-warnings.patch @@ -0,0 +1,80 @@ +diff -ur vorbisgain-0.37.orig/misc.c vorbisgain-0.37/misc.c +--- vorbisgain-0.37.orig/misc.c 2004-01-03 23:17:28.000000000 +0200 ++++ vorbisgain-0.37/misc.c 2008-03-22 09:32:49.000000000 +0200 +@@ -23,6 +23,7 @@ + #else /* WIN32 */
+ #include <errno.h>
+ #include <ctype.h>
++#include <unistd.h>
+
+ #ifndef DISABLE_WINSIZE
+
+diff -ur vorbisgain-0.37.orig/recurse.c vorbisgain-0.37/recurse.c +--- vorbisgain-0.37.orig/recurse.c 2004-01-02 14:49:38.000000000 +0200 ++++ vorbisgain-0.37/recurse.c 2008-03-22 09:31:52.000000000 +0200 +@@ -377,6 +377,7 @@ + + if (result->dir != NULL) + { ++ errno = 0; + result->entry = readdir(result->dir); + + if (result->entry != NULL) +@@ -408,6 +409,7 @@ + */ + static int read_dir(DIRECTORY *directory) + { ++ errno = 0; + directory->entry = readdir(directory->dir); + + if (directory->entry != NULL) +diff -ur vorbisgain-0.37.orig/vorbis.c vorbisgain-0.37/vorbis.c +--- vorbisgain-0.37.orig/vorbis.c 2005-07-15 01:49:05.000000000 +0300 ++++ vorbisgain-0.37/vorbis.c 2008-03-22 09:32:25.000000000 +0200 +@@ -572,6 +572,9 @@ + int result = -1; + int delete_temp = 0; + int i; ++#if _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ++ int fd; ++#endif + + infile = fopen(filename, "rb"); + +@@ -699,6 +702,16 @@ + strcpy(temp_name, filename); + strcpy((char *) last_path(temp_name), TEMP_NAME); + ++#if _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ++ fd = mkstemp(temp_name); ++ if (fd == -1) ++ { ++ fprintf(stderr, _("Couldn't create temporary file for processing.\n")); ++ goto exit; ++ } ++ ++ outfile = fdopen(fd, "wb"); ++#else /* #if _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 */ + #ifdef WIN32 + temp_name = _mktemp(temp_name); + #else +@@ -712,6 +725,7 @@ + } + + outfile = fopen(temp_name, "wb"); ++#endif /* #if _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 */ + + if (outfile == NULL) + { +@@ -824,7 +838,10 @@ + } + } + +- free(temp_name); ++ if (temp_name != NULL) ++ { ++ free(temp_name); ++ } + + return result; + } |