]> granicus.if.org Git - nethack/commit
timer validations
authorPatR <rankin@nethack.org>
Sat, 27 Jul 2019 23:12:24 +0000 (16:12 -0700)
committerPatR <rankin@nethack.org>
Sat, 27 Jul 2019 23:12:24 +0000 (16:12 -0700)
commited18ebc5459505f6bbf2e9104a59abb4941999a3
tree7e255524781cf08d2114402801e959c606606ad1
parenta607ea2b7f2a24ba8c8f9ae2ace27bf922f4656f
timer validations

Add the contributed code that checks for attempting to start a
duplicate timer.  It's based on a comment which must have been there
at least 25 years and doesn't solve any known problems, but it is
conceptually similar to the large amount of sanity checking which has
gone into 3.6.x.

It didn't work as is because it was comparing two unions with '=='.
I don't know offhand whether C++ supports that but C doesn't (through
C11 at least; don't know about C17).  The union ('anything') is simple
enough that two instances can be compared without jumping through hoops.

I've also added another check for timer 'kind' (level, object, monster,
or global).
doc/fixes36.3
include/timeout.h
src/timeout.c