]> granicus.if.org Git - nethack/commitdiff
autounlock parsing confusion
authorPatR <rankin@nethack.org>
Sat, 7 May 2022 01:41:54 +0000 (18:41 -0700)
committerPatR <rankin@nethack.org>
Sat, 7 May 2022 01:41:54 +0000 (18:41 -0700)
For char *next; don't compare (next = index(...)) != '\0'.
'\0' has value 0 and 0 used in a pointer context is a null pointer.
So the code worked as intended even though it wasn't written as
what was intended.  Fix: take off the char decoration.

src/options.c

index 796935a7214a87181f9f0bc0823c0da1cf87f7d3..743349bbbee95c85e13246c0da8cad7c55f5910e 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.7 options.c       $NHDT-Date: 1647472681 2022/03/16 23:18:01 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.542 $ */
+/* NetHack 3.7 options.c       $NHDT-Date: 1651887695 2022/05/07 01:41:35 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.555 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Michael Allison, 2008. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -751,7 +751,7 @@ optfn_autounlock(
         sep = index(op, '+') ? '+' : ' ';
         while (op) {
             op = trimspaces(op); /* might have leading space */
-            if ((nxt = index(op, sep)) != '\0') {
+            if ((nxt = index(op, sep)) != 0) {
                 *nxt++ = '\0';
                 op = trimspaces(op); /* might have trailing space after
                                       * plus sign removal */