#include <stdint.h>
#include <csignal>
#include <cinttypes>
+#include <unistd.h>
#include "../minisat/Solver.h"
#include "../minisat/SimpSolver.h"
--- /dev/null
+--- SolverTypes.h
++++ SolverTypes.h
+@@ -52,7 +52,7 @@ struct Lit {
+ int x;
+
+ // Use this as a constructor:
+- friend Lit mkLit(Var var, bool sign = false);
++ friend Lit mkLit(Var var, bool sign);
+
+ bool operator == (Lit p) const { return x == p.x; }
+ bool operator != (Lit p) const { return x != p.x; }
+@@ -60,7 +60,7 @@ struct Lit {
+ };
+
+
+-inline Lit mkLit (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }
++inline Lit mkLit (Var var, bool sign = false) { Lit p; p.x = var + var + (int)sign; return p; }
+ inline Lit operator ~(Lit p) { Lit q; q.x = p.x ^ 1; return q; }
+ inline Lit operator ^(Lit p, bool b) { Lit q; q.x = p.x ^ (unsigned int)b; return q; }
+ inline bool sign (Lit p) { return p.x & 1; }
--- /dev/null
+--- ParseUtils.h
++++ ParseUtils.h
+@@ -24,8 +24,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
+ #include <stdlib.h>
+ #include <stdio.h>
+
+-#include <zlib.h>
+-
+ #include "XAlloc.h"
+
+ namespace Minisat {
+@@ -36,24 +34,16 @@ namespace Minisat {
+
+
+ class StreamBuffer {
+- gzFile in;
+ unsigned char* buf;
+ int pos;
+ int size;
+
+ enum { buffer_size = 64*1024 };
+
+- void assureLookahead() {
+- if (pos >= size) {
+- pos = 0;
+- size = gzread(in, buf, buffer_size); } }
++ virtual void assureLookahead() = 0;
+
+ public:
+- explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0){
+- buf = (unsigned char*)xrealloc(NULL, buffer_size);
+- assureLookahead();
+- }
+- ~StreamBuffer() { free(buf); }
++ virtual ~StreamBuffer() { }
+
+ int operator * () const { return (pos >= size) ? EOF : buf[pos]; }
+ void operator ++ () { pos++; assureLookahead(); }
--- /dev/null
+#!/bin/bash
+
+rm -f LICENSE *.cc *.h
+git clone --depth 1 https://github.com/niklasso/minisat minisat_upstream
+rm minisat_upstream/minisat/*/Main.cc
+mv minisat_upstream/LICENSE minisat_upstream/minisat/*/*.{h,cc} .
+rm -rf minisat_upstream
+
+sed -i -e 's,^#include *"minisat/[^/]\+/\?,#include ",' *.cc *.h
+sed -i -e 's/Minisat::memUsedPeak()/Minisat::memUsedPeak(bool)/' System.cc
+sed -i -e 's/PRI[iu]64/ & /' Options.h Solver.cc
+sed -i -e '1 i #define __STDC_LIMIT_MACROS' *.cc
+sed -i -e '1 i #define __STDC_FORMAT_MACROS' *.cc
+
+patch -p0 < 00_PATCH_mkLit_default_arg.patch
+patch -p0 < 00_PATCH_remove_zlib.patch
+
+++ /dev/null
---- SolverTypes.h
-+++ SolverTypes.h
-@@ -52,7 +52,7 @@ struct Lit {
- int x;
-
- // Use this as a constructor:
-- friend Lit mkLit(Var var, bool sign = false);
-+ friend Lit mkLit(Var var, bool sign);
-
- bool operator == (Lit p) const { return x == p.x; }
- bool operator != (Lit p) const { return x != p.x; }
-@@ -60,7 +60,7 @@ struct Lit {
- };
-
-
--inline Lit mkLit (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }
-+inline Lit mkLit (Var var, bool sign = false) { Lit p; p.x = var + var + (int)sign; return p; }
- inline Lit operator ~(Lit p) { Lit q; q.x = p.x ^ 1; return q; }
- inline Lit operator ^(Lit p, bool b) { Lit q; q.x = p.x ^ (unsigned int)b; return q; }
- inline bool sign (Lit p) { return p.x & 1; }
#include <stdlib.h>
#include <stdio.h>
-#include <zlib.h>
-
#include "XAlloc.h"
namespace Minisat {
class StreamBuffer {
- gzFile in;
unsigned char* buf;
int pos;
int size;
enum { buffer_size = 64*1024 };
- void assureLookahead() {
- if (pos >= size) {
- pos = 0;
- size = gzread(in, buf, buffer_size); } }
+ virtual void assureLookahead() = 0;
public:
- explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0){
- buf = (unsigned char*)xrealloc(NULL, buffer_size);
- assureLookahead();
- }
- ~StreamBuffer() { free(buf); }
+ virtual ~StreamBuffer() { }
int operator * () const { return (pos >= size) ? EOF : buf[pos]; }
void operator ++ () { pos++; assureLookahead(); }
+++ /dev/null
-#!/bin/bash
-
-rm -f LICENSE *.cc *.h
-git clone --depth 1 https://github.com/niklasso/minisat minisat_upstream
-rm minisat_upstream/minisat/*/Main.cc
-mv minisat_upstream/LICENSE minisat_upstream/minisat/*/*.{h,cc} .
-rm -rf minisat_upstream
-
-sed -i -e 's,^#include *"minisat/[^/]\+/\?,#include ",' *.cc *.h
-sed -i -e 's/Minisat::memUsedPeak()/Minisat::memUsedPeak(bool)/' System.cc
-sed -i -e 's/PRI[iu]64/ & /' Options.h Solver.cc
-sed -i -e '1 i #define __STDC_LIMIT_MACROS' *.cc
-sed -i -e '1 i #define __STDC_FORMAT_MACROS' *.cc
-
-patch -p0 < PATCH_mkLit_default_arg.patch
-