--- steghide-0.5.1.old/configure.in 2003-10-15 09:48:52.000000000 +0200 +++ steghide-0.5.1.new/configure.in 2008-05-09 19:04:46.000000000 +0200 @@ -7,27 +7,26 @@ dnl checks for programs. AC_PROG_CXX AC_PROG_INSTALL AC_PROG_AWK AC_PROG_LN_S +AC_CXX_COMPILE_STDCXX_0X dnl GNU gettext AC_CHECK_FUNCS(strchr) AM_GNU_GETTEXT AM_CONDITIONAL(USE_INTLDIR, test "$nls_cv_use_gnu_gettext" = yes) dnl check if debugging support is requested -AC_MSG_CHECKING([wether to enable debugging]) +AC_MSG_CHECKING([whether to enable debugging]) AC_ARG_ENABLE(debug,[ --enable-debug enable debugging], if test "$enableval" = yes ; then AC_MSG_RESULT([yes]) AC_DEFINE(DEBUG,1,[enable code used only for debugging]) - CXXFLAGS="-O2 -Wall -g" else AC_MSG_RESULT([no]) - CXXFLAGS="-O2 -Wall" fi , AC_MSG_RESULT([no]) CXXFLAGS="-O2 -Wall" ) @@ -213,7 +212,18 @@ echo "libmhash can be downloaded from http://mhash.sourceforge.net/."; echo "**********"; AC_MSG_ERROR([[libmhash not found]]) fi +dnl Should we add std=c++0x? + +if test "$ac_cv_cxx_compile_cxx0x_cxx" = yes; +then + CXXFLAGS="${CXXFLAGS} -std=c++0x -Wall -Wextra" +else + CXXFLAGS="${CXXFLAGS} -Wall -Wextra" +fi + +AC_SUBST(CXXFLAGS) + dnl create Makefiles AC_OUTPUT([Makefile steghide.spec steghide.doxygen doc/Makefile po/Makefile.in src/Makefile tests/Makefile tests/data/Makefile m4/Makefile intl/Makefile]) --- steghide-0.5.1.old/m4/ac_cxx_compile_stdcxx_0x.m4 1970-01-01 01:00:00.000000000 +0100 +++ steghide-0.5.1.new/m4/ac_cxx_compile_stdcxx_0x.m4 2008-05-09 19:04:46.000000000 +0200 @@ -0,0 +1,107 @@ +# =========================================================================== +# http://autoconf-archive.cryp.to/ac_cxx_compile_stdcxx_0x.html +# =========================================================================== +# +# SYNOPSIS +# +# AC_CXX_COMPILE_STDCXX_0X +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the C++0x +# standard. +# +# LAST MODIFICATION +# +# 2008-04-17 +# +# COPYLEFT +# +# Copyright (c) 2008 Benjamin Kosnik +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ + AC_CACHE_CHECK(if g++ supports C++0x features without additional flags, + ac_cv_cxx_compile_cxx0x_native, + [AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = c;],, + ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no) + AC_LANG_RESTORE + ]) + + AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x, + ac_cv_cxx_compile_cxx0x_cxx, + [AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -std=c++0x" + AC_TRY_COMPILE([ + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = c;],, + ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no) + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE + ]) + + AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x, + ac_cv_cxx_compile_cxx0x_gxx, + [AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -std=gnu++0x" + AC_TRY_COMPILE([ + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = c;],, + ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no) + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE + ]) + + if test "$ac_cv_cxx_compile_cxx0x_native" = yes || + test "$ac_cv_cxx_compile_cxx0x_cxx" = yes || + test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then + AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ]) + fi +]) --- steghide-0.5.1.old/src/Arguments.cc 2003-10-11 23:25:04.000000000 +0200 +++ steghide-0.5.1.new/src/Arguments.cc 2008-05-09 19:04:44.000000000 +0200 @@ -26,10 +26,12 @@ #include "Terminal.h" #include "common.h" #include "error.h" #include "msg.h" +float Arguments::Default_Goal = 100.0 ; + // the global Arguments object Arguments Args ; Arguments::Arguments (int argc, char* argv[]) { --- steghide-0.5.1.old/src/Arguments.h 2003-10-11 23:23:57.000000000 +0200 +++ steghide-0.5.1.new/src/Arguments.h 2008-05-09 19:04:44.000000000 +0200 @@ -98,11 +98,11 @@ static const bool Default_EmbedEmbFn = true ; static const bool Default_Force = false ; static const VERBOSITY Default_Verbosity = NORMAL ; static const unsigned long Default_Radius = 0 ; // there is no default radius for all file formats static const unsigned int Max_Algorithm = 3 ; - static const float Default_Goal = 100.0 ; + static float Default_Goal ; static const DEBUGCOMMAND Default_DebugCommand = NONE ; static const bool Default_Check = false ; static const unsigned int Default_DebugLevel = 0 ; static const unsigned int Default_GmlGraphRecDepth = 0 ; static const unsigned int Default_GmlStartVertex = 0 ; --- steghide-0.5.1.old/src/EncryptionMode.h 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/EncryptionMode.h 2008-05-09 19:04:46.000000000 +0200 @@ -69,11 +69,11 @@ static const unsigned int NumValues = 8 ; IRep Value ; typedef struct struct_Translation { IRep irep ; - char* srep ; + const char* srep ; } Translation ; static const Translation Translations[] ; } ; #endif // ndef SH_ENCMODE_H --- steghide-0.5.1.old/src/Graph.cc 2003-10-11 23:54:26.000000000 +0200 +++ steghide-0.5.1.new/src/Graph.cc 2008-05-09 19:04:46.000000000 +0200 @@ -20,10 +20,12 @@ #include #include #include #include +#include +#include #include "BitString.h" #include "CvrStgFile.h" #include "Edge.h" #include "Graph.h" --- steghide-0.5.1.old/src/Matching.cc 2003-10-11 23:54:30.000000000 +0200 +++ steghide-0.5.1.new/src/Matching.cc 2008-05-09 19:04:46.000000000 +0200 @@ -16,10 +16,11 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ +#include #include "Edge.h" #include "Graph.h" #include "Matching.h" #include "ProgressOutput.h" #include "common.h" --- steghide-0.5.1.old/src/ProgressOutput.cc 2003-10-11 11:20:51.000000000 +0200 +++ steghide-0.5.1.new/src/ProgressOutput.cc 2008-05-09 19:04:44.000000000 +0200 @@ -21,10 +21,12 @@ #include #include "ProgressOutput.h" #include "common.h" +float ProgressOutput::NoAvgWeight = 1.0 ; + ProgressOutput::ProgressOutput () : Message("__nomessage__") { LastUpdate = time(NULL) - 1 ; // -1 to ensure that message is written first time } --- steghide-0.5.1.old/src/ProgressOutput.h 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/ProgressOutput.h 2008-05-09 19:04:44.000000000 +0200 @@ -60,13 +60,13 @@ /** * update the output appending rate, [average edge weight], "done" and a newline * \param rate the rate of matched vertices * \param avgweight the average edge weight (is not printed if not given) **/ - void done (float rate, float avgweight = NoAvgWeight) const ; + void done (float rate, float avgweight = 1.0) const ; - static const float NoAvgWeight = -1.0 ; + static float NoAvgWeight ; protected: std::string vcompose (const char *msgfmt, va_list ap) const ; private: --- steghide-0.5.1.old/src/SMDConstructionHeuristic.cc 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/SMDConstructionHeuristic.cc 2008-05-09 19:04:46.000000000 +0200 @@ -16,10 +16,12 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ +#include + #include "Edge.h" #include "Graph.h" #include "Matching.h" #include "SMDConstructionHeuristic.h" #include "Vertex.h" --- steghide-0.5.1.old/src/WavFile.cc 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/WavFile.cc 2008-05-09 19:04:46.000000000 +0200 @@ -19,10 +19,11 @@ */ #include #include #include +#include #include "CvrStgFile.h" #include "DFSAPHeuristic.h" #include "SampleValueAdjacencyList.h" #include "SMDConstructionHeuristic.h" --- steghide-0.5.1.old/src/wrapper_hash_map.h 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/wrapper_hash_map.h 2008-05-09 19:04:46.000000000 +0200 @@ -25,17 +25,21 @@ #ifdef __GNUC__ # if __GNUC__ < 3 # include namespace sgi { using ::hash ; using ::hash_map ; } ; -# else +# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 ) # include -# if __GNUC_MINOR__ == 0 +# if __GNUC__ == 3 && __GNUC_MINOR__ == 0 namespace sgi = std ; // GCC 3.0 # else namespace sgi = __gnu_cxx ; // GCC 3.1 and later # endif +# else +# include +# define hash_map unordered_map + namespace sgi = std ; # endif #else namespace sgi = std ; #endif --- steghide-0.5.1.old/src/wrapper_hash_set.h 2003-09-28 17:30:30.000000000 +0200 +++ steghide-0.5.1.new/src/wrapper_hash_set.h 2008-05-09 19:04:46.000000000 +0200 @@ -26,17 +26,21 @@ #ifdef __GNUC__ # if __GNUC__ < 3 # include namespace sgi { using ::hash ; using ::hash_set ; } ; -# else +# elif __GNUC__ == 3 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 3 ) # include -# if __GNUC_MINOR__ == 0 +# if __GNUC__ == 3 && __GNUC_MINOR__ == 0 namespace sgi = std ; // GCC 3.0 # else namespace sgi = ::__gnu_cxx ; // GCC 3.1 and later # endif +# else +# include +# define hash_set unordered_set + namespace sgi = std ; # endif #else namespace sgi = std ; #endif