cohrs [Tue, 21 Oct 2003 17:16:50 +0000 (17:16 +0000)]
pets getting "stuck" trying to reach inaccessible objects
Incorporate a slightly modified version of a patch submitted by <Someone> back in June. The basic problem, which I noticed again this past
weekend, is that pets with a high apport value can still try to get to
objects when there's no path to the object. The patch extends the
can_reach_food function to be used for any object, renaming it to
can_reach_location, and adds a could_reach_item function for doing point
checks. This also removes any chance of a pet dragon, for example, eating
something underwater.
nethack.allison [Tue, 21 Oct 2003 16:47:59 +0000 (16:47 +0000)]
Half_physical_damage 2
Another batch of missing Half_physical_damage checks
from the list provided by <Someone>:
- Scrolls of fire (!confused)
- Broken wands
- Splattered burning oil from thrown potion
- Dipping a lit lamp into a potion of oil
- Scrolls of fire (confused, didn't bother with non-confused)
- Being caught in a fireball
cohrs [Tue, 21 Oct 2003 16:20:18 +0000 (16:20 +0000)]
U704 - creating unappropriate hell random monsters
When changing levels, the state of rndmonst() is reset, causing the monster
choices to be recalculated. However, the frequency counts for initial
uncommon() monsters were never cleared. Thus, if the first non-extinct
monster were a hell monster, and you returned to the main dungeon, the hell
monster will remain in the list and could be selected.
nethack.allison [Tue, 21 Oct 2003 15:19:08 +0000 (15:19 +0000)]
win32tty hangs if you ^C at "Who are you?"
From Newsgroups: rec.games.roguelike.nethack :
> <email deleted>
> Subject: question for windows tty users
>
> I am trying to hunt down a bug, and want to know if I have
> encountered another one of those bizarre "features" that only
> occur on my computer (I seem to get a lot of them).
>
> I can reproduce this bug, or whatever it is, in the official
> Windows binary like this: Start the tty version of NetHack by
> double clicking on the program. You won't see the bug if you
> start it from the command line. When the game asks, "Who are
> you?" press ^C. NetHack will respond with "^C abort. Hit
> <Enter> to end," and then it hangs. Pressing Enter does
> nothing, and the program does not end.
>
> Can anybody else reproduce this behaviour? Thanks in advance.
>
> -- <Someone>
nethack.allison [Tue, 21 Oct 2003 14:17:04 +0000 (14:17 +0000)]
win32tty hangs if you ^C at "Who are you?"
From Newsgroups: rec.games.roguelike.nethack :
> <email deleted>
> Subject: question for windows tty users
>
> I am trying to hunt down a bug, and want to know if I have
> encountered another one of those bizarre "features" that only
> occur on my computer (I seem to get a lot of them).
>
> I can reproduce this bug, or whatever it is, in the official
> Windows binary like this: Start the tty version of NetHack by
> double clicking on the program. You won't see the bug if you
> start it from the command line. When the game asks, "Who are
> you?" press ^C. NetHack will respond with "^C abort. Hit
> <Enter> to end," and then it hangs. Pressing Enter does
> nothing, and the program does not end.
>
> Can anybody else reproduce this behaviour? Thanks in advance.
>
> -- <Someone>
nethack.rankin [Tue, 21 Oct 2003 05:59:33 +0000 (05:59 +0000)]
some lint cleanup
Using
gcc -Wall -Wshadow -Wpointer-arith -Wwrite-strings \
-Wmissing-braces -Wmissing-prototypes
with an old version of gcc.
mhitu.c: In function `hitmu':
mhitu.c:1176: warning: declaration of `buf' shadows previous local
options.c: In function `special_handling':
options.c:2712: warning: initialization discards `const' from pointer target type
options.c:2745: warning: initialization discards `const' from pointer target typ
trap.c: In function `dotrap':
trap.c:1111: warning: `saddle' might be used uninitialized in this function
The first one is no longer present in the trunk code. The last one is
bogus as its wishy-washy wording suggests.
cohrs [Tue, 21 Oct 2003 04:28:16 +0000 (04:28 +0000)]
old bug report: unchanging iron golem still rehumanizes
Calling rehumanize directly when u.mh > 0 doesn't consider Unchanging
(perhaps it should?). But, it's probably better to call losehp anyway.
Also, part of a buglist item: .5PD didn't affect rust trap damage on iron golem
cohrs [Tue, 21 Oct 2003 02:27:43 +0000 (02:27 +0000)]
U453 and buglist item - travel command updates
I wrote to the devteam early last week:
> Given my understanding of travel, it's supposed to be somewhat intelligent,
> and "convenient", and should, therefore avoid walking into water, lava,
> traps, or other things that distant movement would avoid, even if you're
> right next it. Unless... the travel destination is the "bad" location
> next to you when the travel starts.
To that end...
- add a context (iflags in 3.4.3 to maintain savefile compat) flag to
differenciate the first travel step from later steps, to allow the
detection of the final sentence, above.
- several changes to set/reset the travel1 flag as needed
- add code to findtravelpath to treat the first step specially if it's
the only step, allowing forced travel into a "bad" location
- correct the "don't travel over traps" code, which was getting confused
because hero's starting location was being avoided
- add code to avoid traveling into water and lava, duplicating
checks used for non-travel running
- fix some strange "guess" travel behavior: avoid zigzag paths when there's
a more direct path (even though the number of moves is the same)
- trunk change adds a new DISP_ALL tmp_at type, and uses it in some debug
code for travel, debug changes not added to the 3.4.3 branch
cohrs [Tue, 21 Oct 2003 01:06:05 +0000 (01:06 +0000)]
gnome does not like ^C
This hack simply causes ^C to be ignored completely by the gnome interface.
Gnome really cannot handle interrupts, and the window port interface does
not currently provide a way for the gnome interface to just quit. Allowing
the gnome interface to prompt would require a complete overhall to the the
way window ports work.
nethack.allison [Mon, 20 Oct 2003 03:46:43 +0000 (03:46 +0000)]
more buglist crystal ball detection
<Someone> wrote:
- If I set the 'boulder' option, shouldn't I be able to give the
symbol I define for them at the crystal ball "object or
monster symbol" prompt and have it work?
- Could ']' be added as a synonym for 'm', as with genocide?
- set boulder symbol to '3'; use '/' or ';' to examine a
boulder. Result is "unknown creature causing you disquiet
co-located with a boulder" even though there's no warning
glyph '3' there.
nethack.allison [Sun, 19 Oct 2003 21:26:07 +0000 (21:26 +0000)]
bit
triggered from newsgroup post:
> ""For you , esteemed lady; only 10 for this large shield." k - a
> large shield (unpaid, 10 zorkmids).
> To what level do you want to teleport? 0
> Go to Nowhere. Are you sure? [ynq] (q) y
> You scream in agony as your body begins to warp... You cease to
> exist.
> Die? [yn] (n) y
> Bayburt comes and takes all your possessions."
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> How? He teleported to Nowhere?
Leave no doubt that your possessions did not go with you...
nethack.allison [Sun, 19 Oct 2003 19:49:43 +0000 (19:49 +0000)]
crystal balls and space key
Another buglist entry.
<Someone> wrote:
- There appears to be no way to detect ghosts-and-shades; the
space key just "Never mind"s. (Not that they'd be particularly
visible on the resulting screen under ASCII, unless you've
changed the 'monsters' option.)
Allow space; display results in inverse using detected_mon_to_glyph()
cohrs [Sat, 18 Oct 2003 22:55:42 +0000 (22:55 +0000)]
breaking migrated objects
Allow migrated objects to break on arrival. Added code to obj_delivery to
cause this, along with a flag to keep breakage from occurring. The new
flag isn't used yet, because all the current object migration involve
objects that were moving/dropping. To help make this change, rloco now
returns whether the object was placed or not, so caller can know if an obj
pointer is still valid or not.
Making the breakage messages for MIGR_NEAR_PLAYER objects show up after the
new level is displayed required some effort (rather than while the old level
was still displayed, which was confusing), due to the needs of goto_level.
- obj_delivery now has 2 passes, one for before player arrives, another after,
allowing the two cases to be treated differently
- goto_level calls obj_delivery twice (run_timers is not called twice,
since the run required before the level is displayed will have already run
any timers on migrating object)
- kill_genocided_monsters now kills eggs on the migrating_objs list too
nethack.allison [Sat, 18 Oct 2003 14:59:29 +0000 (14:59 +0000)]
> - When polymorphed into a flying creature and being grabbed
> over the water, then polymorphed into a non-flying creature
> leaves you standing on the water (you can kill the creature
> too and you're still on the water when you shouldn't be).
> - When floating from levitation over water and being held and
> removing levitation, you will fall into the water and drown or
> crawl back onto land. If you crawl back onto land you're no
> longer being held.
> The first situation seems to be a bug, the second a possible
> exploit. Both situations don't seem very correct, if you're
> being held it seems you should not fall into the water/lava
> until you are no longer being held. [patch contributed] It
> will keep the hero held up on over the water until released if
> his size is smaller than or equal to the size of the monster
> holding him. [<email deleted>, patch
> supplied]
>
A recent patch ensured that you ended up in the water when
polymorphed.
This patch is less ambitious than <Someone>'s
contribution, where he actually had the monster hold you up.
Perhaps that can be tackled for the trunk later.
cohrs [Thu, 16 Oct 2003 16:18:26 +0000 (16:18 +0000)]
debian bug #23229 - save file permissions
Use fqname buffer 1 for restoring the save file (just like save does when
creating it) so the value won't change out from under the code in unixmain.
- Also moved a tty-specific hack in docompress_file that was causing
the 'y' response to the "keep the save file" prompt to be echoed twice.
cohrs [Wed, 15 Oct 2003 20:07:14 +0000 (20:07 +0000)]
eating amulet of unchanging redux
To keep this from growing beyond this targeted change, make eating an
amulet of unchanging "un"change you, unless you're also wearing one.
nethack.allison [Wed, 15 Oct 2003 11:37:16 +0000 (11:37 +0000)]
win32tty color fix
fix by <Someone>, updated by <Someone> on r.g.r.n.
changes the colours of the windows tty port so that blue and
bright blue, and cyan and bright cyan are distinguishable. The chief
benefit of this is that floating eyes no longer look like shocking
spheres.
cohrs [Wed, 15 Oct 2003 06:02:27 +0000 (06:02 +0000)]
debian bug #154629 - extended commands in gnome front end
Not all of the extended commands worked in the gnome interface because
'#' just caused the next character to be treated as a meta character (this
was a hack I added a while back when none of the extended commands worked).
Resolved by finally adding an extended command menu to the gnome interface.
- updated some formatting so I could read the code
- fixed startup player selection menus so accelerators work
- added necessary calls to make sure selected menu item is visible
- also removed some dead code
cohrs [Tue, 14 Oct 2003 07:55:36 +0000 (07:55 +0000)]
additional X11 SAFERHANGUP changes
While messing around with window closure events, I found that some such
events during startup were being ignored as a result a SAFERHANGUP changes.
cohrs [Tue, 14 Oct 2003 07:35:01 +0000 (07:35 +0000)]
debian #184911 - quitting while tty mode inventory is displayed
The tty menu code wasn't totally reentrant, causing it to free memory
that wasn't on the heap if you had your inventory displayed, ^C then
ask to see the inventory again. Solved this by converting the buffer used
by process_menu_window to be heap-allocated. If the Quit code could return at
this point, this would still be very bad, but since it doesn't, this is OK.
cohrs [Tue, 14 Oct 2003 07:07:40 +0000 (07:07 +0000)]
debian #170531 - sign extension in gnome input
Internals of gnome_yn_function should treat key inputs as 'int' until
returning them, to avoid truncating and not sign extending as needed on
platforms where char is unsigned.
cohrs [Tue, 14 Oct 2003 07:00:13 +0000 (07:00 +0000)]
debian #154627 - quiver menu item in gnome interface
Add a menu item for Quiver. While testing this, found the Quit menu
item still said that you quit using shift-q, so I updated that too.
Trunk change includes some other exit related fixes that don't apply to
the 3.4.3 branch.
cohrs [Mon, 13 Oct 2003 21:17:12 +0000 (21:17 +0000)]
qt gcc warnings
cosmetic changes to allow qt_win.cpp to compile cleanly using gcc -Wall.
This corresponds to a debian report that doesn't mention a debian bug ID.
The changes are not identical to the suggested debian patch.
cohrs [Mon, 13 Oct 2003 20:24:17 +0000 (20:24 +0000)]
debian bug 71234 - closing player selection window causes core dump
Too much code was being shared between the extended command window
and the popup dialogs for player selection, causing an uninitialized
variable to be referenced, often resulting in a core dump.
nethack.allison [Sun, 12 Oct 2003 22:56:36 +0000 (22:56 +0000)]
Vlad won't use digging in his tower
<email deleted> wrote:
> [...] Vlad happened to be generated with a /WoDig and tried to
> make an escape hole during his last few moves. Shouldn't he
> know, that the floor in his own tower is undigable? So he lost
> valuable time with a pretty senseless action...
nethack.allison [Sun, 12 Oct 2003 15:45:20 +0000 (15:45 +0000)]
another melting ice follow up (trunk only)
Zapping existing ice with cold wand/spell guaranties safe ice for
a minimum of MIN_ICE_TIME time.
Note that it could actually cause the ice to melt sooner than
it previously would have due to the randomization, but that's
an internal that the non-wizard-mode player would never
know anyway. The important thing from the hero's perspective
is that the ice should be safe for a while at least.
Also noticed and corrected a bug where the ice object effects
seem to have been getting initiated when solidifying lava in
zap.c
nethack.allison [Sun, 12 Oct 2003 04:21:27 +0000 (04:21 +0000)]
melting ice (trunk only)
add a new melt_ice_away timer for ice created via zapping
a wand/spell of cold.
Some follow-up adjustments to the length of time before
the ice melts may be necessary. Ideally, I'd like to
have it so that the shorter the length of time since
the ice was created, the lesser the chance that it will
melt out from under you. Likewise, the longer it has
been, the more risky it will be to venture onto it.
At the moment, however, each spot of ice is just
getting a somewhat random time always greater
than 50, which is less than ideal.
cohrs [Sun, 12 Oct 2003 03:55:17 +0000 (03:55 +0000)]
X11 hilite_pet
Add support for hilite_pet to X11 text map mode (hilite_pet was already
supported when tiles were enabled). While testing this, I found a missing
newsym() in the code implementing the creation of a "tame" monster.
cohrs [Sat, 11 Oct 2003 18:54:48 +0000 (18:54 +0000)]
eating an amulet of unchanging
Prompted by a suggestion on the newsgroup and from <Someone>, allow eating an
amulet of unchanging to remove intrinsic polymorph.
cohrs [Sat, 11 Oct 2003 18:38:24 +0000 (18:38 +0000)]
throwing while polymorphed
<Someone> suggested that a dragon, lacking hands, shouldn't be able to
throw things. Dragons can pick things up, and it seems they can throw
things the same way. However, it does seem that a notake() monster, which
cannot pick things up, shouldn't be able to throw things either.
cohrs [Fri, 10 Oct 2003 23:01:42 +0000 (23:01 +0000)]
hiding under a cockatrice corpse
Reported a while back, a (stonable) hiding monster will hide at a location
containing only a cockatrice corpse. While it would be interesting to
allow monsters to try, and stone themselves as a result, I chose the
simpler fix which is to not have monsters hide in such situations. I found
the hiding code was duplicated in several places, so I moved it into a new
hideunder() function that works for both the hero and monsters.
cohrs [Fri, 10 Oct 2003 22:53:28 +0000 (22:53 +0000)]
U685 - billing for tin usage
When moving the code to bill for tins before eating them (to charge for
them at the pre-eating hunger status), several cases were able to bypass
billing. Moved the bill checking code to a new costly_tin() subroutine so
it could be called in all the necessary places.
nethack.allison [Fri, 10 Oct 2003 15:53:27 +0000 (15:53 +0000)]
buglist: splashing
> Not all objects say "Splash!" when they fall in the
> water. When levitating/flying and dropping things they
> don't, but when polymorphing and forced to drop items
> they do. [<email deleted>]
when floating over the water, things dropped always
make some sort of sound. Also fix up some messages
when Underwater that previously said things like
"feel what is lying on the water" by adjusting
surface() in that situation to return "bottom."
While looking into this, I noticed that if you
are polymorphed into a Flyer and you then polymorph
back into your normal form, you don't end up in
the water until you move, so this attempts to
correct that too.
nethack.allison [Wed, 8 Oct 2003 03:48:59 +0000 (03:48 +0000)]
Remove very old buglist entry
> You cannot stop eating, transcribing, or removing armor, save
> the game, restore it, then expect to continue. These use
> static data structures which aren't saved.
nethack.allison [Sun, 5 Oct 2003 23:00:05 +0000 (23:00 +0000)]
win32tty changes
1. Switch to low-level console routines for performance improvements.
2. Instead of moving the cursor around like a real tty, just track the
destination coordinates of where the cursor should be, and
defer the movement until user input is expected.
nethack.allison [Sun, 5 Oct 2003 19:56:22 +0000 (19:56 +0000)]
headings in option menus
There was a great deal of inconsistency in
different menus on how headings were displayed.
This allows the user to select what they like best.
I was motivated to do this, because I wasn't satisfied
with the appearance of ATR_INVERSE in the menus
on win32tty, and several of them specified it.
nethack.allison [Sun, 5 Oct 2003 13:43:16 +0000 (13:43 +0000)]
saving message history (trunk only)
On September 11, 2003 "<Someone>" wrote:
> When we're going to have a different save file format, could
> the last messages in the message history be saved as well, so
> ^P would work the same before and after saving (possibly
> including a few less messages to make room for the startup
> messages?).
This seemed like a reasonable request. This patch:
- adds the core support required.
- adds the tty supporting routines.
cohrs [Fri, 3 Oct 2003 02:09:27 +0000 (02:09 +0000)]
X11 dynamic map mode selection
Prompted by a question from Pat a long time back, this change finally allows
tiles or text map mode to be chosen dynamically at runtime (using the
"tiled_map" option) rather than having to pick it via an X resource and
keep your selection until you exit. This brings map mode selection up to a
level similar to most other graphical window ports.
In addition, the map mode automatically switches to text on the Rogue
level, also like other graphical window ports.
The default mode for the X11 binary is now tiles, once again, like most (all?)
other graphical window ports.
The patch also removes some dead X11 code that is unlikely to be useful again.
cohrs [Thu, 2 Oct 2003 04:23:59 +0000 (04:23 +0000)]
eels in lava
<Someone> reported that randomly placed aquatic monsters can end up in
lava. The placement code allowed lava whenever the WET flag was passed to
it. This was so passing (WET|DRY) would match all locations, but it's not
appropriate for when only the flag WET is used. Since we have no levels
currently affected by this bug, I fixed it only in the trunk.
cohrs [Thu, 2 Oct 2003 03:39:57 +0000 (03:39 +0000)]
nagas eating
<Someone> suggested that nagas should eat. This seems reasonable.
I made all but the black omnivores. The black are similar to the AD&D
spirit naga, which are listed as carnivores, while AD&D's other nagas are
omnivores, so I took the same approach.
cohrs [Wed, 1 Oct 2003 03:37:55 +0000 (03:37 +0000)]
U666 - inserting gold into a container
The special-case code for the full menu style lacked an #ifndef GOLDOBJ
to handle the case where gold is the only thing in the hero was carrying.
potion-from-sink and the corpsenm field
Change the code involved to use a new #define for the field, like other
overloaded uses of corpsenm. Also remove one check for this field from
potion.c: there are no blessed potions from sinks.
kicking a drawbridge
There was some unreachable code in dokick related to drawbridges. Since I
liked the current "Ouch!" behavior, I moved the drawbridge test inside the
IS_STWALL code but made sure to update the maploc so kickstr would return
the right thing. Since there may be more than one drawbridge (perhaps it
should test for Valkyrie?) changed the kickstr prefix for drawbridge to "a".
putting a saddle on a cockatrice
If you try to put a saddle on a cockatrice, you turn to stone,
even if wearing gloves. This seemed inconsistent with other cases,
and I couldn't think of a reason why you'd touch the cockatrice with
another body part, so I added the uarmg test.
conflicting delayed killers
Introduce a new set of functions to manage delayed killers in the trunk, used
in addressing the various reports of delayed killer confusion. Since existing
delayed killers are related to player properties, the delayed killers are
keyed by uprop indexes. I did this to avoid adding yet another set of
similar identifiers.
- the new delayed_killer() is used for stoning, sliming, sickness, and
delayed self-genocide while polymorphed. Some other timed events don't
use it (and didn't use the old delayed_killer variable) because they
use a fixed message when the timeout occurs.
- A new data structure, struct kinfo, is used to track both delayed and
immediate killers. This encapsulates all the info involved with
identifying a killer. The structure contains a buffer, which subsumes the
old killer_buf and several other buffers that didn't/couldn't use killer_buf.
- the killer list is saved and restored as part of the game state.
- the special case of usick_cause was removed and a delayed killer list
entry is now used in its place
- common code dealing with (un)sliming is moved to a new make_slimed function
- attempted to update all make dependencies for new end.c -> lev.h
dependency, sorry if I messed any up
+ Separate the two uses of flags.soundok.
+ Player-settable option is now called "acoustics".
+ Deafness is now handled as a full-fledged attribute.
+ Check for deafness in You_hear(), rather than caller.
+ Check for deafness in caller, rather than verbalize(),
because gods can speak to characters in spite of deafness.
+ Since changes are being made to prop.h, reorder it to the
same order as youprop.h and enlightenment.
There are still some extraneous checks and missing checks
for deafness, which will be followed up in a future patch.
Because of the size of this patch and its savefile incompatibilities,
it is only being applied to the trunk code. Portions of this patch
were written by Michael Allison.
trunk and branch:
Do not limit role selection list by race/gender/alignment. The default.nh
selection will still be honored but the list itself will include every
possible role.
Some interface tweaks for main trunk:
- improved calculation of the size of the menu window
- made auto-arrange windows on/off option (it was reset automatically
which was unintuitive and in some cases annoying, IMO)
Fix the reported bug of problems after casting stone-to-flesh spell
on self while wielding a statue. Pointers for worn items weren't kept in
sync and various potential symptoms could occur (most easily visible one
being that ')' falsely reported the no longer existing statue as still
wielded; report stated that one crash was observed). This bug predates
3.4.2 and was probably present ever since stone-to-flesh got introduced.
dismounting next to a boulder
It makes sense that if you cannot normally move to a location containing a
boulder, dismounting there should be avoided if possible. It seems
that it should be possible to land there if there's no other choice.
Perhaps doing so should result in damage, but that's not in this patch.
fog cloud and aquatic monsters
<Someone> pointed out the inappropriate appearance of the 3.4.2 message when
fog clouds have you engulfed if you happen to be polymorphed into an aquatic
creature. It does seem that a fog cloud should not cause added damage to
amphibious creatures, which includes breathless (but non-flaming) monsters.
I also thought another message was more appropriate for flaming creatures
(see on_fire()), and added a special case for that.
gulpum was missing symmetric code and I added it there too.
various tests of flaming monsters
This change adds a new flaming() macro and uses it in several places
where the list of flaming monsters was tested. on_fire() didn't list
salamanders as already being on fire, but should have. A couple other
cases were not updated to include flaming sphere.
U673 - hooks and grappling hook working thru walls
While wearing the Eyes of the Overworld, one could use a hook or pole thru
walls. The bug report thought they should work past a boulder, but I
disagree, given a pole or hook's rigid nature, and did not special case that.
couldsee() is not affected by the Eyes, so use that after checking cansee().
killer messages
Incorporate various killer message grammar fixes suggested by <Someone>.
Mostly these deal with using the proper killer_format and prefix ("the" or
no "the") for unique and type_is_pname monsters, or death to to eating
their corpses.
One case is handled by a general fix to name_to_mon to allow it to deal
with "Croesus' corpse".
The pre-3.4.1 topten behavior for "starved to death" messages is also restored.
U651 - avoid declaring errno unnecessarily
Some changes for standard C platforms, to avoid declaring errno explictly.
Such platforms should declare errno in errno.h, which is already included
in the files in question.
U659 - "destroy" manes
Nethack's manes are based on AD&D manes which are in turn based on the
manes of Roman legend. They are supposed to be spirits of the dead.
To that end, added them to the nonliving() macro. The biggest behavioral
change is that death spells no longer effect them, which does technically
make them a bit tougher but also makes sense. Also, they're so wimpy, it's
hard to believe anyone would use a death/disintegration on them anyway.
U665: gold and unpaid containers
The choice was to avoid one of the two sellobj() calls in in_container.
Since I liked the message ordering "put gold into... credit" better than
"credit... put gold into", the code now avoids the 1st sellobj call for coins.
context build changes for Unix
- removed an extraneous space from Makefile.src that confused GNU make
- unixmain.c still had a couple uses of flags.move