diff --git a/Formula/libodbc++.rb b/Formula/libodbc++.rb new file mode 100644 index 0000000000..1009a256c5 --- /dev/null +++ b/Formula/libodbc++.rb @@ -0,0 +1,50 @@ +require 'formula' + +class Libodbcxx < Formula + homepage 'http://libodbcxx.sourceforge.net' + url 'http://sourceforge.net/projects/libodbcxx/files/libodbc++/0.2.5/libodbc++-0.2.5.tar.gz' + sha1 'e59842266b981caab24a6fae1f7d48b6799420f8' + + # Two patches are included: + # The first: Fixes a compilation error on 64bit machines: + # http://sourceforge.net/tracker/?func=detail&aid=3590196&group_id=19075&atid=319075 + # The second: Fixes a memory corruption error on 64bit systems: + # https://sourceforge.net/tracker/?func=detail&aid=3601361&group_id=19075&atid=319075 + def patches + DATA + end + + def install + system "./configure", "--disable-debug", "--disable-dependency-tracking", + "--prefix=#{prefix}" + system "make install" + end +end + +__END__ +diff --git a/src/dtconv.h b/src/dtconv.h +index b281ec5..18a04da 100644 +--- a/src/dtconv.h ++++ b/src/dtconv.h +@@ -113,7 +113,7 @@ namespace odbc { + snprintf(buf,LONG_STR_LEN, + # endif + # if defined(PRId64) +- ODBCXX_STRING_PERCENT PRId64 ++ "%" PRId64 + # elif ODBCXX_SIZEOF_LONG==8 + ODBCXX_STRING_CONST("%ld") + # else +diff --git a/src/statement.cpp b/src/statement.cpp +index 809278b..e5f0e5d 100644 +--- a/src/statement.cpp ++++ b/src/statement.cpp +@@ -90,7 +90,7 @@ void Statement::_unregisterResultSet(ResultSet* rs) + //protected + SQLUINTEGER Statement::_getUIntegerOption(SQLINTEGER optnum) + { +- SQLUINTEGER res; ++ SQLULEN res; + SQLRETURN r; + + #if ODBCVER < 0x0300