Loading...
--- xnu/xnu-12377.121.6/iokit/Kernel/IOStringFuncs.c
+++ xnu/xnu-6153.41.3/iokit/Kernel/IOStringFuncs.c
@@ -86,6 +86,7 @@
unsigned long strtoul(const char *nptr, char **endptr, int base);
quad_t strtoq(const char *nptr, char **endptr, int base);
u_quad_t strtouq(const char *nptr, char **endptr, int base);
+char *strncat(char *s1, const char *s2, unsigned long n);
typedef int BOOL;
@@ -177,7 +178,7 @@
* overflow.
*/
cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
- cutlim = ((int)(cutoff % (unsigned long)base));
+ cutlim = cutoff % (unsigned long)base;
cutoff /= (unsigned long)base;
for (acc = 0, any = 0;; c = *s++) {
if (isdigit(c)) {
@@ -250,7 +251,7 @@
base = c == '0' ? 8 : 10;
}
cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
- cutlim = ((int)((unsigned long)ULONG_MAX % (unsigned long)base));
+ cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
for (acc = 0, any = 0;; c = *s++) {
if (isdigit(c)) {
c -= '0';
@@ -350,7 +351,7 @@
*/
qbase = (unsigned)base;
cutoff = neg ? -(u_quad_t)QUAD_MIN : QUAD_MAX;
- cutlim = ((int)(cutoff % qbase));
+ cutlim = cutoff % qbase;
cutoff /= qbase;
for (acc = 0, any = 0;; c = *s++) {
if (isdigit(c)) {
@@ -433,7 +434,7 @@
}
qbase = (unsigned)base;
cutoff = (u_quad_t)UQUAD_MAX / qbase;
- cutlim = ((int)((u_quad_t)UQUAD_MAX % qbase));
+ cutlim = (u_quad_t)UQUAD_MAX % qbase;
for (acc = 0, any = 0;; c = *s++) {
if (isdigit(c)) {
c -= '0';
@@ -469,3 +470,29 @@
return acc;
}
+
+
+/*
+ *
+ */
+
+char *
+strncat(char *s1, const char *s2, unsigned long n)
+{
+ if (n != 0) {
+ char *d = s1;
+ const char *s = s2;
+
+ while (*d != 0) {
+ d++;
+ }
+ do {
+ if ((*d = *s++) == '\0') {
+ break;
+ }
+ d++;
+ } while (--n != 0);
+ *d = '\0';
+ }
+ return s1;
+}