From 97c3eb4ed5a66e632972f8b958395da93ad57369 Mon Sep 17 00:00:00 2001
From: Ronald Oussoren <ronaldoussoren@mac.com>
Date: Sat, 7 May 2011 09:59:03 +0200
Subject: Closes Issue 11916: Add a number of MacOSX specific definitions to
 the errno module.

Patch by Pierre Carrier.
---
 Misc/ACKS             |  1 +
 Misc/NEWS             |  3 +++
 Modules/errnomodule.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+)

diff --git a/Misc/ACKS b/Misc/ACKS
index ff7bd7b..26ba8af 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -989,3 +989,4 @@ Kai Zhu
 Tarek Ziadé
 Peter Ã…strand
 Torsten Becker
+Pierre Carrier
diff --git a/Misc/NEWS b/Misc/NEWS
index 637e254..e36aaa3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -140,6 +140,9 @@ Core and Builtins
 Library
 -------
 
+- Issue 11916: Add a number of MacOSX specific definitions to the errno module.
+  Patch by Pierre Carrier.
+
 - Issue 11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
   detect mtime changes by comparing to the system clock instead of to the
   previous value of the mtime.
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 86720af..86b0a01 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -84,6 +84,8 @@ PyInit_errno(void)
      * The names and comments are borrowed from linux/include/errno.h,
      * which should be pretty all-inclusive.  However, the Solaris specific
      * names and comments are borrowed from sys/errno.h in Solaris.
+     * MacOSX specific names and comments are borrowed from sys/errno.h in
+     * MacOSX.
      */
 
 #ifdef ENODEV
@@ -848,6 +850,59 @@ PyInit_errno(void)
     inscode(d, ds, de, "ENOTACTIVE", ENOTACTIVE, "Facility is not active");
 #endif
 
+    /* MacOSX specific errnos */
+#ifdef EAUTH
+    inscode(d, ds, de, "EAUTH", EAUTH, "Authentication error");
+#endif
+#ifdef EBADARCH
+    inscode(d, ds, de, "EBADARCH", EBADARCH, "Bad CPU type in executable");
+#endif
+#ifdef EBADEXEC
+    inscode(d, ds, de, "EBADEXEC", EBADEXEC, "Bad executable (or shared library)");
+#endif
+#ifdef EBADMACHO
+    inscode(d, ds, de, "EBADMACHO", EBADMACHO, "Malformed Mach-o file");
+#endif
+#ifdef EBADRPC
+    inscode(d, ds, de, "EBADRPC", EBADRPC, "RPC struct is bad");
+#endif
+#ifdef EDEVERR
+    inscode(d, ds, de, "EDEVERR", EDEVERR, "Device error");
+#endif
+#ifdef EFTYPE
+    inscode(d, ds, de, "EFTYPE", EFTYPE, "Inappropriate file type or format");
+#endif
+#ifdef ENEEDAUTH
+    inscode(d, ds, de, "ENEEDAUTH", ENEEDAUTH, "Need authenticator");
+#endif
+#ifdef ENOATTR
+    inscode(d, ds, de, "ENOATTR", ENOATTR, "Attribute not found");
+#endif
+#ifdef ENOPOLICY
+    inscode(d, ds, de, "ENOPOLICY", ENOPOLICY, "Policy not found");
+#endif
+#ifdef EPROCLIM
+    inscode(d, ds, de, "EPROCLIM", EPROCLIM, "Too many processes");
+#endif
+#ifdef EPROCUNAVAIL
+    inscode(d, ds, de, "EPROCUNAVAIL", EPROCUNAVAIL, "Bad procedure for program");
+#endif
+#ifdef EPROGMISMATCH
+    inscode(d, ds, de, "EPROGMISMATCH", EPROGMISMATCH, "Program version wrong");
+#endif
+#ifdef EPROGUNAVAIL
+    inscode(d, ds, de, "EPROGUNAVAIL", EPROGUNAVAIL, "RPC prog. not avail");
+#endif
+#ifdef EPWROFF
+    inscode(d, ds, de, "EPWROFF", EPWROFF, "Device power is off");
+#endif
+#ifdef ERPCMISMATCH
+    inscode(d, ds, de, "ERPCMISMATCH", ERPCMISMATCH, "RPC version wrong");
+#endif
+#ifdef ESHLIBVERS
+    inscode(d, ds, de, "ESHLIBVERS", ESHLIBVERS, "Shared library version mismatch");
+#endif
+
     Py_DECREF(de);
     return m;
 }
-- 
cgit v0.12