components/text-utilities/patches/parse.c.patch
changeset 3897 cd126ba3fdda
parent 2129 bf833e1aa881
equal deleted inserted replaced
3896:9ac96ba60329 3897:cd126ba3fdda
     5   q   ("quad". 4.4BSD and Linux libc5 only.  Don't use.)  This is a
     5   q   ("quad". 4.4BSD and Linux libc5 only.  Don't use.)  This is a
     6       synonym for ll.
     6       synonym for ll.
     7 
     7 
     8 This change will be sent upstream.
     8 This change will be sent upstream.
     9 
     9 
    10 --- util-linux-2.24.2/text-utils/parse.c.orig	2014-06-04 13:04:47.338346633 -0700
    10 --- util-linux-2.25.2/text-utils/hexdump-parse.c.orig	2015-02-16 18:06:45.921790582 -0800
    11 +++ util-linux-2.24.2/text-utils/parse.c	2014-06-04 14:15:15.476415780 -0700
    11 +++ util-linux-2.25.2/text-utils/hexdump-parse.c	2015-02-16 18:09:59.879541819 -0800
    12 @@ -208,7 +208,7 @@
    12 @@ -226,7 +226,7 @@
    13  	PR *pr, **nextpr;
    13  	struct hexdump_fu *fu;
    14  	FU *fu;
    14  	struct list_head *p, *q;
    15  	char *p1, *p2;
    15  	char *p1, *p2, *fmtp;
    16 -	char savech, *fmtp, cs[3];
    16 -	char savech, cs[3];
    17 +	char savech, *fmtp, cs[4];
    17 +	char savech, cs[4];
    18  	int nconv, prec;
    18  	int nconv, prec = 0;
    19  
    19  
    20  	nextpr = NULL;
    20  	list_for_each (p, &fs->fulist) {
    21 @@ -282,9 +282,10 @@
    21 @@ -301,9 +301,10 @@
    22  				goto isint;
    22  				goto isint;
    23  			case 'o': case 'u': case 'x': case 'X':
    23  			} else if (first_letter(cs, "ouxX")) {
    24  				pr->flags = F_UINT;
    24  				pr->flags = F_UINT;
    25 -isint:				cs[2] = '\0';
    25 -isint:				cs[2] = '\0';
    26 -				cs[1] = cs[0];
    26 -				cs[1] = cs[0];
    27 -				cs[0] = 'q';
    27 -				cs[0] = 'q';
    28 +isint:				cs[3] = '\0';
    28 +isint:				cs[3] = '\0';
    29 +				cs[2] = cs[0];
    29 +				cs[2] = cs[0];
    30 +				cs[1] = 'l';
    30 +				cs[1] = 'l';
    31 +				cs[0] = 'l';
    31 +				cs[0] = 'l';
    32  				switch(fu->bcnt) {
    32  				switch(fu->bcnt) {
    33  				case 0: case 4:
    33  					case 0:
    34  					pr->bcnt = 4;
    34  						pr->bcnt = 4;
    35 @@ -342,9 +343,10 @@
    35 @@ -355,9 +356,10 @@
    36  					++p2;
    36  						pr->flags = F_ADDRESS;
    37  					switch(p1[2]) {
    37  						++p2;
    38  					case 'd': case 'o': case'x':
    38  						if (first_letter(p1 + 2, "dox")) {
    39 -						cs[0] = 'q';
    39 -							cs[0] = 'q';
    40 -						cs[1] = p1[2];
    40 -							cs[1] = p1[2];
    41 -						cs[2] = '\0';
    41 -							cs[2] = '\0';
    42 +						cs[0] = 'l';
    42 +							cs[0] = 'l';
    43 +						cs[1] = 'l';
    43 +							cs[1] = 'l';
    44 +						cs[2] = p1[2];
    44 +							cs[2] = p1[2];
    45 +						cs[3] = '\0';
    45 +							cs[3] = '\0';
    46  						break;
    46  						} else {
    47  					default:
    47  							p1[3] = '\0';
    48  						p1[3] = '\0';
    48  							badconv(p1);