All pastes #1195545 Raw Edit

Something

public text v1 · immutable
#1195545 ·published 2008-09-06 04:54 UTC
rendered paste body
void printf(const char *format, ...)
{
    char buf[20], **arg = (char **)&format;
    int c;
    
    arg++;
    while((c = *format++)){
        if(c != '%') putch(c);
        else{
            char *p;
            c = *format++;
            switch(c)
            {
                case 'd':
                case 'u':
                    itoa (buf, 10, *((int *) arg++));
                    putsnocr(buf);
                    break;
                    
                case 'c':
                    p = arg++;
                    putsnocr(p);
                    break;

                case 'x':
                    itoa (buf, 16, *((int *) arg++));
                    putsnocr(buf);
                    break;

                case 's':
                    p = *arg++;
                    if(!p) p = "(null)";
                    putsnocr(p);
                    break;
                    
                default:
                    putch(*((int *) arg++));
                    break;
            }
        }
    }
    
    return;
}