From a94656538f73e5097b5011b02ee825c8480a6d74 Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Wed, 18 Aug 2010 12:59:52 +0000
Subject: [PATCH] Use common inline version of wxHexToDec

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 include/wx/utils.h              | 19 +++++++++++++++++++
 src/common/utilscmn.cpp         | 19 +++++--------------
 src/richtext/richtextbuffer.cpp | 20 +-------------------
 3 files changed, 25 insertions(+), 33 deletions(-)

diff --git a/include/wx/utils.h b/include/wx/utils.h
index 533e8a489e..32bed656c3 100644
--- a/include/wx/utils.h
+++ b/include/wx/utils.h
@@ -252,6 +252,25 @@ WXDLLIMPEXP_BASE long wxNewId();
 // 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);
diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp
index 53791d386f..2667f5885b 100644
--- a/src/common/utilscmn.cpp
+++ b/src/common/utilscmn.cpp
@@ -113,21 +113,12 @@
 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
diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp
index e96a98d078..ab926437d8 100644
--- a/src/richtext/richtextbuffer.cpp
+++ b/src/richtext/richtextbuffer.cpp
@@ -7621,24 +7621,6 @@ bool wxRichTextImageBlock::WriteHex(wxOutputStream& stream)
     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)
 {
@@ -7658,7 +7640,7 @@ bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, wxBitmapTy
         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;
-- 
2.47.2