Fix for tags unsigned long and unsigned short

(SerialNumber wrong)
This commit is contained in:
ffsup2
2010-12-18 12:42:39 +01:00
parent a37bd7dd1f
commit 6bc2206f4e

View File

@@ -824,10 +824,10 @@ void Tag::toString (char* buffer, int ofs) {
switch (type) { switch (type) {
case UNDEFINED: case UNDEFINED:
case BYTE: sprintf (b, "%d", value[i+ofs]); break; case BYTE: sprintf (b, "%d", value[i+ofs]); break;
case SSHORT: case SSHORT: sprintf (b, "%d", toInt(2*i+ofs)); break;
case SHORT: sprintf (b, "%d", toInt(2*i+ofs)); break; case SHORT: sprintf (b, "%u", toInt(2*i+ofs)); break;
case SLONG: case SLONG: sprintf (b, "%ld", toInt(4*i+ofs)); break;
case LONG: sprintf (b, "%d", toInt(4*i+ofs)); break; case LONG: sprintf (b, "%lu", toInt(4*i+ofs)); break;
case SRATIONAL: case SRATIONAL:
case RATIONAL: sprintf (b, "%d/%d", (int)sget4 (value+8*i+ofs, getOrder()), (int)sget4 (value+8*i+ofs+4, getOrder())); break; case RATIONAL: sprintf (b, "%d/%d", (int)sget4 (value+8*i+ofs, getOrder()), (int)sget4 (value+8*i+ofs+4, getOrder())); break;
case FLOAT: sprintf (b, "%g", toDouble(8*i+ofs)); break; case FLOAT: sprintf (b, "%g", toDouble(8*i+ofs)); break;