diff options
-rw-r--r-- | apt-pkg/contrib/md5.cc | 28 | ||||
-rw-r--r-- | buildlib/config.h.in | 4 | ||||
-rw-r--r-- | configure.in | 39 |
3 files changed, 31 insertions, 40 deletions
diff --git a/apt-pkg/contrib/md5.cc b/apt-pkg/contrib/md5.cc index e656f3221..381c38753 100644 --- a/apt-pkg/contrib/md5.cc +++ b/apt-pkg/contrib/md5.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: md5.cc,v 1.4 1999/10/25 03:36:41 jgg Exp $ +// $Id: md5.cc,v 1.5 1999/10/25 04:10:02 jgg Exp $ /* ###################################################################### MD5Sum - MD5 Message Digest Algorithm. @@ -28,8 +28,9 @@ Still in the public domain. The classes use arrays of char that are a specific size. We cast those - arrays to UINT32's and go from there. This allows us to advoid using - config.h in a public header or internally newing memory. + arrays to uint8_t's and go from there. This allows us to advoid using + the uncommon inttypes.h in a public header or internally newing memory. + In theory if C9x becomes nicely accepted ##################################################################### */ /*}}}*/ @@ -44,28 +45,21 @@ #include <string.h> #include <system.h> #include <unistd.h> -#include <config.h> +#include <netinet/in.h> // For htonl #include <inttypes.h> /*}}}*/ // byteSwap - Swap bytes in a buffer /*{{{*/ // --------------------------------------------------------------------- -/* This byteswap function will swap byte in a buffer of data */ -#ifdef WORDS_BIGENDIAN -static void byteSwap(uint32_t *buf, unsigned words) +/* Swap n 32 bit longs in given buffer */ +inline static void byteSwap(uint32_t *buf, unsigned words) { - unsigned char *p = (unsigned char *)buf; - - do + do { - *buf++ = (uint32_t)((unsigned)p[3] << 8 | p[2]) << 16 | - ((unsigned)p[1] << 8 | p[0]); - p += 4; - } while (--words); + *buf++ = htonl(*buf); + } + while (--words); } -#else -#define byteSwap(buf,words) -#endif /*}}}*/ // MD5Transform - Alters an existing MD5 hash /*{{{*/ // --------------------------------------------------------------------- diff --git a/buildlib/config.h.in b/buildlib/config.h.in index f882ca25d..c6b097ca8 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -1,7 +1,3 @@ -/* Define if your processor stores words with the most significant - byte first (like Motorola and SPARC, unlike Intel and VAX). */ -#undef WORDS_BIGENDIAN - /* The number of bytes in a usigned char. */ #undef SIZEOF_CHAR diff --git a/configure.in b/configure.in index 66b98337d..1525e961b 100644 --- a/configure.in +++ b/configure.in @@ -83,28 +83,29 @@ AC_CACHE_CHECK([for C9x integer types],c9x_ints,[ [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;uint64_t Foo], c9x_ints=yes,c9x_ints=no)]) -dnl Check the sizes etc. of the architecture -changequote(,) -if archline="`sed -ne 's/^'$archset':[ ]\+\(.*\)/\1/gp' $srcdir/buildlib/sizetable`"; then - changequote([,]) - set $archline - if test "$1" = "little"; then - ac_cv_c_bigendian=no - else - ac_cv_c_bigendian=yes +dnl We do not need this if we have inttypes.. + if test x"$c9x_ints" = x"no"; then + dnl Check the sizes etc. of the architecture + changequote(,) + if archline="`sed -ne 's/^'$archset':[ ]\+\(.*\)/\1/gp' $srcdir/buildlib/sizetable`"; then + changequote([,]) + set $archline + if test "$1" = "little"; then + ac_cv_c_bigendian=no + else + ac_cv_c_bigendian=yes + fi + size_char=$2 + size_int=$3 + size_short=$4 + size_long=$5 fi - size_char=$2 - size_int=$3 - size_short=$4 - size_long=$5 -fi -if test "$cross_compiling" = "yes" -a "$archline" = ""; then - AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable) -fi -AC_C_BIGENDIAN + if test "$cross_compiling" = "yes" -a "$archline" = ""; then + AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable) + fi + AC_C_BIGENDIAN -if test x"$c9x_ints" = x"no"; then AC_CHECK_SIZEOF(char,$size_char) AC_CHECK_SIZEOF(int,$size_int) AC_CHECK_SIZEOF(short,$size_short) |