diff --git a/src/lib/commands/tend.c b/src/lib/commands/tend.c index 1679ca94..516e4861 100644 --- a/src/lib/commands/tend.c +++ b/src/lib/commands/tend.c @@ -227,6 +227,10 @@ tend_comm_to(struct shpstr *from, struct ichrstr *ip, int amt, int can_take = to_max - to->shp_item[ip->i_uid]; int transfer; + if (!to_max) { + pr("%s cannot hold any %s\n", prship(to), ip->i_name); + return 0; + } if (ip->i_uid == I_CIVIL && from->shp_own != to->shp_own) { pr("%s civilians refuse to board %s!\n", from->shp_own == player->cnum ? "Your" : "Foreign", diff --git a/tests/load-tend/03-tend-1 b/tests/load-tend/03-tend-1 index 86bc2fb9..9a61b5db 100644 --- a/tests/load-tend/03-tend-1 +++ b/tests/load-tend/03-tend-1 @@ -85,7 +85,6 @@ tend h 151 -1 150/152 || tend something the target can't hold tend u 150 1 170/171 tend u 170/171 -1 150 -| odd: only the second command reports "cannot hold" | || tend more than the tender has | #150 gives 7s, #152 gives 9s diff --git a/tests/load-tend/journal.log b/tests/load-tend/journal.log index fd61cec5..994002fb 100644 --- a/tests/load-tend/journal.log +++ b/tests/load-tend/journal.log @@ -2217,6 +2217,8 @@ Play#1 output Play#1 6 0 403 Play#1 input tend u 150 1 170/171 Play#1 command tend + Play#1 output Play#1 1 frg frigate (#170) cannot hold any uncompensated workers + Play#1 output Play#1 1 sb submarine (#171) cannot hold any uncompensated workers Play#1 output Play#1 1 0 total uncompensated workers transferred off of cs cargo ship (#150) Play#1 output Play#1 6 0 402 Play#1 input tend u 170/171 -1 150