Fix mamer crash on listmanagers command
[capablanca.git] / lasker-2.2.3 / bots / mamer / CommandEntry.cc
index 39c884b..4046358 100644 (file)
@@ -230,7 +230,7 @@ int CommandEntry::ListManagers(User *user, param_list params) {
                        "-----------------", "---", "----", "--------", "",
                        "-----------------", "---", "----", "--------", "", "\\n");
       i=1;
-      memset(date, '\0', 64);
+      memset(date, '\0', 16);
       gMamer.XServerCom("\n%s %s ", "qtell", user->name);
       while(fscanf(theFile, "%s", manager) > 0) {
        needToDelete = 0;
@@ -576,6 +576,37 @@ int CommandEntry::OpenTourney(User *user, param_list params) {
   return(0);
 }//- End OpenTourney
 
+//- PauseTourney ------------------------------------------------------------
+int CommandEntry::PauseTourney(User *user, param_list params) {
+  Tourney *tourn = NULL;
+
+  tourn = gMamer.FindTourney(params[0].val.integer);
+  if(NULL != tourn) {
+    if(tourn->GetStatus() == CLOSED) {
+      tourn->SetPause(TRUE);
+    }
+    return(1);
+  }
+  gMamer.TellUser(NotFound, user->name, "tourney");  
+  return(0);
+}//- End PauseTourney
+
+//- ResumeTourney ------------------------------------------------------------
+int CommandEntry::ResumeTourney(User *user, param_list params) {
+  Tourney *tourn = NULL;
+
+  tourn = gMamer.FindTourney(params[0].val.integer);
+  if(NULL != tourn) {
+    if(tourn->GetStatus() == CLOSED && tourn->IsPaused()) {
+      tourn->SetPause(FALSE); // unpause
+      gMamer.NextRound(); // and start next round
+    }
+    return(1);
+  }
+  gMamer.TellUser(NotFound, user->name, "tourney");  
+  return(0);
+}//- End ResumeTourney
+
 //- AnnounceTourney ----------------------------------------------------------
 int CommandEntry::AnnounceTourney(User *user, param_list params) {
   Tourney *tourn = NULL;