Author: cazfi
Date: Sat Sep 24 15:24:46 2016
New Revision: 33868

URL: http://svn.gna.org/viewcvs/freeciv?rev=33868&view=rev
Log:
Fixed sdl-clients diplomacy dialog crash when there's no pact to cancel and 
declaring
war is not possible.

Reported by Exbed <exbed>

See bug #25085

Modified:
    trunk/client/gui-sdl2/diplodlg.c

Modified: trunk/client/gui-sdl2/diplodlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-sdl2/diplodlg.c?rev=33868&r1=33867&r2=33868&view=diff
==============================================================================
--- trunk/client/gui-sdl2/diplodlg.c    (original)
+++ trunk/client/gui-sdl2/diplodlg.c    Sat Sep 24 15:24:46 2016
@@ -1504,6 +1504,7 @@
     bool shared;
     SDL_Rect area;
     int buttons = 0;
+    bool can_toward_war;
 
     if (pSDip_Dlg) {
       return;
@@ -1546,8 +1547,10 @@
     area.w = MAX(area.w , pText->w);
     area.h += pText->h + adj_size(15);
 
-    if (can_client_issue_orders()
-        && pplayer_can_cancel_treaty(client_player(), pPlayer)) {
+    can_toward_war = can_client_issue_orders()
+      && pplayer_can_cancel_treaty(client_player(), pPlayer);
+
+    if (can_toward_war) {
       if (type == DS_ARMISTICE) {
        fc_snprintf(cBuf, sizeof(cBuf), _("Declare WAR"));
       } else {
@@ -1685,11 +1688,13 @@
     }
 
     /* cancel */
-    pBuf = pBuf->prev;
-    pBuf->size.w = button_w;
-    pBuf->size.h = button_h;
-    pBuf->size.y = pBuf->next->size.y + pBuf->next->size.h + adj_size(10);
-    pBuf->size.x = pBuf->next->size.x;
+    if (can_toward_war) {
+      pBuf = pBuf->prev;
+      pBuf->size.w = button_w;
+      pBuf->size.h = button_h;
+      pBuf->size.y = pBuf->next->size.y + pBuf->next->size.h + adj_size(10);
+      pBuf->size.x = pBuf->next->size.x;
+    }
 
     /* ================================================== */
     /* redraw */


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to