components/text-utilities/patches/parse.c.patch
author Rich Burridge <rich.burridge@oracle.com>
Wed, 21 Jan 2015 17:36:13 -0800
branchs11-update
changeset 3666 f6b2b3066ff4
child 3897 cd126ba3fdda
permissions -rw-r--r--
PSARC 2014/170 text-utilities version 2.24.2 18307792 request for "column" utility in Userland

A printf format specifier of "qx" isn't supported on Solaris.

http://man7.org/linux/man-pages/man3/printf.3.html says:

  q   ("quad". 4.4BSD and Linux libc5 only.  Don't use.)  This is a
      synonym for ll.

This change will be sent upstream.

--- util-linux-2.24.2/text-utils/parse.c.orig	2014-06-04 13:04:47.338346633 -0700
+++ util-linux-2.24.2/text-utils/parse.c	2014-06-04 14:15:15.476415780 -0700
@@ -208,7 +208,7 @@
 	PR *pr, **nextpr;
 	FU *fu;
 	char *p1, *p2;
-	char savech, *fmtp, cs[3];
+	char savech, *fmtp, cs[4];
 	int nconv, prec;
 
 	nextpr = NULL;
@@ -282,9 +282,10 @@
 				goto isint;
 			case 'o': case 'u': case 'x': case 'X':
 				pr->flags = F_UINT;
-isint:				cs[2] = '\0';
-				cs[1] = cs[0];
-				cs[0] = 'q';
+isint:				cs[3] = '\0';
+				cs[2] = cs[0];
+				cs[1] = 'l';
+				cs[0] = 'l';
 				switch(fu->bcnt) {
 				case 0: case 4:
 					pr->bcnt = 4;
@@ -342,9 +343,10 @@
 					++p2;
 					switch(p1[2]) {
 					case 'd': case 'o': case'x':
-						cs[0] = 'q';
-						cs[1] = p1[2];
-						cs[2] = '\0';
+						cs[0] = 'l';
+						cs[1] = 'l';
+						cs[2] = p1[2];
+						cs[3] = '\0';
 						break;
 					default:
 						p1[3] = '\0';