retreat: Fix infinite loop when third argument contains '?'

Broken in commit bb5dfd8, v4.3.16.  Fix by recognizing '?' only when
getting the argument interactively.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2014-01-21 21:05:50 +01:00
parent b3453efdfc
commit c699949326

View file

@ -104,7 +104,7 @@ retreat(int type)
*pq = 0; *pq = 0;
break; break;
} }
if (ch == '?') { if (ch == '?' && !player->argp[3]) {
for (j = 1; rflagsc[j]; j++) { for (j = 1; rflagsc[j]; j++) {
if (rflagsc[j] != 'X') if (rflagsc[j] != 'X')
pr("%c\tretreat when %s\n", pr("%c\tretreat when %s\n",