summaryrefslogtreecommitdiff
path: root/games/seahaven/files/patch-auto.C
diff options
context:
space:
mode:
Diffstat (limited to 'games/seahaven/files/patch-auto.C')
-rw-r--r--games/seahaven/files/patch-auto.C179
1 files changed, 179 insertions, 0 deletions
diff --git a/games/seahaven/files/patch-auto.C b/games/seahaven/files/patch-auto.C
new file mode 100644
index 000000000000..29c942b515e0
--- /dev/null
+++ b/games/seahaven/files/patch-auto.C
@@ -0,0 +1,179 @@
+--- auto.C Sun Apr 22 09:37:27 2001
++++ auto.C Tue Aug 6 11:46:09 2002
+@@ -1,7 +1,9 @@
+-#include <stream.h>
++#include <iostream>
++using namespace std;
+
+ #include <string.h>
+ #include <stdlib.h>
++#include <err.h>
+
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -9,7 +11,7 @@
+ #include <fcntl.h>
+ //#include <osfcn.h>
+
+-//#include <stdlib.h> // for getenv()
++#include <stdlib.h> // for getenv()
+
+
+ #include "auto.h"
+@@ -51,11 +53,6 @@
+
+ const int NumRanks = RankLast+1;
+
+-void Error(char *s1 = "", char *s2 = "", char *s3 = "") {
+- cerr << "\n" << s1 << s2 << s3 << "\n";
+- exit(-1);
+-}
+-
+ class Tableaux;
+
+ inline unsigned short Fold(long l) {
+@@ -76,7 +73,7 @@
+ unsigned short Short() const { return Fold(l1)^Fold(l2)^Fold(l3); }
+ bool EmptyP() const { return (l1 == 0) && (l2 == 0) && (l3 == 0); }
+ bool BadP() const { return (l3 < 0); }
+- void Print(ostream &os) const {os<<hex(l1, 8) << hex(l2, 8) << hex(l3,8); }
++ void Print(ostream &os) const {os<<hex<<l1<<hex<<l2<<hex<<l3; }
+ };
+
+ ostream& operator<< (ostream &os, Hash& h) { h.Print(os); return os; }
+@@ -149,7 +146,7 @@
+ }
+
+ int HashList::Add(const Hash& h) {
+- if (!this) Error("Add to NULL HashList.");
++ if (!this) errx(1, "Add to NULL HashList.");
+ if (HashVal().EmptyP()) hash = h;
+ else next = new HashList(h, next);
+ return depth++;
+@@ -184,7 +181,7 @@
+ HashList* hll = &ht[size];
+ for (HashList* hlt = ht; hlt != hll; hlt++)
+ if (! hlt->EmptyP())
+- os << "\n" << dec(hlt-ht,5) << ": " << *hlt;
++ os << "\n" << dec << hlt-ht << ": " << *hlt;
+ }
+
+ static HashTable hashTable(65536);
+@@ -201,8 +198,8 @@
+ void MoveTo(CardRange&);
+ };
+
+-void Dest::MoveTo(Card&) { Error("Dest::MoveTo(Card&)"); }
+-void Dest::MoveTo(CardRange&) { Error("Dest::MoveTo(CardRange&)"); }
++void Dest::MoveTo(Card&) { errx(1, "Dest::MoveTo(Card&)"); }
++void Dest::MoveTo(CardRange&) { errx(1, "Dest::MoveTo(CardRange&)"); }
+
+ typedef void (Dest::* MoveCardToMemberFunction)(Card&);
+ typedef void (Dest::* MoveCardRangeToMemberFunction)(CardRange&);
+@@ -214,9 +211,9 @@
+ public:
+ Card(Suit suit, Rank rank) {
+ if ((suit < SuitFirst) || (suit > SuitLast))
+- Error("Bad suit ", dec((int)suit), " in Card constructor.");
++ errx(1, "Bad suit %d in Card constructor.", (int)suit);
+ if ((rank < RankFirst) || (rank > RankLast))
+- Error("Bad rank ", dec((int)rank), " in Card constructor.");
++ errx(1, "Bad rank %d in Card constructor.", (int)rank);
+ thisSuit = suit; thisRank = rank; empty = 0;
+ }
+ Card(char *st);
+@@ -248,16 +245,16 @@
+
+ void Card::Print(ostream &os) const {
+ if (EmptyP()) os << "--";
+- else os << chr(rankName[rank()]) << chr(suitName[suit()]);
++ else os << rankName[rank()] << suitName[suit()];
+ }
+
+ Card::Card(char* st) {
+ char *c;
+ c = strchr(suitName, st[1]);
+- if (! c) Error("Bad suit ", chr(st[1]), " in Card string constructor.");
++ if (! c) errx(1, "Bad suit %c in Card string constructor.", st[1]);
+ thisSuit = Suit(c-suitName);
+ c = strchr(rankName, st[0]);
+- if (! c) Error("Bad rank ", chr(st[0]), " in Card string constructor.");
++ if (! c) errx(1, "Bad rank %c in Card string constructor.", st[0]);
+ thisRank = Rank(c - rankName);
+ empty = 0;
+ }
+@@ -275,7 +272,7 @@
+ void Init(Card c, CountType count) { thisCard = c; thisCount = count; }
+ public:
+ CardRange(Suit s, Rank rank1, Rank rank2) {
+- if (rank2 < rank1) Error("rank2 < rank1 in CardRange constructor.");
++ if (rank2 < rank1) errx(1, "rank2 < rank1 in CardRange constructor.");
+ Init(Card(s, rank1), rank2-rank1+1);
+ }
+ CardRange(Suit s, Rank rank, CountType count = 1) {
+@@ -290,7 +287,7 @@
+ Card next() const { return thisCard.next(thisCount); }
+ CountType Count() const { return thisCount; }
+ void Prepend(const CardRange& cr) {
+- if (!cr.nextP(First())) Error("CardRange::Prepend, not next.");
++ if (!cr.nextP(First())) errx(1, "CardRange::Prepend, not next.");
+ thisCount += cr.Count();
+ thisCard = cr.First();
+ }
+@@ -416,7 +413,7 @@
+ };
+
+ void Spaces::MoveTo(CardRange& from) { MoveToSpace(from); }
+-void Spaces::MoveTo(Card&) { Error("Spaces::MoveTo(Card&)"); }
++void Spaces::MoveTo(Card&) { errx(1, "Spaces::MoveTo(Card&)"); }
+
+ const int NumPiles = 10;
+
+@@ -484,7 +481,7 @@
+ Dest& dest;
+ public:
+ Move(Dest& d) : dest(d) { }
+- virtual void DoIt() { Error("Move::DoIt()"); };
++ virtual void DoIt() { errx(1, "Move::DoIt()"); };
+ };
+
+ class MoveCard : public Move {
+@@ -569,7 +566,7 @@
+ }
+
+ if ((l1==0)&&(l2==0)&&(l3==0))
+- Error("Tableaux hashes to NULL.");
++ errx(1, "Tableaux hashes to NULL.");
+ }
+
+ bool Tableaux::WonP() {
+@@ -853,8 +850,9 @@
+ for (Suit s = SuitFirst; s <= SuitLast; s = Suit(s+1))
+ for (Rank r = RankFirst; r <= RankLast; r = Rank(r+1))
+ if (deck[s][r] != 1) {
+- cerr << "\n" << Card(s, r) << " count is " << deck[s][r];
+- Error();
++ cerr << "\n" << Card(s, r) << " count is " << deck[s][r]
++ << endl;
++ exit(-1);
+ }
+
+ CanonicalForm();
+@@ -915,7 +913,7 @@
+ #ifdef AUTO
+
+ #include <stdio.h>
+-#include <fstream.h>
++#include <fstream>
+
+ int AutoPlay() {
+
+@@ -924,7 +922,7 @@
+ sprintf(savefile, "%s/.seahavensave", getenv("HOME"));
+
+ ifstream in(savefile, ios::in);
+- if (!in) Error("Can't open", savefile);
++ if (!in) errx(1, "Can't open %s", savefile);
+
+ Tableaux t(in);
+