$NetBSD: patch-ad,v 1.6 2014/02/09 16:50:45 wiedi Exp $

--- main.cpp.orig	2000-04-01 07:46:20.000000000 +0000
+++ main.cpp
@@ -3,20 +3,23 @@
 
 /*  Main functions controlling program */
 
-#include <iostream.h>
-#include <iomanip.h>
+#include <iostream>
+#include <iomanip>
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
 #include <stdio.h>
 #include <signal.h>
-#include <fstream.h>
+#include <fstream>
 
 #include "define.h"
 
+using namespace std;
+
 #if UNIX
  #include <sys/types.h>
  #include <sys/time.h>
+ #include <unistd.h>
 #else
  #include <windows.h>
  #include <time.h>
@@ -42,21 +45,21 @@ int omttc = 0, mttc = 0, inc = 0; float
 int display_board = 0;
 int analysis_mode = 0;
 extern int fail;   // flag for fail high/fail low from search
-extern move ponder_move;
+extern my_move ponder_move;
 extern int logging;
 
 ofstream logfile;
 int MAX_LOGS = 100;
 
 // xboard flag
-int xboard, post, ics, ALLEG = 0, hintflag = 0, count = 1;
+int xboard, post, ics, ALLEG = 0, hintflag = 0, my_count = 1;
 int ponder_flag = 1, learn_bk, shout_book;
 int no_book = 0;  // count of moves without a book move
 position reset_pos;
 extern int ponder, last_ponder, learn_count, learned;
 extern unsigned long TAB_SIZE, PAWN_SIZE;
 
-// executable directory
+// exchess opening book and search parameters directory
 char exec_path[100];
 
 // performance function
@@ -88,21 +91,12 @@ ofstream printer;
 int main(int argc, char *argv[])
 {
   char mstring[10];
-  move hint;
+  my_move hint;
   xboard = 0; ponder = 0; ics = 0;
   learn_count = 0; learned = 0; learn_bk = 1; shout_book = 0;
 
 
-   strcpy(exec_path, argv[0]);
-   // parsing exec path
-   int last_slash = 0;
-   for(int j = 0; j < 100; j++) {
-     if(exec_path[j] == '\0') break;
-     if(exec_path[j] == '\\') last_slash = j;
-     if(exec_path[j] == '/') last_slash = j;
-   }
-
-   exec_path[last_slash+1] = '\0';
+   strcpy(exec_path, EXCHESS_DIR);
 
  /* initializing hash tables, check tables, scoring parameters,
     and the random number seed and tablebases */
@@ -117,7 +111,7 @@ int main(int argc, char *argv[])
      if(li < 10) sprintf(lfile, "run_log.00%i", li);
      else if(li < 100) sprintf(lfile, "run_log.0%i", li);
      else sprintf(lfile, "run_log.%i", li);
-     logfile.open(lfile, ios::noreplace | ios::out);
+     logfile.open(lfile, ios::out);
      if(logfile) break;
     }
     if(!logfile) {
@@ -164,7 +158,7 @@ int main(int argc, char *argv[])
 
   /* main loop */   
 
-  while (count > 0)
+  while (my_count > 0)
    {
 
     // find a hint move, check book first then look in pv
@@ -204,14 +198,14 @@ int main(int argc, char *argv[])
     if(!game_pos.wtm)                        // if it is black's turn
     {
      if(both) p_side = 0;
-     if(!xboard) cout << "Black-To-Move[" << ceil(T/2) << "]: ";
-     if(logging) logfile << "Black-To-Move[" << ceil(T/2) << "]: ";
+     if(!xboard) cout << "Black-To-Move[" << ceil((double)(T/2)) << "]: ";
+     if(logging) logfile << "Black-To-Move[" << ceil((double)(T/2)) << "]: ";
     }
     else                                         // or if it is white's
     {
      if(both) p_side = 1;
-     if(!xboard) cout << "White-To-Move[" << (ceil(T/2) + 1) << "]: ";
-     if(logging) logfile << "White-To-Move[" << (ceil(T/2) + 1) << "]: ";
+     if(!xboard) cout << "White-To-Move[" << (ceil((double)(T/2)) + 1) << "]: ";
+     if(logging) logfile << "White-To-Move[" << (ceil((double)(T/2)) + 1) << "]: ";
     }
 
     cout.flush();
@@ -322,12 +316,12 @@ void make_move()
      if(p_side != game_pos.wtm)
       {
        if(game_pos.wtm) {
-         cout << (ceil(T/2) + 1) << ". ";
+         cout << (ceil((double)(T/2)) + 1) << ". ";
          if(xboard) cout << "... ";
-         if(logging) logfile << (ceil(T/2) + 1) << ". ";
+         if(logging) logfile << (ceil((double)(T/2)) + 1) << ". ";
        } else {
-         cout << ceil(T/2) << ". ... ";
-         if(logging) logfile << ceil(T/2) << ". ... ";
+         cout << ceil((double)(T/2)) << ". ... ";
+         if(logging) logfile << ceil((double)(T/2)) << ". ... ";
        }
        print_move(game_pos, best, mstring);
        cout << mstring << "\n";
@@ -558,7 +552,7 @@ void drawboard()
      print_move(last_pos, game_pos.last, mstring);
      cout << mstring;
     }
-   if(j==3) cout << "   fifty: " << ceil(game_pos.fifty/2);
+   if(j==3) cout << "   fifty: " << ceil((double)(game_pos.fifty/2));
    if(j==2) cout << "   Computer time: " << int(timeleft/100) << " seconds";
   }
    cout << "\n  +---+---+---+---+---+---+---+---+";
@@ -745,7 +739,7 @@ void parse_command()
   else if(!strcmp(response, "nopost")) { post = 0; }
   else if(!strcmp(response, "probe")) { cout << probe_tb(&game_pos,0) << "\n"; }
   else if(!strcmp(response, "save") || !strcmp(response, "SR")) { save_game(); }
-  else if(!strcmp(response, "quit")) { game_over = 1; count = 0; }
+  else if(!strcmp(response, "quit")) { game_over = 1; my_count = 0; }
   else if(!strcmp(response, "performance")) { performance(); }
   else if(!strcmp(response, "setboard"))
    { cin >> inboard >> ms >> castle >> ep; mttc = omttc; game_over = 0;
@@ -795,7 +789,7 @@ void performance()
 // when the best move was first found and held on to.
 
 float soltime;
-int bmcount, tsuite = 0; move bmoves[10];
+int bmcount, tsuite = 0; my_move bmoves[10];
 int best_depth, best_score;
 extern int stage;
 unsigned long nodes, nodes1, test_time, test_time1;
@@ -1063,7 +1057,7 @@ void save_game()
   for(int i = 1; i < TURN; i++)
    {
     print_move(game_pos, game_history[i-1], mstring);
-    if (game_pos.wtm) outfile << (ceil(i/2) + 1) << ". " << mstring;
+    if (game_pos.wtm) outfile << (ceil((double)(i/2)) + 1) << ". " << mstring;
     else outfile << mstring;
     outfile << " ";
     if(!(T%8)) outfile << "\n";
