Convert Console::printFormat to use kstd format functions
This commit is contained in:
		
							parent
							
								
									2334d80225
								
							
						
					
					
						commit
						17102e7e46
					
				
					 1 changed files with 10 additions and 50 deletions
				
			
		| 
						 | 
					@ -14,8 +14,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace {
 | 
					namespace {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void itoa(int value, char* buffer, int base);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct Spec {
 | 
					struct Spec {
 | 
				
			||||||
    enum class Size {
 | 
					    enum class Size {
 | 
				
			||||||
        Normal,
 | 
					        Normal,
 | 
				
			||||||
| 
						 | 
					@ -107,41 +105,40 @@ Spec::print(kernel::Console& console)
 | 
				
			||||||
        if (type == Type::Int) {
 | 
					        if (type == Type::Int) {
 | 
				
			||||||
            switch (size) {
 | 
					            switch (size) {
 | 
				
			||||||
                case Size::Normal:
 | 
					                case Size::Normal:
 | 
				
			||||||
                    itoa(value.d, buf, 10);
 | 
					                    length = kstd::CString::fromInteger(value.d, buf, 32);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::DoubleShort:
 | 
					                case Size::DoubleShort:
 | 
				
			||||||
                    itoa(value.hhd, buf, 10);
 | 
					                    length = kstd::CString::fromInteger(value.hhd, buf, 32);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::Short:
 | 
					                case Size::Short:
 | 
				
			||||||
                    itoa(value.hd, buf, 10);
 | 
					                    length = kstd::CString::fromInteger(value.hd, buf, 32);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::Long:
 | 
					                case Size::Long:
 | 
				
			||||||
                    itoa(value.ld, buf, 10);
 | 
					                    length = kstd::CString::fromInteger(value.ld, buf, 32);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::DoubleLong:
 | 
					                case Size::DoubleLong:
 | 
				
			||||||
                    itoa(value.lld, buf, 10);
 | 
					                    length = kstd::CString::fromInteger(value.lld, buf, 32);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            switch (size) {
 | 
					            switch (size) {
 | 
				
			||||||
                case Size::Normal:
 | 
					                case Size::Normal:
 | 
				
			||||||
                    kstd::CString::fromUnsignedInteger(value.x, buf, 16, capitalized);
 | 
					                    length = kstd::CString::fromUnsignedInteger(value.x, buf, 32, 16, capitalized);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::DoubleShort:
 | 
					                case Size::DoubleShort:
 | 
				
			||||||
                    kstd::CString::fromUnsignedInteger(value.hhx, buf, 16, capitalized);
 | 
					                    length = kstd::CString::fromUnsignedInteger(value.hhx, buf, 32, 16, capitalized);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::Short:
 | 
					                case Size::Short:
 | 
				
			||||||
                    kstd::CString::fromUnsignedInteger(value.hx, buf, 16, capitalized);
 | 
					                    length = kstd::CString::fromUnsignedInteger(value.hx, buf, 32, 16, capitalized);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::Long:
 | 
					                case Size::Long:
 | 
				
			||||||
                    kstd::CString::fromUnsignedLongInteger(value.lx, buf, 16, capitalized);
 | 
					                    length = kstd::CString::fromUnsignedInteger(value.lx, buf, 32, 16, capitalized);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case Size::DoubleLong:
 | 
					                case Size::DoubleLong:
 | 
				
			||||||
                    kstd::CString::fromUnsignedLongInteger(value.llx, buf, 16, capitalized);
 | 
					                    length = kstd::CString::fromUnsignedInteger(value.llx, buf, 32, 16, capitalized);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        length = kstd::CString::length(buf, 32);
 | 
					 | 
				
			||||||
        if (width < length) {
 | 
					        if (width < length) {
 | 
				
			||||||
            width = length;
 | 
					            width = length;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -170,43 +167,6 @@ Spec::print(kernel::Console& console)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					 | 
				
			||||||
itoa(int value,
 | 
					 | 
				
			||||||
     char* buffer,
 | 
					 | 
				
			||||||
     int base)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    const bool neg = base == 10 && value < 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (neg) {
 | 
					 | 
				
			||||||
        value *= -1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    unsigned int v = (unsigned int)value;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    char* p = buffer;
 | 
					 | 
				
			||||||
    int place;
 | 
					 | 
				
			||||||
    do {
 | 
					 | 
				
			||||||
        place = v % base;
 | 
					 | 
				
			||||||
        v /= base;
 | 
					 | 
				
			||||||
        *p++ = place < 10 ? place + '0' : (place - 10) + 'a';
 | 
					 | 
				
			||||||
    } while (v != 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (neg) {
 | 
					 | 
				
			||||||
        *p++ = '-';
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    *p-- = '\0';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Reverse the string.
 | 
					 | 
				
			||||||
    char* t = buffer;
 | 
					 | 
				
			||||||
    char c;
 | 
					 | 
				
			||||||
    while (p > t) {
 | 
					 | 
				
			||||||
        c = *p;
 | 
					 | 
				
			||||||
        *p-- = *t;
 | 
					 | 
				
			||||||
        *t++ = c;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
inline bool
 | 
					inline bool
 | 
				
			||||||
is_size(char c)
 | 
					is_size(char c)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue