Every other package these days seems to come with its own MD5 implementation. Try to trim this insanity, where we can... -mi diff -ruN src/definition.cpp src/definition.cpp --- src/definition.cpp Sat Sep 1 13:11:48 2007 +++ src/definition.cpp Mon Dec 3 01:25:59 2007 @@ -18,6 +18,7 @@ #include "qtbc.h" #include #include +#include #include #include #include @@ -352,10 +353,8 @@ bool Definition::_docsAlreadyAdded(const QString &doc) { - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)doc.data(),doc.length(),md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char*)doc.data(),doc.length(),sigStr.data()); if (m_impl->docSignatures.find(sigStr)==-1) // new docs, add signature to prevent re-adding it { m_impl->docSignatures+=":"+sigStr; diff -ruN src/dirdef.cpp src/dirdef.cpp --- src/dirdef.cpp Sun Jan 28 13:28:50 2007 +++ src/dirdef.cpp Mon Jun 11 18:32:26 2007 @@ -1,3 +1,4 @@ +#include #include #include "dirdef.h" @@ -73,10 +74,8 @@ QCString result; // convert to md5 hash - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)anchor.data(),anchor.length(),md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char *)anchor.data(),anchor.length(),sigStr.data()); return sigStr; // old algorithm diff -ruN src/dot.cpp src/dot.cpp --- src/dot.cpp Wed Mar 21 22:35:06 2007 +++ src/dot.cpp Mon Jun 11 18:33:40 2007 @@ -38,6 +38,7 @@ #include #include #include +#include #include #define MAP_CMD "cmap" @@ -1204,10 +1205,8 @@ } writeGraphFooter(md5stream); resetReNumbering(); - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)theGraph.ascii(),theGraph.length(),md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char *)theGraph.ascii(),theGraph.length(),sigStr.data()); if (checkAndUpdateMd5Signature(baseName,sigStr) || !QFileInfo(mapName).exists()) { @@ -1833,10 +1832,8 @@ } } writeGraphFooter(md5stream); - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char *)buf.ascii(),buf.length(),sigStr.data()); if (reNumber) { resetReNumbering(); diff -ruN src/doxygen.pro.in src/doxygen.pro.in --- src/doxygen.pro.in Tue Feb 20 19:27:35 2007 +++ src/doxygen.pro.in Mon Jun 11 18:34:03 2007 @@ -18,7 +18,7 @@ CONFIG = console warn_on $extraopts HEADERS = doxygen.h SOURCES = main.cpp -unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 +unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd win32:INCLUDEPATH += . win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 win32-msvc:LIBS += qtools.lib png.lib md5.lib doxygen.lib doxycfg.lib shell32.lib @@ -28,7 +28,7 @@ win32:TMAKE_CXXFLAGS += -DQT_NODLL win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti -INCLUDEPATH += ../qtools ../libpng ../libmd5 . +INCLUDEPATH += ../qtools . #win32-g++:INCLUDEPATH -= ../libpng DESTDIR = ../bin TARGET = doxygen diff -ruN src/memberdef.cpp src/memberdef.cpp --- src/memberdef.cpp Wed Mar 14 15:49:45 2007 +++ src/memberdef.cpp Mon Jun 11 18:32:26 2007 @@ -17,6 +17,7 @@ #include #include +#include #include #include #include "memberdef.h" @@ -2361,10 +2362,8 @@ memAnchor.prepend(definition()); // convert to md5 hash - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char *)memAnchor.data(),memAnchor.length(),sigStr.data()); m_impl->anc = sigStr; } diff -ruN src/util.cpp src/util.cpp --- src/util.cpp Wed Mar 14 13:36:26 2007 +++ src/util.cpp Mon Jun 11 18:32:26 2007 @@ -19,6 +19,7 @@ #include #include +#include #include #include "qtbc.h" @@ -4561,16 +4562,16 @@ if (resultLen>=128) // prevent names that cannot be created! { // third algorithm based on MD5 hash - uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)result.data(),resultLen,md5_sig); - MD5SigToString(md5_sig,sigStr.data(),33); + MD5Data((const unsigned char *)result.data(),resultLen,sigStr.data()); result=result.left(128-32)+sigStr; } } if (createSubdirs) { +#if MAP_ALGO==ALGO_COUNT || MAP_ALGO==ALGO_CRC16 int l1Dir=0,l2Dir=0; +#endif #if MAP_ALGO==ALGO_COUNT // old algorithm, has the problem that after regeneration the @@ -4601,12 +4602,13 @@ l2Dir = (dirNum>>4)&0xff; #elif MAP_ALGO==ALGO_MD5 // third algorithm based on MD5 hash - uchar md5_sig[16]; - MD5Buffer((const unsigned char *)result.data(),result.length(),md5_sig); - l1Dir = md5_sig[14]&0xf; - l2Dir = md5_sig[15]; + char md5[33]; + MD5Data((const unsigned char *)result.data(),result.length(),md5); + result.prepend(QCString().sprintf("d%c/d%c%c/",md5[29],md5[30],md5[31])); #endif +#if MAP_ALGO==ALGO_COUNT || MAP_ALGO==ALGO_CRC16 result.prepend(QCString().sprintf("d%x/d%02x/",l1Dir,l2Dir)); +#endif } return result; }