split off and compile util.c separately
[project/uci.git] / util.c
diff --git a/util.c b/util.c
index d44114d..1db3366 100644 (file)
--- a/util.c
+++ b/util.c
@@ -16,6 +16,7 @@
  * This file contains misc utility functions and wrappers to standard
  * functions, which throw exceptions upon failure.
  */
  * This file contains misc utility functions and wrappers to standard
  * functions, which throw exceptions upon failure.
  */
+#define _GNU_SOURCE
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/file.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/file.h>
 #include <ctype.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <ctype.h>
 #include <fcntl.h>
 #include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "uci.h"
+#include "uci_internal.h"
 
 __plugin void *uci_malloc(struct uci_context *ctx, size_t size)
 {
 
 __plugin void *uci_malloc(struct uci_context *ctx, size_t size)
 {
@@ -57,22 +63,6 @@ __plugin char *uci_strdup(struct uci_context *ctx, const char *str)
        return ptr;
 }
 
        return ptr;
 }
 
-/* Based on an efficient hash function published by D. J. Bernstein */
-static unsigned int djbhash(unsigned int hash, char *str)
-{
-       int len = strlen(str);
-       int i;
-
-       /* initial value */
-       if (hash == ~0)
-               hash = 5381;
-
-       for(i = 0; i < len; i++) {
-               hash = ((hash << 5) + hash) + str[i];
-       }
-       return (hash & 0x7FFFFFFF);
-}
-
 /*
  * validate strings for names and types, reject special characters
  * for names, only alphanum and _ is allowed (shell compatibility)
 /*
  * validate strings for names and types, reject special characters
  * for names, only alphanum and _ is allowed (shell compatibility)