Alter display of signed integers and unsigned integers in output.


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3558 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-tools/genidl/src/genidl_typeinfo.c b/mingw-w64-tools/genidl/src/genidl_typeinfo.c
index e26aaa0..b9b4fba 100644
--- a/mingw-w64-tools/genidl/src/genidl_typeinfo.c
+++ b/mingw-w64-tools/genidl/src/genidl_typeinfo.c
@@ -1224,9 +1224,22 @@
         case 0: case 1:
           break;
         case 2: /* VT_I2 */
-          fprintf (fp, "(short) %d", u.i2); break;
+	  if (abs ((int) u.i2) < 0x100)
+            fprintf (fp, "(short) %d", u.i2);
+	  else if (u.i2 < 0)
+	    fprintf (fp, "(short) -0x%x", -u.i2);
+	  else
+	    fprintf (fp, "(short) 0x%x", u.i2);
+          break;
+	case 22: /* VT_INT */
         case 3: /* VT_I4 */
-          fprintf (fp, "(int) %d", u.i4); break;
+	  if (abs (u.i4) < 0x100)
+            fprintf (fp, "(int) %d", u.i4);
+	  else if (u.i4 < 0)
+	    fprintf (fp, "(int) -0x%x", -u.i4);
+          else
+	    fprintf (fp, "(int) 0x%x", u.i4);
+          break;
         case 4: /* VT_R4 */
           fprintf (fp, "(float) %g", u.f4); break;
         case 5: /* VT_R8 */
@@ -1252,11 +1265,11 @@
 	case 16: /* VT_I1 */
           fprintf (fp, "(CHAR) %d", u.i1); break;
 	case 17: /* VT_UI1 */
-          fprintf (fp, "(UCHAR) %u", u.ui1); break;
+          fprintf (fp, "(UCHAR) 0x%x", u.ui1); break;
 	case 18: /* VT_UI2 */
-          fprintf (fp, "(USHORT) %u", u.ui2); break;
+          fprintf (fp, "(USHORT) 0x%x", u.ui2); break;
 	case 19: /* VT_UI4 */
-          fprintf (fp, "(UINT) %u", u.ui4); break;
+          fprintf (fp, "(UINT) 0x%xU", u.ui4); break;
 	case 20: /* VT_I8 */
 #ifdef _WIN32
           fprintf (fp, "(LONGLONG) %I64dLL", u.i8); break;
@@ -1269,10 +1282,8 @@
 #else
           fprintf (fp, "(ULONGLONG) 0x%llxULL", u.ui8); break;
 #endif
-	case 22: /* VT_INT */
-          fprintf (fp, "(int) %d", u.i4); break;
 	case 23: /* VT_UINT */
-          fprintf (fp, "(unsigned int) %u", u.ui4); break;
+          fprintf (fp, "(unsigned int) 0x%xU", u.ui4); break;
 	case 24: /* VT_VOID */
 	  break;
 	case 25: /* VT_HRESULT */