Do not disintegrate BDSM.
Add a new hallucinatory YAFM.
Merge branch 'savebreak' of git://gitorious.org/nitrohack/scshunt into savebreak
Merge remote-tracking branch 'ais523/savebreak' into savebreak
Add a list of Messages of the Day

These don't do anything yet; it's just a data file, the game itself
doesn't yet read it.  The idea is that eventually, MotDs will be
retrieved from nethack4.org (if the user permits it) to allow things
like new version announcements and tournament information to be
pushed out even to players who play local.  Perhaps we could also
use the mechanism to distribute bones, Hearse-style; taking the bones
from the server would remove the risk of malicious bones files that
plagues Hearse (or at least mean that they would require actual
gameplay to produce).
Remove unused curses dialect compatibility code

We're using just the one cursesish implementation on all platforms,
now.
Fix some buffer overflows
Change the sidebar settings to on/off/auto

The current settings are OK for an always-80-by-24 map, but with
tiles, we want to potentially expand the map larger, which means that
we should give players an option to take space from the map and use
it for an inventory window.
Make libuncursed a bit more robust against implausible input

Things like hanging up a terminal while it's in the process of being
resized cause problems; also, various obviously incorrect operations
now have the effect of "return ERR" rather than "corrupt memory".
This also fixes an off-by-one in a plausibility check that already
existed in the code, and turns on stack protectors (to help find what
was causing the memory corruption).
Add a Valgrind suppression file for xterm

Let's not mix up problems with xterm with problems with NetHack 4. (I
was running Valgrind around xterm so that I could repeatedly resize
the window without disrupting all my other terminals.)
Rewrite window layout code and UI flags

The game now handles very large and very small windows more sensibly.
Very large windows have a fourth window, extrawin, below the status
area; this isn't used for anything yet, but allows the inventory to
expand to the full terminal height. When the sidebar isn't drawn
(either because the terminal width is something awkward like 84, or
because the user turned it off), the map will be horizontally
centered. In tiles mode, the map will expand to take up more space
according to how large the tiles are.

Very small terminals still don't render correctly, but will cause
fewer crashes (for instance, the game no longer crashes when opening
inventory in a 2x2 window). Sub-80x24 terminals now produce better
feedback upon game load (the game refuses to load until the terminal
is sized larger, allows the user to size it larger, and allows the
program to be quit if the terminal can't be sized larger for some
reason).

This also contains several fixes to the rendering library, and
(because they were being rewritten anyway) to UI flags; several
dead options have been removed. (Dead options are more dangerous
than dead globals, in a way, because players may try to change
them on the assumption that they do something.)

Fixes #249, #380.
Don't allow binding a key to servercancel

It wouldn't actually do anything if you did, and showing an internal
use only command in the key binding dialog is just confusing.
Add the map files for importing tiles from Slash'EM

Slash'EM is better than NetHack for tile imports; there's so much
more stuff in Slash'EM than in NetHack that there's more graphics to
choose from. (Although it's missing aprons and buckled boots.)
Implement substitution modes for tiles

This makes different branches look different in tiles, just like in
3.4.3. (The tiles already exist, for that reason.)
Fix another unguarded newsym
Remove more inappropriate uses of the global level pointer

These mistakes were happening often enough that I decided to check
all the newsym calls in the game, and guard any that I wasn't certain
were safe. newsym() problems have now been "confirmed" fixed by both
the ais523 method (grepping for every call), and the tungtn method
(tungtn likes to just generate 200 or so random levels from time to
time; I did that myself and caught a newsym issue in newcham() with
it).
Fix cancelling setting a string option

The codepaths for cancelling the setting, and setting the option to
a null string, were exchanged by mistake. Now, ESC leaves the option
the same, pressing Return immediately gives you a null string.
Default bindings for "quiver": {Q or #quiver} rather than {Q}

The main reason for this is to create ambiguity with #quit, making
it rather harder to quit by mistake (you need to type all four
letters of "quit", or else use the S!y method); this should help
out vanilla players who are in the habit of typing #q. This is a
default binding change, so players who really want to accidentally
quit their games can change it back by unbinding #quiver from
the quiver command.
Fix a typo in a message
Add padding to the save format for you and flags

Once we move back from savebreak to windowports, this will give us
some breathing room to add new character attributes and flags
without breaking save compatibility, nor having to maintain
backwards compatibility code forever. (The idea is that we reset
the size of the padding whenever save compatibility has to be
broken anyway.)