128, 128, 0
};
-
-char *safestrncpy(char *dest, const char *src, size_t n)
+/**
+ * \brief copy a string into a buffer of a known size. abort if we exceed the limits
+ * \param dest the targetbuffer
+ * \param src the source string
+ * \param n the size od dest
+ * \returns the number of characters copied if dest is big enough, -n if not.
+ */
+int safestrncpy(char *dest, const char *src, size_t n)
{
int i = 0;
do {
dest[i] = src[i];
- if (dest[i] == 0) return(dest);
+ if (dest[i] == 0) return i;
++i;
} while (i<n);
dest[n - 1] = 0;
- return dest;
+ return -i;
}