Loading...
stdio/FreeBSD/printfcommon.h.patch /dev/null Libc-763.12
--- /dev/null
+++ Libc/Libc-763.12/stdio/FreeBSD/printfcommon.h.patch
@@ -0,0 +1,86 @@
+--- printfcommon.h.orig	2009-11-12 13:29:57.000000000 -0800
++++ printfcommon.h	2009-11-12 23:50:26.000000000 -0800
+@@ -79,14 +79,14 @@ io_init(struct io_state *iop, FILE *fp)
+  * remain valid until io_flush() is called.
+  */
+ static inline int
+-io_print(struct io_state *iop, const CHAR * __restrict ptr, int len)
++io_print(struct io_state *iop, const CHAR * __restrict ptr, int len, locale_t loc)
+ {
+ 
+ 	iop->iov[iop->uio.uio_iovcnt].iov_base = (char *)ptr;
+ 	iop->iov[iop->uio.uio_iovcnt].iov_len = len;
+ 	iop->uio.uio_resid += len;
+ 	if (++iop->uio.uio_iovcnt >= NIOV)
+-		return (__sprint(iop->fp, &iop->uio));
++		return (__sprint(iop->fp, loc, &iop->uio));
+ 	else
+ 		return (0);
+ }
+@@ -107,13 +107,13 @@ static const CHAR zeroes[PADSIZE] =
+  * or the zeroes array.
+  */
+ static inline int
+-io_pad(struct io_state *iop, int howmany, const CHAR * __restrict with)
++io_pad(struct io_state *iop, int howmany, const CHAR * __restrict with, locale_t loc)
+ {
+ 	int n;
+ 
+ 	while (howmany > 0) {
+ 		n = (howmany >= PADSIZE) ? PADSIZE : howmany;
+-		if (io_print(iop, with, n))
++		if (io_print(iop, with, n, loc))
+ 			return (-1);
+ 		howmany -= n;
+ 	}
+@@ -126,7 +126,7 @@ io_pad(struct io_state *iop, int howmany
+  */
+ static inline int
+ io_printandpad(struct io_state *iop, const CHAR *p, const CHAR *ep,
+-	       int len, const CHAR * __restrict with)
++	       int len, const CHAR * __restrict with, locale_t loc)
+ {
+ 	int p_len;
+ 
+@@ -134,19 +134,19 @@ io_printandpad(struct io_state *iop, con
+ 	if (p_len > len)
+ 		p_len = len;
+ 	if (p_len > 0) {
+-		if (io_print(iop, p, p_len))
++		if (io_print(iop, p, p_len, loc))
+ 			return (-1);
+ 	} else {
+ 		p_len = 0;
+ 	}
+-	return (io_pad(iop, len - p_len, with));
++	return (io_pad(iop, len - p_len, with, loc));
+ }
+ 
+ static inline int
+-io_flush(struct io_state *iop)
++io_flush(struct io_state *iop, locale_t loc)
+ {
+ 
+-	return (__sprint(iop->fp, &iop->uio));
++	return (__sprint(iop->fp, loc, &iop->uio));
+ }
+ 
+ /*
+@@ -205,7 +205,7 @@ __ultoa(u_long val, CHAR *endp, int base
+ 		break;
+ 
+ 	default:			/* oops */
+-		abort();
++		LIBC_ABORT("__ultoa: invalid base=%d", base);
+ 	}
+ 	return (cp);
+ }
+@@ -255,7 +255,7 @@ __ujtoa(uintmax_t val, CHAR *endp, int b
+ 		break;
+ 
+ 	default:
+-		abort();
++		LIBC_ABORT("__ujtoa: invalid base=%d", base);
+ 	}
+ 	return (cp);
+ }