From e95c07496519c3de6d1f5907b42fefba540c75b2 Mon Sep 17 00:00:00 2001
From: Alexander Alashkin <alexander.alashkin@cesanta.com>
Date: Sat, 19 Mar 2016 11:02:09 +0100
Subject: [PATCH] Replace strnlen with c_strnlen

PUBLISHED_FROM=815cfaea77171761c952966e98466b87b719de06
---
 examples/api_server/Makefile |  2 +-
 examples/examples.mk         |  2 +-
 mongoose.c                   |  6 ++----
 mongoose.h                   | 10 +---------
 4 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/examples/api_server/Makefile b/examples/api_server/Makefile
index 49910c177..9aeeaa3f8 100644
--- a/examples/api_server/Makefile
+++ b/examples/api_server/Makefile
@@ -4,7 +4,7 @@ CFLAGS = -W -Wall $(CFLAGS_EXTRA)
 
 
 ifeq ($(OS), Windows_NT)
-  CFLAGS += -lws2_32 -D_MG_PROVIDE_STRNLEN
+  CFLAGS += -lws2_32
   CC = gcc
 else
   UNAME_S := $(shell uname -s)
diff --git a/examples/examples.mk b/examples/examples.mk
index 45e66abbe..b912a076c 100644
--- a/examples/examples.mk
+++ b/examples/examples.mk
@@ -5,7 +5,7 @@ all: $(PROG)
 
 ifeq ($(OS), Windows_NT)
 # TODO(alashkin): enable SSL in Windows
-CFLAGS += -lws2_32 -D_MG_PROVIDE_STRNLEN
+CFLAGS += -lws2_32
 CC = gcc
 else
 ifeq ($(SSL_LIB),openssl)
diff --git a/mongoose.c b/mongoose.c
index 38883ccb3..ebe19438c 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -1751,14 +1751,12 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen,
 /* Amalgamated: #include "common/platform.h" */
 /* Amalgamated: #include "common/str_util.h" */
 
-#ifdef _MG_PROVIDE_STRNLEN
-size_t strnlen(const char *s, size_t maxlen) {
+size_t c_strnlen(const char *s, size_t maxlen) {
   size_t l = 0;
   for (; l < maxlen && s[l] != '\0'; l++) {
   }
   return l;
 }
-#endif
 
 #define C_SNPRINTF_APPEND_CHAR(ch)       \
   do {                                   \
@@ -1887,7 +1885,7 @@ int c_vsnprintf(char *buf, size_t buf_size, const char *fmt, va_list ap) {
       if (ch == 's') {
         const char *s = va_arg(ap, const char *); /* Always fetch parameter */
         int j;
-        int pad = field_width - (precision >= 0 ? strnlen(s, precision) : 0);
+        int pad = field_width - (precision >= 0 ? c_strnlen(s, precision) : 0);
         for (j = 0; j < pad; j++) {
           C_SNPRINTF_APPEND_CHAR(' ');
         }
diff --git a/mongoose.h b/mongoose.h
index cccec29ad..3c5b68173 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -857,6 +857,7 @@ int cs_base64_decode(const unsigned char *s, int len, char *dst);
 extern "C" {
 #endif
 
+size_t c_strnlen(const char *s, size_t maxlen);
 int c_snprintf(char *buf, size_t buf_size, const char *format, ...);
 int c_vsnprintf(char *buf, size_t buf_size, const char *format, va_list ap);
 /*
@@ -865,15 +866,6 @@ int c_vsnprintf(char *buf, size_t buf_size, const char *format, va_list ap);
  */
 const char *c_strnstr(const char *s, const char *find, size_t slen);
 
-#if (!(defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 700) &&           \
-     !(defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809L) &&   \
-     !(defined(__DARWIN_C_LEVEL) && __DARWIN_C_LEVEL >= 200809L) && \
-     !defined(RTOS_SDK)) &&                                         \
-    !(defined(_MSC_VER) && _MSC_VER >= 1600 /* MSVC2010+ has strnlen */)
-#define _MG_PROVIDE_STRNLEN
-size_t strnlen(const char *s, size_t maxlen);
-#endif
-
 #ifdef __cplusplus
 }
 #endif
-- 
GitLab