Release of version 1.2.0
[openjpeg.git] / libopenjpeg / event.c
index d105cca267225764be758ab129d1fac8a6040475..291ff58581142bec45d2e050edad218b4ca5a1cb 100644 (file)
 
 #include "opj_includes.h"
 
-// ==========================================================
-//   Utility functions
-// ==========================================================
+/* ==========================================================
+     Utility functions
+   ==========================================================*/
 
-#ifndef WIN32
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
 static char*
 i2a(unsigned i, char *a, unsigned r) {
        if (i/r > 0) a = i2a(i/r,a,r);
@@ -57,11 +57,11 @@ _itoa(int i, char *a, int r) {
        return a;
 }
 
-#endif // !WIN32
+#endif /* !WIN32 */
 
 /* ----------------------------------------------------------------------- */
 
-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);