Esempio n. 1
0
/* Format function for bwprintf */
void 
bwformat ( const char *fmt, va_list va ) {
    char bf[12];
    char ch, lz;
    int w;

	
    while ( ( ch = *(fmt++) ) ) {
	if ( ch != '%' )
	    bwputc( ch );
	else {
	    lz = 0; w = 0;
	    ch = *(fmt++);
	    switch ( ch ) {
	    case '0':
		lz = 1; ch = *(fmt++);
		break;
	    case '1':
	    case '2':
	    case '3':
	    case '4':
	    case '5':
	    case '6':
	    case '7':
	    case '8':
	    case '9':
		ch = bwa2i( ch, &fmt, 10, &w );
		break;
	    }
	    switch( ch ) {
	    case 0: return;
	    case 'c':
		bwputc( va_arg( va, char ) );
		break;
	    case 's':
		bwputw( w, 0, va_arg( va, char* ) );
		break;
	    case 'u':
		bwui2a( va_arg( va, unsigned int ), 10, bf );
		bwputw( w, lz, bf );
		break;
	    case 'd':
		bwi2a( va_arg( va, int ), bf );
		bwputw( w, lz, bf );
		break;
	    case 'x':
	    case 'p':
		bwui2a( va_arg( va, unsigned int ), 16, bf );
		bwputw( w, lz, bf );
		break;
	    case '%':
		bwputc( ch );
		break;
	    }
	}
    }
}
Esempio n. 2
0
void format ( int server, int channel, char *fmt, va_list va ) {
	char bf[12];
	char ch, lz;
	int w;

	
	while ( ( ch = *(fmt++) ) ) {
		if ( ch != '%' )
			Putc( server, channel, ch );
		else {
			lz = 0; w = 0;
			ch = *(fmt++);
			switch ( ch ) {
			case '0':
				lz = 1; ch = *(fmt++);
				break;
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
			case '6':
			case '7':
			case '8':
			case '9':
				ch = a2i( ch, &fmt, 10, &w );
				break;
			}
			switch( ch ) {
			case 0: return;
			case 'c':
				Putc( server, channel, va_arg( va, char ) );
				break;
			case 's':
				putw( server, channel, w, 0, va_arg( va, char* ) );
				break;
			case 'u':
				ui2a( va_arg( va, unsigned int ), 10, bf );
				bwputw( channel, w, lz, bf );
				break;
			case 'd':
				i2a( va_arg( va, int ), bf );
				putw( server, channel, w, lz, bf );
				break;
			case 'x':
				ui2a( va_arg( va, unsigned int ), 16, bf );
				putw( server, channel, w, lz, bf );
				break;
			case '%':
				Putc( server, channel, ch );
				break;
			}
		}
	}
}