add new error handling infrastructure and strerror functions

--HG--
branch : HEAD
diff --git a/lib/make_zip_err_str.sh b/lib/make_zip_err_str.sh
index 289f0ae..162a6d8 100755
--- a/lib/make_zip_err_str.sh
+++ b/lib/make_zip_err_str.sh
@@ -18,14 +18,31 @@
    from $1; make changes there. */
 
 #include "zip.h"
+#include "zipint.h"
 
 
 
 const char * const zip_err_str[] = {
 EOF
 
-sed -n  '/^#define ZERR_/ s/.*\/\* \([^*]*\) \*\//    "\1",/p' "$1" \
+sed -n  '/^#define ZERR_/ s/.*\/\* . \([^*]*\) \*\//    "\1",/p' "$1" \
     >> "$2.$$" || exit 1
+
+cat <<EOF >> "$2.$$" || exit 1
+};
+
+const int zip_nerr_str = sizeof(zip_err_str)/sizeof(zip_err_str[0]);
+
+#define N ZIP_ET_NONE
+#define S ZIP_ET_SYS
+#define Z ZIP_ET_ZIP
+
+const int _zip_err_type[] = {
+EOF
+
+sed -n  '/^#define ZERR_/ s/.*\/\* \(.\) \([^*]*\) \*\//    \1,/p' "$1" \
+    >> "$2.$$" || exit 1
+
 echo '};' >> "$2.$$" || exit 1
 
 mv "$2.$$" "$2" || exit 1