Improve *printf()
- support %i in addition to %d - print the sign when printing 0 with %+d
This commit is contained in:
@@ -186,6 +186,7 @@ reswitch: switch (c = *fmt++) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
|
case 'i':
|
||||||
ul = lflag ? va_arg (ap, long) : va_arg (ap, int);
|
ul = lflag ? va_arg (ap, long) : va_arg (ap, int);
|
||||||
if (! sign) sign = 1;
|
if (! sign) sign = 1;
|
||||||
base = 10;
|
base = 10;
|
||||||
@@ -211,7 +212,7 @@ reswitch: switch (c = *fmt++) {
|
|||||||
sharpflag = (width == 0);
|
sharpflag = (width == 0);
|
||||||
goto nosign;
|
goto nosign;
|
||||||
|
|
||||||
case 'n':
|
case 'n': /* TBD!!! fix this non-standard %n */
|
||||||
ul = lflag ? va_arg (ap, unsigned long) :
|
ul = lflag ? va_arg (ap, unsigned long) :
|
||||||
sign ? (unsigned long) va_arg (ap, int) :
|
sign ? (unsigned long) va_arg (ap, int) :
|
||||||
va_arg (ap, unsigned int);
|
va_arg (ap, unsigned int);
|
||||||
@@ -294,7 +295,7 @@ cnt_unknown: if (ladjust)
|
|||||||
goto number;
|
goto number;
|
||||||
|
|
||||||
nosign: sign = 0;
|
nosign: sign = 0;
|
||||||
number: if (sign && ((long) ul != 0L)) {
|
number: if (sign) {
|
||||||
if ((long) ul < 0L) {
|
if ((long) ul < 0L) {
|
||||||
neg = '-';
|
neg = '-';
|
||||||
ul = -(long) ul;
|
ul = -(long) ul;
|
||||||
|
|||||||
Reference in New Issue
Block a user