git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Modules/IPStack - Rework TCP connection closing
[tpg/acess2.git]
/
Usermode
/
Libraries
/
libc.so_src
/
printf.c
diff --git
a/Usermode/Libraries/libc.so_src/printf.c
b/Usermode/Libraries/libc.so_src/printf.c
index
4d1a3d4
..
905f790
100644
(file)
--- a/
Usermode/Libraries/libc.so_src/printf.c
+++ b/
Usermode/Libraries/libc.so_src/printf.c
@@
-44,7
+44,6
@@
size_t _printf_ftoa(printf_puts_t puts_cb, void *puts_h, long double num, size_t
*/
EXPORT int _vcprintf_int(printf_puts_t puts_cb, void *puts_h, const char *format, va_list args)
{
*/
EXPORT int _vcprintf_int(printf_puts_t puts_cb, void *puts_h, const char *format, va_list args)
{
- char tmp[65];
int c, minSize, precision, len;
size_t pos = 0;
char *p;
int c, minSize, precision, len;
size_t pos = 0;
char *p;
@@
-60,8
+59,6
@@
EXPORT int _vcprintf_int(printf_puts_t puts_cb, void *puts_h, const char *format
pos ++; \
} while(0)
pos ++; \
} while(0)
- tmp[32] = '\0';
-
while((c = *format++) != 0)
{
// Non-control character
while((c = *format++) != 0)
{
// Non-control character
@@
-165,9
+162,6
@@
EXPORT int _vcprintf_int(printf_puts_t puts_cb, void *puts_h, const char *format
}
}
}
}
- // Just help things along later
- p = tmp;
-
// Get Type
switch( c )
{
// Get Type
switch( c )
{
@@
-423,6
+417,12
@@
size_t _printf_itoa(printf_puts_t puts_cb, void *puts_h, uint64_t num,
}
tmpBuf[--pos] = map[ num % base ]; // Most significant digit of {number}
}
tmpBuf[--pos] = map[ num % base ]; // Most significant digit of {number}
+ // TODO: This assertion may not be valid
+ assert(Precision <= (int)sizeof(tmpBuf));
+ Precision -= sizeof(tmpBuf)-pos + (sign_is_neg || SignChar != '\0');
+ while( Precision-- > 0 )
+ tmpBuf[--pos] = '0';
+
// Sign
if(sign_is_neg)
tmpBuf[--pos] = '-'; // Negative sign character
// Sign
if(sign_is_neg)
tmpBuf[--pos] = '-'; // Negative sign character
@@
-434,16
+434,11
@@
size_t _printf_itoa(printf_puts_t puts_cb, void *puts_h, uint64_t num,
// length of number, minus the sign character
size_t len = sizeof(tmpBuf)-pos;
PadLength -= len;
// length of number, minus the sign character
size_t len = sizeof(tmpBuf)-pos;
PadLength -= len;
- Precision -= len;
if( !bPadRight )
{
while(PadLength-- > 0)
puts_cb(puts_h, &PadChar, 1), ret ++;
}
if( !bPadRight )
{
while(PadLength-- > 0)
puts_cb(puts_h, &PadChar, 1), ret ++;
}
-
- // TODO: Will {Precision} ever be > size
- while( Precision-- > 0 )
- puts_cb(puts_h, "0", 1), ret++;
puts_cb(puts_h, tmpBuf+pos, len);
ret += len;
puts_cb(puts_h, tmpBuf+pos, len);
ret += len;
UCC
git Repository :: git.ucc.asn.au