io: write_nointr should treat count -1 as "just do strlen on the buffer"
[libjh.git] / string.c
index f58fd3c..41082f1 100644 (file)
--- a/string.c
+++ b/string.c
@@ -1,8 +1,10 @@
 // Copyright (2013) Jann Horn <jann@thejh.net>
 // Copyright (2013) Jann Horn <jann@thejh.net>
-// This code is licensed under the AGPLv3.
 
 
-#include <string.h>
+#ifdef __SSE2__
 #include <emmintrin.h>
 #include <emmintrin.h>
+#endif
+
+#include <string.h>
 HEADER #include <stdint.h>
 
 HEADER #define streq(a,b) (!strcmp((a),(b)))
 HEADER #include <stdint.h>
 
 HEADER #define streq(a,b) (!strcmp((a),(b)))
@@ -32,7 +34,6 @@ PUBLIC_FN size_t count_char_occurences_in_buf(char *b, size_t bl, char c) {
   size_t res = 0;
   
   #ifdef __SSE2__
   size_t res = 0;
   
   #ifdef __SSE2__
-  #include <emmintrin.h>
   
   // do it the simple way until we get to the next 16-byte-aligned address
   while ((((uint64_t)b)&0xf) && b<be) if (*(b++)==c) res++;
   
   // do it the simple way until we get to the next 16-byte-aligned address
   while ((((uint64_t)b)&0xf) && b<be) if (*(b++)==c) res++;
@@ -85,7 +86,6 @@ PUBLIC_FN int count_and_replace_char_occurences_in_buf(char *b, size_t bl, char
   int res = 0;
   
   #ifdef __SSE2__
   int res = 0;
   
   #ifdef __SSE2__
-  #include <emmintrin.h>
   
   // do it the simple way until we get to the next 16-byte-aligned address
   while ((((uint64_t)b)&0xf) && b<be) if (*(b++)==c) res++;
   
   // do it the simple way until we get to the next 16-byte-aligned address
   while ((((uint64_t)b)&0xf) && b<be) if (*(b++)==c) res++;