Provide strnlen() on mingw32 which doesn't have it.
authorHans Kolek <hkolek@gmail.com>
Tue, 17 Aug 2010 22:48:23 +0000 (00:48 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 17 Aug 2010 22:48:23 +0000 (00:48 +0200)
NEWS
dulwich/_objects.c

diff --git a/NEWS b/NEWS
index daedefdb1dcb6afb2911869416319e844bb10995..5dc436993308ac79619361d8981df415e9142468 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@
   * ThinPackData.from_file now works with resolve_ext_ref callback.
     (Dave Borowitz)
 
   * ThinPackData.from_file now works with resolve_ext_ref callback.
     (Dave Borowitz)
 
+  * Provide strnlen() on mingw32 which doesn't have it. (Hans Kolek)
+
  FEATURES
 
   * Use slots for core objects to save up on memory. (Jelmer Vernooij)
  FEATURES
 
   * Use slots for core objects to save up on memory. (Jelmer Vernooij)
index c16e5ccd347d73d78f65f70ee45a6f7b6de044b5..f29b1279f3ed5dd687077e483e721f2e68e25076 100644 (file)
 typedef int Py_ssize_t;
 #endif
 
 typedef int Py_ssize_t;
 #endif
 
+#ifdef __MINGW32_VERSION
+size_t strnlen(char *text, size_t maxlen)
+{
+       const char *last = memchr(text, '\0', maxlen);
+       return last ? (size_t) (last - text) : maxlen;
+}
+#endif
+
 #define bytehex(x) (((x)<0xa)?('0'+(x)):('a'-0xa+(x)))
 
 static PyObject *sha_to_pyhex(const unsigned char *sha)
 #define bytehex(x) (((x)<0xa)?('0'+(x)):('a'-0xa+(x)))
 
 static PyObject *sha_to_pyhex(const unsigned char *sha)