diff options
Diffstat (limited to 'klm/util')
-rw-r--r-- | klm/util/bit_packing.hh | 7 | ||||
-rw-r--r-- | klm/util/exception.cc | 4 | ||||
-rw-r--r-- | klm/util/have.hh | 6 |
3 files changed, 13 insertions, 4 deletions
diff --git a/klm/util/bit_packing.hh b/klm/util/bit_packing.hh index 70cfc2d2..5c71c792 100644 --- a/klm/util/bit_packing.hh +++ b/klm/util/bit_packing.hh @@ -28,16 +28,19 @@ namespace util { * but it may be called multiple times when that's inconvenient. */ -inline uint8_t BitPackShift(uint8_t bit, uint8_t length) { + // Fun fact: __BYTE_ORDER is wrong on Solaris Sparc, but the version without __ is correct. #if BYTE_ORDER == LITTLE_ENDIAN +inline uint8_t BitPackShift(uint8_t bit, uint8_t /*length*/) { return bit; +} #elif BYTE_ORDER == BIG_ENDIAN +inline uint8_t BitPackShift(uint8_t bit, uint8_t length) { return 64 - length - bit; +} #else #error "Bit packing code isn't written for your byte order." #endif -} /* Pack integers up to 57 bits using their least significant digits. * The length is specified using mask: diff --git a/klm/util/exception.cc b/klm/util/exception.cc index 077405f4..84f9fe7c 100644 --- a/klm/util/exception.cc +++ b/klm/util/exception.cc @@ -9,11 +9,11 @@ Exception::Exception() throw() {} Exception::~Exception() throw() {} Exception::Exception(const Exception &from) : std::exception() { - stream_.str(from.stream_.str()); + stream_ << from.stream_.str(); } Exception &Exception::operator=(const Exception &from) { - stream_.str(from.stream_.str()); + stream_ << from.stream_.str(); return *this; } diff --git a/klm/util/have.hh b/klm/util/have.hh index 7cf62008..f2f0cf90 100644 --- a/klm/util/have.hh +++ b/klm/util/have.hh @@ -2,8 +2,14 @@ #ifndef UTIL_HAVE__ #define UTIL_HAVE__ +#ifndef HAVE_ZLIB #define HAVE_ZLIB +#endif + // #define HAVE_ICU + +#ifndef HAVE_BOOST #define HAVE_BOOST +#endif #endif // UTIL_HAVE__ |