// Convert 2-digit hex number to decimal
WXDLLIMPEXP_BASE int wxHexToDec(const wxString& buf);
+// Convert 2-digit hex number to decimal
+inline int wxHexToDec(const char* buf)
+{
+ int firstDigit, secondDigit;
+
+ if (buf[0] >= 'A')
+ firstDigit = buf[0] - 'A' + 10;
+ else
+ firstDigit = buf[0] - '0';
+
+ if (buf[1] >= 'A')
+ secondDigit = buf[1] - 'A' + 10;
+ else
+ secondDigit = buf[1] - '0';
+
+ return (firstDigit & 0xF) * 16 + (secondDigit & 0xF );
+}
+
+
// Convert decimal integer to 2-character hex string
WXDLLIMPEXP_BASE void wxDecToHex(int dec, wxChar *buf);
WXDLLIMPEXP_BASE void wxDecToHex(int dec, char* ch1, char* ch2);
static const wxChar hexArray[] = wxT("0123456789ABCDEF");
// Convert 2-digit hex number to decimal
-int wxHexToDec(const wxString& buf)
+int wxHexToDec(const wxString& str)
{
- int firstDigit, secondDigit;
-
- if (buf.GetChar(0) >= wxT('A'))
- firstDigit = buf.GetChar(0) - wxT('A') + 10;
- else
- firstDigit = buf.GetChar(0) - wxT('0');
-
- if (buf.GetChar(1) >= wxT('A'))
- secondDigit = buf.GetChar(1) - wxT('A') + 10;
- else
- secondDigit = buf.GetChar(1) - wxT('0');
-
- return (firstDigit & 0xF) * 16 + (secondDigit & 0xF );
+ char buf[2];
+ buf[0] = str.GetChar(0);
+ buf[1] = str.GetChar(1);
+ return wxHexToDec((const char*) buf);
}
// Convert decimal integer to 2-character hex string
return true;
}
-inline int wxRichTextHexToDec(const char* buf)
-{
- int firstDigit, secondDigit;
-
- if (buf[0] >= 'A')
- firstDigit = buf[0] - 'A' + 10;
- else
- firstDigit = buf[0] - '0';
-
- if (buf[1] >= 'A')
- secondDigit = buf[1] - 'A' + 10;
- else
- secondDigit = buf[1] - '0';
-
- return (firstDigit & 0xF) * 16 + (secondDigit & 0xF );
-}
-
-
// Read data in hex from a stream
bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, wxBitmapType imageType)
{
str[0] = (char)stream.GetC();
str[1] = (char)stream.GetC();
- m_data[i] = (unsigned char)wxRichTextHexToDec(str);
+ m_data[i] = (unsigned char)wxHexToDec(str);
}
m_dataSize = dataSize;