(strnlen): New inline function when HAVE_STRNLEN is not defined
[chise/libchise.git] / chise.h
diff --git a/chise.h b/chise.h
index 783df88..e384802 100644 (file)
--- a/chise.h
+++ b/chise.h
@@ -3,6 +3,25 @@
 #include <db.h>
 #include <errno.h>
 
+#ifndef HAVE_STRNLEN
+
+/* original in mysql, strings/strnlen.c.
+uint strnlen(register const char *s, register uint maxlen)
+{
+  const char *end= (const char *)memchr(s, '\0', maxlen);
+  return end ? (uint) (end - s) : maxlen;
+}
+*/
+
+static inline int
+strnlen (register const char *s, register int maxlen)
+{
+  const char *end= (const char *)memchr(s, '\0', maxlen);
+  return end ? (int) (end - s) : maxlen;
+}
+
+#endif
+
 
 typedef enum CHISE_DS_Type
 {