diff src/ls-mat5.cc @ 11580:e306683a7e97

read_mat5_binary_element: improve diagnostic if uncompress fails
author John W. Eaton <jwe@octave.org>
date Thu, 20 Jan 2011 04:05:18 -0500
parents fd0a3ac60b0e
children 12df7854fa7c
line wrap: on
line diff
--- a/src/ls-mat5.cc
+++ b/src/ls-mat5.cc
@@ -547,7 +547,46 @@
                                 element_length);
 
           if (err != Z_OK)
-            error ("load: error uncompressing data element");
+            {
+              std::string msg;
+              switch (err)
+                {
+                case Z_STREAM_END:
+                  msg = "stream end";
+                  break;
+
+                case Z_NEED_DICT:
+                  msg = "need dict";
+                  break;
+
+                case Z_ERRNO:
+                  msg = "errno case";
+                  break;
+
+                case Z_STREAM_ERROR:
+                  msg = "stream error";
+                  break;
+
+                case Z_DATA_ERROR:
+                  msg = "data error";
+                  break;
+
+                case Z_MEM_ERROR:
+                  msg = "mem error";
+                  break;
+
+                case Z_BUF_ERROR:
+                  msg = "buf error";
+                  break;
+
+                case Z_VERSION_ERROR:
+                  msg = "version error";
+                  break;
+                }
+
+              error ("load: error uncompressing data element (%s from zlib)",
+                     msg.c_str ());
+            }
           else
             {
               std::istringstream gz_is (outbuf);