X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2Fevent.c;h=291ff58581142bec45d2e050edad218b4ca5a1cb;hb=4b75a2784c793ded4a4bc78aa0ecb30b7b56cb02;hp=bdf326a03f4585e94fc9e669fc6c1164b677bb12;hpb=ec2b3b3b3f79722a05e8a2d8742cebb674ce0bce;p=openjpeg.git diff --git a/libopenjpeg/event.c b/libopenjpeg/event.c index bdf326a0..291ff585 100644 --- a/libopenjpeg/event.c +++ b/libopenjpeg/event.c @@ -61,7 +61,7 @@ _itoa(int i, char *a, int r) { /* ----------------------------------------------------------------------- */ -opj_event_mgr_t* opj_set_event_mgr(opj_common_ptr cinfo, opj_event_mgr_t *event_mgr, void *context) { +opj_event_mgr_t* OPJ_CALLCONV opj_set_event_mgr(opj_common_ptr cinfo, opj_event_mgr_t *event_mgr, void *context) { if(cinfo) { opj_event_mgr_t *previous = cinfo->event_mgr; cinfo->event_mgr = event_mgr; @@ -100,7 +100,7 @@ bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, ...) { if ((fmt != NULL) && (event_mgr != NULL)) { va_list arg; - int str_length, i, j; + int str_length/*, i, j*/; /* UniPG */ char message[MSG_SIZE]; memset(message, 0, MSG_SIZE); /* initialize the optional parameter list */ @@ -108,67 +108,7 @@ bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, ...) { /* check the length of the format string */ str_length = (strlen(fmt) > MSG_SIZE) ? MSG_SIZE : strlen(fmt); /* parse the format string and put the result in 'message' */ - for (i = 0, j = 0; i < str_length; ++i) { - if (fmt[i] == '%') { - if (i + 1 < str_length) { - switch(tolower(fmt[i + 1])) { - case '%' : - message[j++] = '%'; - break; - case 'o' : /* octal numbers */ - { - char tmp[16]; - _itoa(va_arg(arg, int), tmp, 8); - strcat(message, tmp); - j += strlen(tmp); - ++i; - break; - } - case 'i' : /* decimal numbers */ - case 'd' : - { - char tmp[16]; - _itoa(va_arg(arg, int), tmp, 10); - strcat(message, tmp); - j += strlen(tmp); - ++i; - break; - } - case 'x' : /* hexadecimal numbers */ - { - char tmp[16]; - _itoa(va_arg(arg, int), tmp, 16); - strcat(message, tmp); - j += strlen(tmp); - ++i; - break; - } - case 's' : /* strings */ - { - char *tmp = va_arg(arg, char*); - strcat(message, tmp); - j += strlen(tmp); - ++i; - break; - } - case 'f' : /* floats */ - { - char tmp[16]; - double value = va_arg(arg, double); - sprintf(tmp, "%f", value); - strcat(message, tmp); - j += strlen(tmp); - ++i; - break; - } - }; - } else { - message[j++] = fmt[i]; - } - } else { - message[j++] = fmt[i]; - }; - } + vsprintf(message, fmt, arg); /* UniPG */ /* deinitialize the optional parameter list */ va_end(arg);