From 4b69dde2d72b46d30386935de8326043f02b238e Mon Sep 17 00:00:00 2001
From: PatR <rankin@nethack.org>
Date: Sat, 19 Dec 2015 17:11:33 -0800
Subject: [PATCH] tin opener fix

Applying a non-wielded tin opener and then declining to pick a tin to
open would wield the opener without having any time elapse.

Reformat the new tin opener code.

Remove a no-longer-used label in doapply() in order to avoid a warning
from gcc.
---
 src/apply.c |  3 +--
 src/eat.c   | 25 +++++++++++++++----------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/apply.c b/src/apply.c
index 66e291946..12d6812bf 100644
--- a/src/apply.c
+++ b/src/apply.c
@@ -1,4 +1,4 @@
-/* NetHack 3.6	apply.c	$NHDT-Date: 1450481050 2015/12/18 23:24:10 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.214 $ */
+/* NetHack 3.6	apply.c	$NHDT-Date: 1450573880 2015/12/20 01:11:20 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.216 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -3537,7 +3537,6 @@ doapply()
             break;
         }
         pline("Sorry, I don't know how to use that.");
-    xit:
         nomul(0);
         return 0;
     }
diff --git a/src/eat.c b/src/eat.c
index 2fb798b25..4e97a5818 100644
--- a/src/eat.c
+++ b/src/eat.c
@@ -1,4 +1,4 @@
-/* NetHack 3.6	eat.c	$NHDT-Date: 1449269916 2015/12/04 22:58:36 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.154 $ */
+/* NetHack 3.6	eat.c	$NHDT-Date: 1450573885 2015/12/20 01:11:25 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.156 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -2581,9 +2581,9 @@ doeat()
 
 int
 use_tin_opener(obj)
-register struct obj *obj;
+struct obj *obj;
 {
-    register struct obj *otmp;
+    struct obj *otmp;
     int res = 0;
 
     if (!carrying(TIN)) {
@@ -2594,17 +2594,22 @@ register struct obj *obj;
     if (obj != uwep) {
         if (obj->cursed && obj->bknown) {
             char qbuf[QBUFSZ];
-            (void) safe_qbuf(qbuf, "Really wield ", "?", obj, doname, ansimpleoname, "that");
-            if (ynq(qbuf) != 'y') return 0;
+
+            if (ynq(safe_qbuf(qbuf, "Really wield ", "?",
+                              obj, doname, thesimpleoname, "that")) != 'y')
+                return 0;
         }
-	if (!wield_tool(obj, "use")) return 0;
-	else res = 1;
+	if (!wield_tool(obj, "use"))
+            return 0;
+        res = 1;
     }
 
-    otmp = getobj((const char *)comestibles, "open");
-    if (!otmp) return 0;
+    otmp = getobj(comestibles, "open");
+    if (!otmp)
+        return res;
+
     start_tin(otmp);
-    return(1);
+    return 1;
 }
 
 /* Take a single bite from a piece of food, checking for choking and
-- 
2.40.0