add strnlen function to fix build break in case of Windows 18/11418/2
authoryoonki.park <yoonki.park@samsung.com>
Sun, 27 Oct 2013 20:24:39 +0000 (05:24 +0900)
committeryoonki.park <yoonki.park@samsung.com>
Sun, 27 Oct 2013 20:26:41 +0000 (05:26 +0900)
Change-Id: Ied8bec48579b97c15f809a63882d9d0122721dea
Signed-off-by: yoonki.park <yoonki.park@samsung.com>
src/log.c
src/strutils.c
src/strutils.h

index 7e8494e9eda8005154208f775ccd3d3c2207aea8..711c4bb4d1b88123bcd85fc043995a87a0a0e85f 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -21,6 +21,7 @@
 #include <stdarg.h> // for using va_list
 #include "log.h"
 #include "utils.h"
+#include "strutils.h"
 
 int loglevel_mask;
 
@@ -39,7 +40,7 @@ static struct {
 
 void logging_hex(char* hex, char* asci) {
 
-    int hex_len = strnlen(hex, 4096);
+    int hex_len = s_strnlen(hex, 4096);
 
     char* hex_ptr = hex;
 
@@ -57,7 +58,7 @@ void logging_hex(char* hex, char* asci) {
     fprintf(stderr, "%s\n", hex_ptr);
 
 
-    int asci_len = strnlen(asci, 4096);
+    int asci_len = s_strnlen(asci, 4096);
     char* asci_ptr = asci;
 
     fprintf(stderr, "ASCI:\n");
index d4be7a3d1e436825b3eace4d4523b6a45c9e1baa..e7444b743c6d9cb2ca938291a244a9bfca38b6f6 100755 (executable)
@@ -70,17 +70,30 @@ int read_line(const int fd, char* ptr, const unsigned int maxlen)
  */
 char *s_strncpy(char *dest, const char *source, size_t n) {
 
-  char *start = dest;
+    char *start = dest;
 
-  if(n) {
-      while(--n) {
-          if(*source == '\0') {
-              break;
-          }
-          *dest++ = *source++;
-      }
-      *dest = '\0';
-  }
+    if (n) {
+        while (--n) {
+            if (*source == '\0') {
+                break;
+            }
+            *dest++ = *source++;
+        }
+        *dest = '\0';
+    }
+
+    return start;
+}
 
-  return start;
+/**
+ * Mingw doesn't have strnlen.
+ */
+size_t s_strnlen(const char *s, size_t maxlen) {
+    size_t len;
+    for (len = 0; len < maxlen; len++, s++) {
+       if (!*s) {
+            break;
+       }
+    }
+    return len;
 }
index 897579f1243ad9aaf099a213de54f953462446ea..d5bf30b9e89f97f20461b1a7b3ae4cfcea69afde 100644 (file)
@@ -7,5 +7,6 @@ size_t tokenize(const char *str, const char *delim, char *tokens[], size_t max_t
 void free_strings(char **array, int n);
 int read_line(const int fd, char* ptr, const unsigned int maxlen);
 char *s_strncpy(char *dest, const char *source, size_t n);
+size_t s_strnlen(const char *s, size_t maxlen);
 #endif