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