slightly cleaner strlen, also seems to compile to better code
[musl] / src / string / stpncpy.c
index 473db17..0a2c2a9 100644 (file)
@@ -9,7 +9,7 @@
 #define HIGHS (ONES * (UCHAR_MAX/2+1))
 #define HASZERO(x) ((x)-ONES & ~(x) & HIGHS)
 
-char *__stpncpy(char *d, const char *s, size_t n)
+char *__stpncpy(char *restrict d, const char *restrict s, size_t n)
 {
        size_t *wd;
        const size_t *ws;
@@ -19,7 +19,7 @@ char *__stpncpy(char *d, const char *s, size_t n)
                if (!n || !*s) goto tail;
                wd=(void *)d; ws=(const void *)s;
                for (; n>=sizeof(size_t) && !HASZERO(*ws);
-                      n-=sizeof(size_t), ws++, *wd++) *wd = *ws;
+                      n-=sizeof(size_t), ws++, wd++) *wd = *ws;
                d=(void *)wd; s=(const void *)ws;
        }
        for (; n && (*d=*s); n--, s++, d++);