/** * \file * source file of ProtoInterface */ #include #include "protointerface_test.h" #include "generic.h" int protoInterface_init(ProtoInterface *protoInterfacep, FILE *outStream) { protoInterfacep->outStream = outStream; return !0; } void protoInterface_destroy(ProtoInterface *protoInterfacep) { protoInterfacep->outStream = NULL; } int protoInterface_printf(ProtoInterface *protoInterfacep, const char *formatString, ...) { char outBuffer[PROTOINTERFACE_BUFFER_INIT_SIZE]; int ret; va_list ap; va_start(ap, formatString); ret = wrapper_vsnprintf(outBuffer, PROTOINTERFACE_BUFFER_INIT_SIZE, formatString, ap); /*outBuffer was too small*/ if (ret == -1 && PROTOINTERFACE_BUFFER_INIT_SIZE >= 4) { outBuffer[PROTOINTERFACE_BUFFER_INIT_SIZE - 2] = '.'; outBuffer[PROTOINTERFACE_BUFFER_INIT_SIZE - 3] = '.'; outBuffer[PROTOINTERFACE_BUFFER_INIT_SIZE - 4] = '.'; ret = PROTOINTERFACE_BUFFER_INIT_SIZE - 1; } va_end(ap); if (ret) fputs(outBuffer, protoInterfacep->outStream); return ret; }