File icu-error-reporting.diff of Package icu

Date: 2014-08-13 15:39:48.523887951 +0200
From: Jan Engelhardt <jengelh@inai.de>

Error messages are totally useless without the actual error cause!
---
 source/tools/toolutil/package.cpp  |    5 +++--
 source/tools/toolutil/writesrc.cpp |    6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

Index: icu/source/tools/toolutil/package.cpp
===================================================================
--- icu.orig/source/tools/toolutil/package.cpp
+++ icu/source/tools/toolutil/package.cpp
@@ -35,6 +35,7 @@
 #include "package.h"
 #include "cmemory.h"
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -748,7 +749,7 @@ Package::writePackage(const char *filena
     // create the file and write its contents
     file=fopen(filename, "wb");
     if(file==NULL) {
-        fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+        fprintf(stderr, "icupkg: unable to create file \"%s\": %s\n", filename, strerror(errno));
         exit(U_FILE_ACCESS_ERROR);
     }
 
@@ -1169,7 +1170,7 @@ Package::extractItem(const char *filesPa
     makeFullFilenameAndDirs(filesPath, outName, filename, (int32_t)sizeof(filename));
     file=fopen(filename, "wb");
     if(file==NULL) {
-        fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+        fprintf(stderr, "icupkg: unable to create file \"%s\": %s\n", filename, strerror(errno));
         exit(U_FILE_ACCESS_ERROR);
     }
     fileLength=(int32_t)fwrite(pItem->data, 1, pItem->length, file);
Index: icu/source/tools/toolutil/writesrc.cpp
===================================================================
--- icu.orig/source/tools/toolutil/writesrc.cpp
+++ icu/source/tools/toolutil/writesrc.cpp
@@ -18,7 +18,9 @@
 *   Helper functions for writing source code for data.
 */
 
+#include <errno.h>
 #include <stdio.h>
+#include <string.h>
 #include <time.h>
 #include "unicode/utypes.h"
 #include "unicode/putil.h"
@@ -64,8 +66,8 @@ usrc_createWithHeader(const char *path,
     } else {
         fprintf(
             stderr,
-            "usrc_create(%s, %s): unable to create file\n",
-            path!=NULL ? path : "", filename);
+            "usrc_create(%s, %s): unable to create file: %s\n",
+            path!=NULL ? path : "", filename, strerror(errno));
     }
     return f;
 }
openSUSE Build Service is sponsored by