added vdprintf() library function