$Id: Buglist,fff,v 1.89 2005/08/19 13:25:14 christian Exp $

Zap - combined bug and wishlist
===============================

You probably want to turn on auto-width for this file, because otherwise it
looks messy. This list is two things:

1.	A list of *all* suggestions that I know about, possibly with notes.
Some suggestions may be altered - for instance, a suggestion on how to get
ZapRedraw to auto-unload itself was modified to use a more sensible way of
doing it. Discussions to <zap-features@zap.uk.eu.org>.

2.	A list of all bugs I know about. This is different to 'all bug
reports I know about', because if a bug report both contains insufficient
information to get an idea what went wrong AND is unrepeatable, there's
nothing we can do with it anyway. Discussions to <zap-buglist@zap.tartarus.org>.

James Aylett
<dj@zap.tartarus.org>


Format:
-------

t ([e ]m)	(r)	(s)		<report>

t = type (* = bug, . = fixed bug, + = suggestion, - = implemented suggestion, / = not really a bug, \ = currently unfeasible suggestion, or considered inappropriate; ! prefix => get this done by the next stable release)
e = * (extension) or + (internal mode)
m = module (eg: Boxes, Menus, Minibuffer ... generally either Zap core source file (although the code may not be there), or extension/mode name). Nothing here indicates something general or unassigned. (!) is 'distribution', (%) is 'documentation'
r = responsible maintainer (once decided) - for fixed bugs / implemented suggestions, this will be whoever actually did it; for 'not really a bug', it will be whoever made that decision
s = reporting source, if known

!  Things required before next stable version
!   * license: BSD?
!   * Remember to make everything non-test before we release v1.45 ...
!
!    Crash bugs
!* (* HoTMeaL)	()		(vincent)	Crash on opening a menu (can't reproduce - check bug report) -- check running as France with Vincent's bindings etc.
!* (* TMT's)	()		(vincent)	abort on dc when loading a file (can't reproduce - check bug report) -- check running as France with Vincent's bindings etc.
!    Memory crash bugs
!* ()		()		(andre)		Cutting 0x400000 of 5MB file causes a crash; cutting first 0x100000 four times does not. (Text + byte modes.)
!* ()		()		(james)		Inserting data (CHAR or PASTE at least) can trash Zap when it runs out of memory. Overwrites heap descriptor? May be related to Chris' bug.
!* ()		()		(chris)		With a small amount of memory free (200K or so), files much larger than remaining memory cause the expected no memory error; files only slightly larger cause a data abort
!* ()		()		(james)		Occasionally, cutting and pasting really quickly freezes the machine?
!
!    Other bugs
!* (* BASIC)	()		(andrew hill)	Large BASIC files get corrupted when saved / cause corruption in copy/paste buffers
!* (Printing)	()		()		Interaction with some printer drivers causes garbage at limits of file?
!* (* Diff)	()		(justin)	Line numbers disrupt colouring for a few characters near the start of the line
!* (Commands)	()		(justin)	@GREYED "TASKWINDOW_CONTROL 0" doesn't work - always returns the same thing
!
!    Low-priority bugs
!* (* Email)	()		(tony v der h)	List of functions (from menu) causes subsequent data abort on saving (can't replicate)
!* (Redraw)	()		(jerome)	Mode 13 squishes windows horizontally and they don't refresh? (can't replicate)
!* ()		()		(paul johnson)	Debug-compiled programs under task window aborts on prefetch when it exits. (RO4 only ...) Justin: ignore for now
!
!    Feature requests / minor misfeatures
!+ (* HoTMeaL)	()		()		&degree; isn't valid but &deg; is - we recognise the wrong one
!+ (* Diff)	()		(justin)	Can't cope with CVS diffs
!
!    Distribution / documentation issues (immediately before release)
!* (%)		(james)		(james)		Menus should be built from source at distribution time. So should the ConfigScan, CreateConf, MakeMenus and MenuConf binaries, if possible. MakeMenus is required to do the first part of this, of course.
!* (%)		(james)		(james)		Some France (at least) core menus have overly long menu titles. Some menus have't been translated, either?
!* (%)		(james)		(james)		Copyright etc. (including stuff in manual). License for core (BSD?).
!* (%)		(james)		(jerome)	Updated ZapBASIC HelpData for France
!* (%)		()		(james)		France trans: HelpData (infobox help, MISCOPS, new-style conversion)
!* (%)		()		(james)		France trans: Messages (zap_m_zmode, zap_d_modflags, zap_q_insrep, zap_q_delrep, zap_d_modflags)
!* (* MJE)	()		(james)		France trans: HelpData (_COMMENTSET, _INDENTCOMMENTSET, _IF, _SHOWPREPROSET, _SMARTINDENTING)
!* (* Spell)	()		(james)		France trans: HelpData (SPELL_CLOSE)
!* (* Email)	()		(james)		France trans: HelpData (_RETURNRECEIPTTO, _DELHEADERLINE, @_HASSIGNATURE, @_{,MORE}FLAGSTOGGLE, @_HASHEADERLINE)
!* (* JRF)	()		(james)		HelpData for JRF_MENUFORMODE
!
|    Web/ftp site issues
!* (#)		(james)		(james)		Better explanation of stable/alpha/beta
!* (#)		(james)		(james)		Get the latest versions of developers' ZapUsers up onto the ftp site
!* (#)		(james)		(james)		Remaining website docs updates. Change lists.

!  Things where effectively nothing has to happen right now
!    Missing sources
!* (!)		()		(james)		ZapMan source (David O'Shea, the author, has it - he'll probably do the updating)
!* (!)		()		(james)		ZapBasAsm source (Carl has it - he may do the updating)
!* (!)		()		(james)		ZapSAsm source

!  Things done to prepare for v1.44 candidate releases
!* (%)		(christian)	(james)		Make sure all !ReadMe files etc. are up to date - esp. !ZapFonts, !ZapUser
!* (* HoTMeaL)	(james)		(andy wingate)	HoTMeaL crashes if you delete a first line <HEAD> with a second line <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -- data abort in the backwards-searching comment redraw (?) routing? (offset 0x50d4) -- fix is nasty, preventing crash at cost of worse comment colouring
!* (!)		(christian)	(james)		Check E-Library is up to date immediately before release -- E-Library now built automatically
!* (%)		(james)		(darren)	ZapEmail v0.26 test 3
!* (!)		(james)		(f bambrough)	There's a new version of IClear
!* (!)		(james)		(james)		!Install file for zap.zip et al (needs to be done automatically from manual?)
!* (%)		(christian)	(r hallas)	'Disc' not 'disk' throughout
!* (%)		(d thielsch)	(james)		Germany trans: HelpData (infobox help, MISCOPS, new-style conversion)
!* (* Diff)	(james)		(christian)	(Potentially) wrong mode number used in call to Zap_BaseMode: should get it from [R13] not w_format?
!* () 		(ds/christian)	()		Reload keys causes minibuffer to stop displaying anything /sometimes/ ... possibly fixed with Darren's fixing of MULTICOMMAND on menus?
!* (* Makefile)	(christian)	(s bellon)	Data Aborts in redraw with split at end of file - most of Tim's modes were susceptible
!* (* ZapEmail)	(darren)	(ben laughton)	Ignore sig separator causes "Add sig" button to Prefetch
!* (Commands)	(darren)	(christian)	MULTICOMMANDS don't work on menus
!* (* ZapMJE)	(james)		(tony v der h)	_IF, _ENDIF don't work in Pascal, C++ - probably because the ? operator doesn't do what the code expects in s.Tables?
!* (TMT modes)	(james)		(james)		Check that all modes that load Scripts files and use LFto00 do so safely. And that I haven't screwed the mode while converting, sigh. :-(
!* (%)		(christian)	(james)		Make sure nothing points to Dominic, Tim or Martin for contact ...
!* (Throwback)	(christian)	(james)		Right-clicking (to remove) a filename in throwback doesn't remove all links, and hence doesn't remove the entire file
!* (Commands)	(christian)	(james)		NEWTYPE from minibuffer doesn't close the minibuffer.
!* (TaskW) 	(christian)	(justin)	Clearing the window (eg: change line length) doesn't reset all variables? Up (with LineEditor) causes scrolling to the /old/ cursor position?
!* (EE)		(christian)	(john tytgat)	Saving tries to use f_name instead of <Wimp$Scrap>. Is this perhaps due to f_proposedname?
!* (Commands)	(darren)	(simon b)	NEWVIEW from the text window's menu sometimes (regularly?) gets the offset wrong. May fix some similar bugs?
!* (ModeBits)	(christian)	(justin)	Loading the max # modes puts Zap causes the Modes menu to data abort when being created @ offset 0x20568 in Zap
!* (* Diff)	(darren)	(david ruck)	Can't detect the diff type from lines of the form "4,5c6,7"
!* (Menus)	(christian)	(james)		Interactive help for entries within Misc->Keymap are garbage
!* (Printing)	(christian)	(guy griffin)	Fancy print prints just outside the top and bottom borders
!* (Commands)	(darren)	(james)		Help on functions, c-vars doesn't work any more.
!* (Boxes)	(christian)	()		Fancy print says 'No driver' if there isn't one loaded, rather than nothing at all
!* (* HotMeaL)	(james)		(various)	Interaction with ZapButtons causes crashes - file loading code didn't provide aligned 0 word that LFto00 code was expecting. This may affect other Buttons providers.
!* (* HoTMeaL)	(james)		(lenny)		Cycle window button doesn't respect adjust, so the TBS chars window can't be accessed
!* ()		(james)		(simon b)	DeepKeys as <Boot$ToBeLoaded>.!!DeepKeys. Zap shouldn't load it, just behave sensibly if it isn't there.
!* (!)		(james)		(james)		Finish zipdiff
!* (Help)	(darren)	(andy wingate)	!Help was showing newlines as 'M'
!* (* Messages)	(chris)		(steve revill)	'|' followed by a tab displays very strangely ...
!* (* ZapEmail)	(james)		(darren)	New version of ZapEmail
!* (!)		(james)		(jeremy poulter)'Use colour' icon should be type click. Check that documentation for the box is up to date also.
!* (!)		(james)		(christian)	R-Example2 (two windows)
!* (!)		(james)		(chris lund)	Loading ZapRedraw should fail if it isn't v0.39, since Zap will now toast with v0.38 ...
!* (* BASIC)	(james)		(steve revill)	Colours LDM and STM in text foreground colour, not their own (oops - wasn't building true under Unix :-(
!* (* MJE)	(james)		(tony v der h)	C++ mode menu on ibar can cause crash (RO4); Java menu always does (RO 3.6 onwards)
!* (* Scheme)	(james)		(christian)	No config block => 'bad colour num' error, no mode menu, etc.
!* (* ZapHTML)	(james)		(david ruck)	Copyright date is 1900 not 2000 ...
!+ (* ZapTeX)	(james)		(stefan)	more button bar stuff
!* (* ZapText)	(james)		(david ruck)	FILTER* commands have been broken: 'Overflow in argument substitution'
!* (* ZapSpell)	(james)		(darren)	test4 uses 0.19 when 0.20 is available :-(
!* (ZapFonts)	(james)		(ros share)	!ZapFonts.!{Boot,Run} use "os$var" not "<os$var>" -- abbreviated form is only valid on RO4
!* (* ZapMJE)	(james)		(james)		menus should use CLONEBASE to grey them out
!* (ZapFonts)	(james)		(christian)	All data files should be explicitly typed NFS-style so that RO unzip unpacks them correctly and so doesn't confuse Messenger
!* (KeyBits)	(darren)	(dan ellis)	Auto-repeating keys sometimes lose their modifiers in buffering. May be a RISC OS problem, maybe not. (Should have been fixed in move to DeepKeys.)
!* (* Email)	(darren)	(james)		Either basemap shouldn't be set, or the new basemap should be closer to the default
!* (! ZapFonts)	(james)		(c ludlam)	R-Example references E-Library in the wrong place (perhaps shouldn't at all?)
!* (!)		(james)		(various)	Default template set save modified dbox shouldn't have the expanding icon
!* (ZapRedraw)	(darren)	(david ruck)	ViewFinder and recent ZapRedraws crashes
!* ()		(darren)	()		Alt-Esc exits block editing
!* (+ Code)	(darren)	(stewart)	Add 'module flags' header word display
!* (*)		(james)		(darren)	New versions of ZapBits, ZapText, ZapUtil, ZapBASIC which use history buffers
!* (!)		(james)		(darren)	Check we have latest Debugger, ExtBASICasm
!* (Commands)	(darren)	(r darlington)	MOVESEL called from menu moves to beginning or end not caret, and latter causes undo buffer corruption
!* ()		(james)		(james)		ZapFonts images are wrong for RISC OS 4.
!* (* MJE)	(james)		(alex m)	MJE_REINDENT in non-MJE modes crashes (data abort) ... can't reproduce on my build, but it /is/ reindenting non-MJE modes, which it definitely shouldn't do ...
!* (!)		(james)		(reuben)	Menus should say 'GNU Filters', not 'Process "GNU'
!* (!)		(james)		(darren)	Use Darren's LineEditor 2.74
!* (%)		(james)		(lenny)		HelpData for, eg, help_word, lists sF3 for hex entry mode. This is wrong. Check other key references in CDOWN, CUT, ESCAPE, EXECUTE, KEEPREGION, LEARN, QUOTE, mode_basic, mode_taskwindow, mode_c, mode_c++, mode_java, mode_assembler, mode_pascal, mode_halfword, mode_byte, mode_doubleword.
!* ()		(james)		(james)		Source fixes to ZapPS for internationalisation et al, replacing binary patched version
!* (%)		(james)		(m sackman)	TypesLow vs TypesHigh documentation should say 'user choices go in TypesHigh'
!* (!)		(james)		(reuben thomas)	Emacs keymap lists 0x1c as "Delete" not "<-|"
!* (%)		(james)		(lenny)		FINDID help mentions FIRSTBLOCK (which no longer exists).
!* (!)		(james)		(james)		Darren's extension 'util' keymap (in ZapUser:Config.UK.Keys) has a binding for FIRSTBLOCK. What's replaced it?
!* (* NewMail)	(james)		(lenny)		Claims it's an HTML colouring mode in its helpdata.
!* (Redraw)	(james)		(james)		lnum colons on, lnumwidth 1 should print '*' (dec) or '>' (hex), not the RH character of the line number
!* (!)		(darren)	(darren)	DeepKeys and support, with latest core build
!* (!)		(darren)	(darren)	ZapEmail 0.25 test 4
!* (!)		(david)		(david o'shea)	ZapMan 0.12
!* (* ZapEmail)	(james)		(various)	ZapEmail should _not_ have a Basemap c-var (or its own basemap should be much closer to the default)
!* ()		(james)		(james)		Paul Nolan has supplied RISC OS 4-like icons. By default we just use the new ic_zap - Resources.400.Extreme contains the full set.
!* ()		(james)		(darren)	Move DUMP on menu to below File->Print, rather than on the Print menu itself
!* (* ZapSpell)	(james)		(b veasey)	ZapSpell not beeping in SAYT
!* (Redraw)	(james)		(justin)	Control characters at the cursor in the selection get the wrong colour.
!* (* HoTMeaL)	(james)		(james)		HoTMeaL keys file is weird (I think this is just a random line of cronk - kill it).
!* (%)		(james)		(james)		HelpData stuff for Zap's icon/windows is partly out of date. I'm thinking the info window etc. isn't entirely useful ...
!* (Boxes)	(james)		(james)		Iconising a dbox on a menu doesn't clear its "I'm on a menu" flag, so uniconising it means you have a leaf window you can't close (without reopening the menu and then closing that).
!* (!)		(james)		(jerome)	Fixes to template sets
!* (* ZapMJE)	(darren)	(rp lund)	MJE function browser code, at least in C mode, aborts.
!* (Boxes)	(james)		(james)		WC prints 'match' instead of 'word'.
!* (! Menus)	(james)		(a wingate)	Menus refers to ZapCode:MakeMenus not ZapCode:Tools.MakeMenus
!+ (!)		(james)		(james)		Switch to get MenuConf to read options from start of MakeMenus output file
!* (CreateWind)	(james)		(james)		If Zap gets an error early in creating a window block (try configuring a non-existent font?), you get "Bad error block!"?
!* ()		(darren)	(darren)	MakeMenus needs rebuilding. I can't rebuild here because my RISC OS gcc is funted.
!* (* JRF)	(justin)	(james)		Build ZapJRF again (sans unnecessary crap), and put back in the distribution in zmods2
!+ ()		(james)		(justin)	New Boxes, Fletcher template set
!+ ()		(james)		(chris egan)	Added ZapPython mode
!+ ()		(james)		(james bursa)	Added 08x20 Latin2 font
!* (+ Code)	(darren)	(darren)	Deletions in a module header in code mode actually put words into the undo buffer.
!* ()		(darren)	(james)		SENDSEL doesn't 'escape' 0 and 128-255 as mentioned for OS_Byte 138
!* (KeyBits)	(darren)	(james)		Key codes we don't understand should be passed to Wimp_ProcessKey, possibly in process_converted_key.
!* (* HoTMeaL)	(james)		()		Checked over the buttons checking they look feasible with current commands.
!* (Mode11)	(james)		(james)		Set filename on create throwback doesn't work any more ... ?
!* (!)		(james)		()		Translations for Germany. (Core.) Richard doesn't have time; have to hack up something containing bits of English for the new sections.
!+ (* Spell)	(james)		(james)		Sort out with new Throwback system
!+ (!)		(james)		(james)		Extension intl changes v1.42 to v1.44: some modes have lost Win-Wrap in Menus (but we're not translating these). Remaining diffs are for ZapEmail, ZapText, ZapUtil and have gone to Jerome.
!+ (+ Throwback)(darren)	(darren)	Make colouring instance-configurable
!* (Keys)	(darren)	(james)		RO 4 reserves 1C0, 1C1 for logo and menu keys. Darren has proposed a remapping which seems sensible (convert_key or whatever in s.KeyBits).
!+ (%)		(james)		(james)		Keymap stuff: named keymaps, per-extension keymaps ...
!+ (%)		(james)		(james)		Menus source file and generation documentation.
!* (%)		(james)		(james)		Update thanks, make sure all contact info's up to date
!* (%)		(james)		(james)		Proof-read the manual _again_. Check in particular that the Menus references are right.
!* (%)		(james)		(james)		Check that internationalisation mentions France and Germany country-specific resources.
!* (%)		(james)		(james)		Make sure that Clone mode inheritance is right - check code / with Darren.
!* (%)		(james)		(james)		Run through the manual on really recent things - halfword, doubleword, stuff like that.
!+ (%)		(james)		(james)		!Install / install chapter: talk about DDEU_Patch, Boot:Choices.PreDesk.Country, upgrading
!+ (%)		(james)		(glyn, james)	Upgrading notes for v1.40 -> v1.45. Take from FAQ.
!+ (%)		(james)		(james)		Mention Darren's ports of the GNU textutils wrt the filtering commands
!* (%)		(james)		(james)		Change variant information: we no longer support RISC OS 2.
!* (%)		(james)		(james)		Create clone appears to list core modes in black, clones in blue, others in grey. If so, document this. Otherwise, figure out what's going on :-)
!+ (%)		(james)		(james)		chapter 5 (mouse) doesn't document alt+shift+menu or ctrl+click?
!+ (!)		(jerome)	()		Translations for France. (Core plus various important extensions.)
!+ (!)		(james)		(james)		Program to ease choosing MakeMenus options?
!+ (!)		(james)		(james)		Default renamed to OldStyle. Salt with colours. Default = Salt without colours, and is default.
!+ (!)		(james)		(james)		Move MakeMenus, MakeExtern, Technical, KillDAreas inside ZapCode:Tools. Check that nothing references it (don't think they do).
!+ (+ Throwback)(james)		(james)		Throwback title used sensibly throughout
!* (Commands)	(darren)	(darren)	Problems with OSCLI. (Titlebar set incorrectly.)
!* (* ZapText)	(james)		(james)		FILTERSEL overflow bug
!* (* Spell)	(james)		(james)		Colouring at the top of throwbacks isn't always right. Short-term, needs ZapSpell to behave itself. See later for Darren's proposed extension to throwback to make this better.
!* ()		(james)		(tim)		Remove debug beeps in cln_readc and others ... Zap, ZapBASIC, ZapSpell
!* (!)		(james)		(james)		Drop 2D templates, drop RISC OS 2 support.
!* (!)		(james)		(richard smith)	TeX mode keymap predepends on TeX_sp and TeX_de being set, which doesn't happen. Set them in !ZapTeX.!Setup.
!* (!)		(james)		(james)		!Zap.!Run/!Zap.!Boot talk about ZapUser:Choices.Country, not ZapUser:Config.Country ...
!* (!)		(james)		(tim)		Should be using latest FlashCar (Reuben's one) -- check that I have the right version ...
!* (!)		(james)		(james)		Remove non-updated templates files (or update them)
!* (!)		(james)		(james)		ZapUser:Config.Country shouldn't set Zap$Country in the default setup. In fact, it should unset it to make sure.
!* (!)		(darren)	(reuben)	Macros box should refer to the search dbox, not the manual, for escape sequences
!* (!)		(james)		(james)		Menus file should _not_ read "Be tolerANT", but "Be tolerant".
!* (!)		(james)		(james)		Get !Messages.Types right -- check again when we build, though
!* (!)		(james)		(james)	        Re-translate Salt template set using Default as a guide.
!* (!)		(james)		(james)		Default template set is now 'Salt', not 'Default'. Confusing, but true. Fix colours in Salt.
!* (!)		(james)		(darren)	Minor optimisation to removelf sed(1) script. Actually, James may do some more here now he understands sed properly.
!* (!)		(james)		(james)		Move ZapJRF into zmods2.zip? It isn't very important anymore ... stuff in ZapUser that it depends on?
!* (!)		(james)		(james)		Remove ExternalO files from all extensions.
!* (!)		(james)		(james)		Remove 'Window wrap' menu options wherever they exist. (Scheme, Asm, BASIC, Inform?, CSV?)
!* (!)		(james)		(james)		Will we need to internationalise TMFs? If so, set the TMF using the extension path, not the directory.
!* (!)		(james)		(james)		Internationalisation structure for all extensions. (Note that this requires alterations to some extensions ...)
!* (!)		(james)		(james)		TMFs go into ForZap, not Messages as they should.
!* (!)		(james)		(james)		If we have ZapModules:<ext>.<country>.Messages, it doesn't go into Messages.
!* (!)		(james)		(james)		New versions of ZapBASIC (1.36), ZapCSV (0.05), ZapAsm (0.06), ZapScheme (0.03)
!* (!)		(james)		(james)		ZapScheme sprites are missing!
!* (!)		(james)		(james)		All extensions should have the standard directory structure. Currently some don't.
!* (!)		(james)		(james)		Don't bother distributing source in the core distribution.
!* (!)		(james)		(james)		ZapSpell v0.16 - I've hacked it, but we need to do v0.17 from source with the internationalisation issues.
!* (!)		(james)		(james)		Put JRF_SETFILETYPE into ZapUtil and remove from ZapJRF.
!* (!)		(james)		(james)		JRF unnecessary commands: JRF_RUNFILE (OPENFILE), JRF_NOTIFY (NOTIFYUSER), JRF_BRACKET (BRACKETCURSOR), JRF_BRACKETSEL (BRACKETSEL), JRF_DROPMARK (DROPMARK), JRF_HELPWORD (HELPWORD), INSERTFILE. Belongs in zmods2.
!* (!)		(james)		(james)		JRF_IF(<break><cond><break><then><break><else>) can be replaced by IF (@WORDSTR = "<cond>"):THEN:<then>:ELSE:<else>:ENDIF.
!* (!)		(james)		(james)		Either kill ZapJRF, or get a working version without the crap.
!* (!)		(james)		(james)		Where's the Texture colouring mode gone? Does anyone care? (If 'yes', new version 1.14 from source.)
!* (!)		(james)		(james)		New Buttons (0.56), Desc (0.28), HoTMeaL (0.84), Obey (0.43), Perl (0.16), DS (0.34), NewMail (1.12)
!* (!)		(james)		(james)		ZapTMT is dead (functionality now in ZapBits): check sources, menus, keys and scripts for mentions of TMT_POWERSEARCH, TMT_MOUSETRAP and TMT_EVENT, all of which lose the TMT_ prefix.
!* (!)		(james)		(james)		Make a list of which extensions still need internationalisation coding (eg: MJE).
!* (!)		(james)		(james)		MakeFile ExternCmd file called it "Makefile"; recent MakeExterns won't recognise this. External file then needs to be rebuilt.
!* (!)		(james)		(iain truskett)	HoTMeaL: STARTOP/STOPOP instead of STARTOPERATION/STOPOPERATION
!* (!)		(james)		(james)		Remove TOICON, SENDURL* from ZapDS (in Bits). SENDURLGIVENOFSFSET deprecated - removed code which uses it from NewMail (ClickSend does the same job anyway).
!* (!)		(james)		(james)		Update ForZap command etc. list?
!* (!)		(james)		(james)		Rebuild Menus from source once options confirmed with Darren.
!* (%)		(james)		(james)		MakeMenus help file listed define as -d not -D
!* (%)		(james)		(james)		Docs.KeyStrip up to date? Also note that the v1.42 keymap needs frobbing to deal with KEYMAPN not KEYMAP, and to sync. back to the new keystrip (F11 gets used, for instance :-)
!* (%)		(james)		(james)		Copyright - GPL so add Copying (I hope :-), Boxes.
!* (%)		(james)		(james)		Update/remove all !ReadMe files. Modules.!ReadMe needs playing with.
!* (%)		(james)		(james)		Comment that word #2 of mode config is going to be changed completely in the next version, and does nothing now. In tech docs somewhere?
!* (%)		(james)		(darren)	Add !Help, !Sprites*, Templates, Messages, ExternCmd, Keys, TMF to files in an extension section; also only one module per extension. Talk about internationalisation (done in !Setup - see !ZapEmail)
!* (%)		(james)		(james)		Changes
!* (%)		(james)		(james)		b28-b31 of doubleword configuration?
!* (%)		(james)		(reuben)	Spell check all help data

*  Bugs
* (%)		()		()		Advising people that binding cC to COPYSEL:CLEARSEL causes problems in TW mode. Not quite sure where to put this ...
* ()		()		(christian)	S/R in C mode, replace "//" with "/*" - doesn't redraw screen. Zap's fault, not C mode's - e_nextline isn't called often enough during the multiple commands. Start/StopOp problem? (See comment at top of s.C_Redraw)
* ()		()		()		'Altersel at end' fudge doesn't yet work with mouse-drag selection, nor SELREGION selection for that matter...?
* ()		()		()		'New View', when issued from the icon bar, with taskwindows and throwback buffers behaves differently from when issued from a main window. (Cursor doesn't get set - is that the only problem? Also with regular files)
* ()		()		()		Auto-clear of selection with two views doesn't work properly
* ()		()		()		Bug when combining src1 & src2 and then saving - probably there for ages!
* ()		()		()		Ctrl-select clicking removes cursor mark ?
* ()		()		()		DOS trying to remove 0x0D's?
* ()		()		()		Random cursor jumping with 'Confine V' option on + more than one window.
* ()		()		()		Selection always vanishes on a mode change - there is a solution to this, involving the SELECTION fn/command. This isn't ideal, though, and of course falls over in tokenising and binary modes.
* ()		()		()		Strip spaces and the file modified flag ... should set modified a la DOS/spool?
* ()		()		()		When editing two views of the same file then the cursor in the file not being edited can be affected by ins/del txt - iff it is soft-wrapped...
* ()		()		()		When loading files commands at end of paths are not checked properly...
* ()		()		(chris bell)	RAM xfer from Zap to Impression: "Directory [rubbish] not found"
* ()		()		(chris bell)	crash on shift-end?
* ()		()		(gary lee)	BASTXT doesn't tokenise before a RAM transfer. This is fairly tricky to solve, because of the way (a) RAM transfer, and (b) BASTXT work :-(
* ()		()		(gary lee)	BASIC ram transmits using its internal format (see similar BASTXT problem). This appears to crash !Edit when it tries to figure it out ... :-(
* ()		()		(gary lee)	In mode 13, Zap sometimes complains about lack of memory even when there's enough.
* ()		()		(gary lee)	Out Of Memory while loading a file doesn't free up WimpSlot (RO 3.11)
* ()		()		(james)		Out Of Memory a. needs changing, b. loops. Particularly taskwindow output.
* ()		()		(james)		Trying to use an invalid mode in a Types file causes a zero page error to be returned
* (*)		()		(james)		Some Buttons-supporting modes don't always move the window when its position bits are changed
* ()		(james)		(john kortink)	Why do modes use b0-b15 of their private space to store something to do with width? We have width storage.
* (* !Country)	(christian)	(theo)		!Country should chose the messages files based on configured Territory, not configured Country.
* (* Ada)	()		(james)		Comments are coloured on second column when entered, but not if taking one on first column and adding a space at start (which is correct?)
* (* Ada)	()		(james)		Auto-complete doesn't work except for keywords starting 'a', probably because alpha lookup system works on capitals not lowercase for that table?
* (* Ada)	()		(james)		First keyword table doesn't appear to do anything
* (* Ada)	()		(james)		Redraw code can probably be induced to crash with a suitably sized split
* (* Asm)	()		(james)		Turning off the 'complete' option doesn't stop completion on typing '.'. Personally I'm of the opinion that completion should be done once, by an extension, and the mode can help out in listing the possibilities.
* (* BASIC)	()		()		/Type/ in BASIC mode 'LDRS000000000000000000000000000000=0'
* (* BASIC)	()		()		? Multiple ? "Ctrl K"s in BASIC mode - hmmm only minor problems when the cursor is in the middle of a keyword seem to be present...?
* (* BASIC)	()		()		? Select a BASIC line by triple clicking then swapcase etc. minor
* (* BASIC)	()		(various)	BASIC triple-click doesn't select the leading line number; subsequently deleting the line garbles the file
* (* BASIC)	()		()		ASSERT 0 = P% AND 31 in BASIC mode... :<
* (* BASIC)	()		()		ASSERT P% AND 31 = 0 in BASIC mode...
* (* BASIC)	()		()		BASIC DCBabc coloured wrong...?
* (* BASIC)	()		()		BASIC bracket match to right spot...
* (* BASIC)	()		()		BASIC changes the return character to 13.  It stays that way
* (* BASIC)	()		()		BASIC: ; CMP R0,ASC":" no longer is being coloured properly
* (* BASIC)	()		()		Chr$200's - i.e. half tokens - at the end of BASIC lines...
* (* BASIC)	()		(duncan moore)	Cursor copy mode reads the displayed characters, not the tokens (correct), but advances by byte, not by column (wrong)
* (* BASIC)	()		()		Cursor->Confine H in BASIC mode doesn't work. Should it work by tokens ?
* (* BASIC)	()		()		Del to SOL. Last word deleted was REPEAT. Del that: it also deleted the line. Pressed Return to start a new line, got endless series of cln_backwards. "force line numbering" on; by default everything numbered in 1s.
* (* BASIC)	()		(carl)		(See the Delete to SOL problem?) DELETE "WORDSTART" doesn't tidy up around the start of a line properly - corrupts the file nastily. Try it by typing in PRINT on a brand new BASIC file ...
* (* BASIC)	()		()		Enter, somehow, in the BASIC mode P. P - then press 'fullstop':Two PRINTs!
* (* BASIC)	()		()		Inserting regions not ending on line-ends in BASIC mode...i.e. copying multiple incomplete lines of BASIC should not insert CRs.
* (* BASIC)	()		()		Just now copying a block of lines using COPYSEL between two BASIC windows the last line of the block was duplicated in the display; UPDATEWINDOW cured it.
* (* BASIC)	()		()		MOVESEL past EOL...??? with NSE on.
* (* BASIC)	()		()		Rather than strip after ':'s in ASSEMBLE reject totally if any OPTs...?
* (* BASIC)	()		()		Saving a file in BASTXT mode can tokenise it and put it into BASIC. OK. Pardon?
* (* BASIC)	()		()		Search and replace selects whole keywords - and replaces them, too
* (* BASIC)	()		()		Serious colouring problem: .mode_prevline; REM redraw the screen
* (* BASIC)	()		()		Top-bit set characters in * commands - would be nice if these were fixed.
* (* BASIC)	()		()		Top-bit set characters in assembler comments ... backwards compatability
* (* BASIC)	()		()		Variables starting _ in assembler...?
* (* BASIC)	()		()		Yes, LHS margin redraw problem observed, when last chr not aligned in Code mode, also BASIC mode...
* (* BASIC)	()		()		ZapBASIC REM at new file or end - may be fixed. What does this mean?
* (* BASIC)	()		()		ZapBASIC last line = logical line 1 in GotoBox.
* (* BASIC)	()		()		cursor disappears sometimes?
* (* BASIC)	()		()		undo falls over sometimes?
* (* BASIC)	()		(chris bell)	Triple-click (line select) in BASIC mode doesn't select line number. Apparently only for certain keywords on the list (CLOSE#, IF, ... ?)
* (* BASIC)	()		(gareth mcc)	DELTOEND'ing across lines causes rubbish to go into the yank chain.
* (* BASIC)	()		(james)		"Don't colour code" and "Don't colour APCS" don't force a redraw of the window.
* (* BASIC)	()		(reuben)	'lr' in 'lr%' coloured as register not variable
* (* BASIC)	()		(reuben)	sometimes a string array is wrongly coloured, eg at the start of a line with several spaces before it. Bug is intermittent.
* (* BASIC)	()		(reuben)	undo replaced 'REM with '@' and didn't undelete a deletion (maybe only with v1.34?)
* (* BASIC)	()		(david ruck)	Pasting multiple lines converts to ^J rather than pasting as multiple lines ...
* (* Buttons)	(christian)	(r darlington)	Configuring a mode's buttons state from IB menu has no effect
* (* DWExt)	()		()		incorrectly still refers to !Zap.3rdParty somewhere?
* (* HoTMeaL)	()		()		Fix HTMLINSERTIF in non HoTMeaL modes. Also "... has been replaced by TMT_IF" - can we replace this too?
* (* HoTMeaL)	()		(darren)	Complete should stop scanning on finding a semicolon as well as, eg, space. "&amp; 66666666." doesn't try to complete; "&amp;66666666." does. Also, it perhaps shouldn't beep on failed completes.
* (* HTML)	(james)		(dan ellis)	Pull HTML mode. Move ZapHTML commands into HoTMeaL.
* (* Inform)	()		(darren)	Doesn't cope with the split point correctly during e_redrawline.
* (* MakeFile)	()		(guy griffin)	COMPLETE/auto completion doesn't work properly - you can't turn it off, or something
* (* StrongZap)	()		()		For that matter, why is there a separate body colour - wouldn't foreground be a better colour to use?
* (* StrongZap)	()		()		appears to colour "#Fcode:some stuff" wrongly - the ":some stuff" gets the # colour rather than "some stuff" getting body colour.
* (* StrongZap)	()		(reuben)	Save options with changed colours doesn't work properly?
* (* Perl)`	()		(james bursa)	Fns with numbers in turn non-numbers preceding the number to punctuation colour, numbers to number. Also affects Python mode. _Doesn't_ happen if the digit is '2' or '3'. Also can't cope with some other valid names.
* (* TaskW)	()		()		Changing width in a TaskWindow - deletes all existing text - eeek!? this also happens if window-wrap and infinite width are both on...
* (* TaskW)	()		()		Copy text from TaskWindow leaves trail of cursors
* (* TaskW)	()		()		Moving of large bits in the task window causes selection to be deleted messing up data transfer...?
* (* TaskW)	()		()		TaskWindow WIMP message title... Huh?
* (* TaskW)	()		()		TaskWindow output and no flashing cursor...
* (* TaskW)	()		()		VDU 21,65,6 in an appropriate TASKWINDOW doesn't work. Ctrl-U clash
* (* TaskW)	()		()		armwvt in taskwindow giving a silly line break!
* (* TaskW)	()		(james)		adjust-close on task window opens root directory (or CSD?)
* (* TaskW)	()		(dan ellis)	if *typing a pipe in a taskwindow, killing the task closes the pipe, but closing the taskwindow and discarding doesn't.
* (* TaskW)	()		(justin)	Read Memory from a taskwindow no longer grabs the taskwindow task's data (but Zap's)
* (* ZapEmail)	()		()		In ZapEmail, "-I" tabs extend into borders where they are not redrawn properly sometimes.
* (* ZapMJE)	()		()		ZapMJE needs 'fixing' so that throwback buffers can be guarded from 'external' writes... done? - /partly/...
* (* ZapMJE)	()		()		copying '}'s in 'c' mode... used to cause exceptions - it currently doesn't indent because of this problem
. (* ZapMJE)	(darren)	(darren)	C/C++ and probably others (Java, Pascal) use "Source file:" instead of |zap_tb_srcf|, "Functions:" instead of |zap_tb_srcm| in LISTFNS. Assembler mode isn't affected.
* (* ZapMJE)	()		(gareth mcc)	Function preamble across multiple lines and opening brace on the last of them, the indentation goes to the last line of the preamble, not to the first.
* (* ZapMJE)	()		(reuben)	Problem with INSERT "xxx{}" in ZapMJE...
* (* ZapMJE)	()		(reuben)	Various indent related problems and asks for 'no auto unindent'.
* (* ZapMJE)	()		(reuben)	reports that in C mode cut to EOF not working properly - with big files?
* (* ZapMJE)	()		(t houghton)	A line ending "\ " gets the space stripped if strip spaces is on (think in a single-line comment ...)
* (* ZapObey)	()		()		Obey file |s line end in IF with comment next
* (* ZapScheme)	()		(gareth mcc)	Appears to have a bug in its "alter number of colours" code.
* (* ZapTeX)	()		()		wordwrap off, a recognised command: last letter is last possible on line causes ungraceful crash
* (* ZapText)	()		()		ZB swapcase on then AT EOF -> THEN moves cursor to SOL... (and generally nice to tokenising modes)
* (* ZapText)	()		(james)		FILTER/PIPE commands don't set modified correctly (sets '?', and undo sets '*' but Zap knows better when you close the window)
* (*)		()		(james)		It would be nicer, in general, if errors on command execution always went to the minibuffer. Do this in the commands themselves (use BL warn from Text/Util/Bits).
* (+ Code)	()		()		Changing early module offsets causes the redraw to go wrong
* (+ Code)	()		()		Fix bugs when EOF is not word alined. Word mode too...
* (+ Code)	()		()		Still sometimes two?-too-many cursor redraws in Code mode...
* (+ Code)	()		()		Tidy up stray colons on the last line of Code + other mode...
* (+ Code)	()		()		Yes, LHS margin redraw problem observed, when last chr not aligned in Code mode, also BASIC mode...
* (+ Code)	()		(james)		Searching on lines which are completely replaced by comments (eg: module header) searches the original disassembly, not the replacement
* (+ Code)	()		(james)		With 'minimal colouring', SWI names are still coloured separately to SWIs
* (+ Text)	()		()		Auto soft-wrap detection may be *too* good - it kicks in even if there is a /single/ long line...
* (+ Throwback)	()		()		Throwback from NCC with multiple files giving problems with it not identifying the correct file... NCC's fault - can we hack it?
* (+ Throwback)	()		(david o'shea)	Focus in tb window and more entries added + scrolls window -> extra cursors left behind
* (+ Throwback)	()		(theo)		throwback affects older view on a file, not most recent / one search started in. One solution (M Sackman) would be to keep a 'window that most recently had cursor' pointer in the file block, and to use that.
* (+ Word)	()		()		Selection in word mode and the last byte...
* (AlterTxt)	()		()		Deleting lines at bottom of screen causes things to judder up and down
* (Boxes)	()		(james)		WC_Output (WC, TOTAL, count) uses string literals for 'match(es)' etc. Needs rewriting fairly heavily to work with internationalisation ...
* (Boxes)	()		(james)		close modified if SaveOBox/SaveCBox -> save box, text wind don't close - ?need to pass r7=0 => no leaf caller, else xfer kill state flag (b3) to created window for: save_to_file, save_text (API change), save_file_date
* (Commands)	()		(reuben)	Binding UP:IF (@SELHERE@):CLEARSEL:ENDIF to up/down key repeats very slowly. Similar bound to page up/down or left/right doesn't seem to have this problem.
* (Commands)	()		()		INDENTBY command seems to be broken, especially with -ve arguments...? Seems okay to james ...
* (Commands)	()		()		Problem with SENDSEL and CRs - problem currently fudged
* (Commands)	()		(james)		MAKEDEFAULT doesn't copy styles for logical colours.
* (Commands)	()		(james)		MZAPBOX - or menu building - has a bug; hanging it off my 'Program' menu fails. Apparently this will happen for any internal dbox ... although WCSel / TotalSel seem happy; may need to be the same command
* (Commands)	()		(james)		NEWFILE: cursor positioning bug
* (Commands)	()		(james)		IF (@IN(@MODEN,"c,c++,java")):MJE_REINDENT:ENDIF tries to load ZapMJE. Either trying to load the modes (bug) or trying to validate MJE_REINDENT (overkill).
* (Commands)	()		(james)		Scrolling the window in a WHILE loop doesn't redraw properly
* (Commands)	()		(jerome)	DELWORDRIGHT (and probably others) use their own definition of a word, not e_returnword or similar
* (Commands)	()		(justin)	FORMATTEXT failure with SW? FORMATTEXT needs an overhaul anyway; should optionally preserve indenting ... possibly can do CLEFT:SRIGHT:FORMATINDENTED "\<" or something?
* (Commands)	()		(james)		Smart cursor movement command (and some others?) can be ticked /and/ grey at the same time (eg: BASIC mode)
* (CreateFile)	()		()		s.CreateFile:calc_ftype doesn't handle exec=-1, load=-1 => untyped but effectively of type "Command". Probably export calc_ftype so clients reap the same benefits.
* (CreateFile)	()		(iain truskett)	Ursula crash from QUICKSAVE et al has been reported for RISC OS 3.8
* (CreateFile)	()		(neil)		Ursula crash from QUICKSAVE et al - save_text - with no path. Data abort - is r2 getting corrupted on return to Wimp_poll?
* (CreateFile)	()		(darren)	Save system wants changing to allow preservation of datestamp when that's sensible ...
* (Cursors)	()		(duncan moore)	SCDOWN (et al?) doesn't respect 'confine cursor' global option
* (Execute)	()		()		COMMAND WIMPTASK "Run ZapCode:Config.CreateConf -script ZapCode:Config.RunScript":RELOADKEYS gives "Bad command call" from a menu - but fine from the minibuffer. How about bound in Keys? Learned?
* (Execute)	()		()		If a command is not found in the module in which the external file claims that it resides then there can be exceptions.
* (Execute)	()		()		Learned sequences in conjunction with a search. Report was: mini-buffer search string corrupts, but this works okay for james. However executing dbox search in the learned seq, corrupts saved search string.
* (Execute)	()		(james)		multicommand blocks in variables &30E, &30F, &322 cause minibuffer to screw up, and don't execute
* (Fonts)	()		()		Error when font file is completely missing - should at least be able to revert to using /something/...
* (Fonts)	()		(james)		Font error code is very broken currently; changing to a font that won't load causes it to fall over completely (stack corruption?). I *think* this may have been here since Tim expanded the code for substyles ...
* (Fonts)	()		(james)		Currently tests for recent font manager using WimpVer >= 300; should find font manager version and store that in ws for a more accurate check. Need font manager version number of the changes?
* (Keys)	()		()		Argument type errors in keys file stop Zap from starting
* (Menus)	()		()		When a writable menu entry is adjust-clicked in it often loses the caret this is caused by commands that call new_window_status...? Use the new version of this command where possible...
* (Menus)	()		(alex m.smith)	Menu width calculation code isn't working under RISC OS 3.1
* (Menus)	()		(alex m.smith)	Loading a mode closes the Modes submenu (menu relocation on rebuild ...)
* (Minibuffer)	(darren)	(darren)	^W causes abort (R9=0) if no selection has been made yet.
* (Minibuffer)	()		(gary lee)	Permanent minibuffer behaves strangely ... sometimes frobs window cursor position wrongly?
* (Minibuffer)	()		(james)		Escape from permanent minibuffer doesn't return cursor to window (may not be a bug?)
* (Printing)	()		(guy griffin)	PrettyPrint gets borders/margins wrong? (Also A.Thouky)
* (Printing)	()		()		The CC Turbo driver bug still hasn't been fixed - beware! Dom now knows how to fix it. Bug actually in the drivers' printing of background objects. Was believed that Computer Concepts would be offering a fix 'soon'.
* (Printing)	()		(darren)	Quick and print dbox keystrokes don't work terribly sensibly ... up/down arrows reset the values to default. Fancy print may not honour the values unless you press <Return> in the relevant fields (I haven't checked).
* (Redraw)	()		(darren)	Window height < height of one row of text, redraw event is handled but nothing is drawn
* (Redraw)	()		()		Redraw of line numbers happens far too much - but there's no easy fix
* (Redraw)	()		()		When an error appears e.g. in 'Code' mode when editing an instruction, the cursor doesn't get redrawn properly underneath it...
* (Search)	()		()		"\n\>" is needed in searches. Should be "\>". Note that Darren is against fixing this
* (Search)	()		()		In Code mode - and word mode? - a Raw search can get 'stuck'. When SS? not word-aligned :<.
* (Search)	()		()		Two cursors are sometimes visible in Search AYT
* (Search)	()		(duncan moore)	Search dbox: Menu always raises the history menu when over an icon; should only do so on search label/entry field/menu icon. Similarly for replace dbox.
* (Softwrap)	()		()		Problem with SW and another window's cursor moving
* (Softwrap)	()		(justin)	SW and auto-indent don't mix - there may be problems here
* (Templates)	()		(gavin wraith)	Missing template error doesn't specify which template is missing
* (TMFs)	()		(james)		might be a remaining buffer overflow bug ... I've seen it once
* (Undo)	()		()		Bugs in YANK between buffers - esp. when copied-to buffer has no undo
* (Undo)	()		()		FastUndo loses info...? hard to reproduce ... with full undo/S+R?...
* (Undo)	()		(duncan moore)	Multiple DELETE "LINE" and PASTE commands can get confused and paste too much text?
* (Undo)	()		(gary lee)	Running out of memory during an insert operation causes memory leakage; probably the UNDO op stuff isn't being released
* (Wimp)	()		(andy wingate)	Filetype menu in save dbox causes data abort @ offset fe04?
* (Wimp)	()		(gary lee)	DataSave to Zap (ie: app to app transfer) seems to claim twice as much memory as with Filer? (This may be an artifact of a 32k page size, but is worth investigating anyway.)
* (Wimp)	()		(gary lee)	Alt-double-click when first character on the line isn't a space character causes an address exception. More info is available ...
* (Wimp)	()		(reuben)	Zap can make a mess of its file transfer and leave its transfer file open.
* (Wimp)	()		(duncan moore)	Double-click-drag won't highlight last word on line if you move past it - you have to move to start of next line (then also grabs line end)

+  Suggestions
+ (!)		()		()		Installer?
+ (!)		()		(justin)	Default menus should be simpler, closer to style guide
+ (!)		(james)		(james)		Autoload directory. ZapAuto:Preload, ZapAuto:Postload, ZapAuto:Prequit or something. Need RepeatPath command to do this. Then clear out Code.Extensions a bit. Do we need Code.EE? Code.MakeExtern?
+ (!)		(james)		(justin)	Default keymap should be simpler, closer to style guide
+ (%)		(james)		(james)		Provide StrongHelp manual; tech docs under buttress
+ (%)		(james)		(justin)	Boxes sufficiently structured, and a tool to check that it's not talking rubbish wrt the latest templates (and to check internal consistency between template sets). Boxes probably generated from some tagged format, then?
+ (%)		()		(steve wood)	"Real life" examples of sophisticated editing processes.
+ ()		()		()		Add a scripting language that mirrors Zap's 'Menus' system, but that can be applied to dboxes instead. Use to create proper preferences dbox system, and thus to replace largish chunks of Zap's options menu structure.
+ ()		()		()		Add ability to move main cursor when cursors are unlinked maybe a command which toggles between which one responds to the cursor keys...? Sounds unnecessary to james
+ ()		()		()		An alternative to RISC-OS's appalling single-tasking error boxes, where these are used
+ ()		()		()		Better support for FileTypeExtend... Why? - james
+ ()		()		()		Central bracket matching... see discontinuous area selection...
+ ()		()		()		Check for NC compatability problems involving Wimp$Scrap and the method of checking to see whether Zap is already loaded...
+ ()		()		()		Discontinuous area selection for use with: bracket matching, throwback highlighting, spell checkers, fuzzy input systems i.e. speech and handwriting, Zap's search routines - how about emacs-like rect selections?
+ ()		()		()		Escape in main window closes that window's D-Boxes feature...? I think this is a suggestion - james
+ ()		()		()		Line spacing isn't stored mode-dependantly ... and a mode specific margin? Start line, start address ... ?
+ ()		()		()		Make HidePtr die with Zap by default. No ... make HidePtr et al an ZapAuto:PreLoad / ZapAuto:PostLoad thing, and have ZapAuto:PostQuit as well
+ ()		()		()		More use of Hourglass when loading - inc files.
+ ()		()		()		Option for new view to be a split view of a file - one RISC-OS window! Or the idea of linked windows?
+ ()		()		()		Possibly provide mechanism for de-installing modes for low memory use. This is tricky - I've thought about this before - james
+ ()		()		()		Sensible default options, styles in all modes, etc. etc.
+ ()		()		()		Timed save to back # file in Zap dir or ~ file etc. Erm ... I'd prefer #, if it weren't a wildcard. Have to think about this - perhaps ~~ ?
+ ()		()		()		Variable width tabs stops, or maybe tab rulers. This is unlikely to get done; it requires changes across all text-like modes.
+ ()		()		()		When a file is loaded via EE an empty buffer is first created and then the text is added. Would it be possible to treat the first block of text being added as a new buffer for file type detection, esp. DOS file etc.?
+ ()		()		()		commands in file header
+ ()		()		()		load dual edits in Read Only mode ... why?
+ ()		()		(dom plunkett)	Remember state (files, memory grabs, etc.). Could be done as an extension with some registered service calls?
+ ()		()		(james)		'tie' two - or more? - windows together
+ ()		()		(james)		An 'ignore file permissions' flag, so they don't get written back incorrectly (eg: on scR)
+ ()		()		(james)		keypresses on a hotkey window - ie: bind a keymap to a hotkey window
+ ()		()		(joe oldak)	double/triple/etc click-dragging - moving backwards selects from start of word/line/etc., not end. Can this easily be altered? Also, new word/line/etc should be selected as soon as mouse hits start, not end, of unit
+ ()		()		(justin)	Have a command which stops auto-clear selections from kicking in when executed in startop/stopop sequences...
+ ()		()		(justin et al)	Transient per-mode data for a file (typically for use as a redraw cache). Could we consider having metadata with references that will move around the file, a la links?
+ ()		()		(james)		Finish symbolising source
+ ()		()		(stefan bellon)	Grab memory from apps workable without dragging to an app, using TaskManager_EnumerateTasks or similar
+ ()		()		(tony houghton)	Read module workspace sets base address appropriately
+ ()		()		(various)	Grab modules (and others?) could set f_ptr et al to point to real memory, and set permanently readonly (then can update by refreshing the window). David Ruck wants to write back, but this is tricky <= split buffer
+ ()		()		(various)	Update memory/disc/module should have a 'refresh' option to re-grab, kind of like REVERT does for files
+ ()		()		(tony v der h)	Tab edit mode should be a per-mode option, not global
+ (*)		()		(lenny)		User override directories for resources of modes, eg ZapUser:ModeConfig.<modename>. at the start of Zap<modename>$Path
+ (*)		()		(james)		ZapZ80 into distribution?
+ (*)		()		(james)		Texture back into distribution (or drop)?
+ (* BASIC)	()		()		'ESCAPE' selection in BASIC mode would be better if it treated tokenised keywords as single characters...
+ (* BASIC)	()		()		*Proper* colouring in BASTXT mode. A cheap method would be good...
+ (* BASIC)	()		(duncan moore)	Indenting
+ (* BASIC)	()		(rex palmer)	LISTO-style pretty /display/ (so not altering the file ...)
+ (* Buttons)	()		()		WIMPy search forwards and search backwards buttons... in Buttons default ...
+ (* Debugger+)	(darren)	(james)		Optionally display MVN r0,#n as MOV r0,#NOT (n - 1)
+ (* ForZap)	()		()		Zap's internal command table used ...
+ (* HoTMeal)	()		()		HTMLDELETETAG
+ (* HoTMeaL)	()		(james)		Beautify command stuff has to go all lower case because of XML. However features to allow upper-case display of this might be useful to some people. presave should probably have an option to ensure lower caseness.
+ (* HoTMeaL)	()		(andre t)	XHTML rather than HTML tag generation
+ (* Obey)	()		(rob s)		Get command list from loaded modules, not internally
+ (* StrongZap)	()		()		It'd be nice if bold/underlined/italic text were displayed as such - i.e. it'd be nice if they were coloured specially, both short forms *like* *this* and long forms {/}like this{/}
+ (* TaskW)	()		()		Buttons for suspend/Link/kill... button support for all modes without intervention ...
+ (* TaskW)	()		()		Checking that the Obey/TaskObey file being used as the taskwindow's input is LF-terminated ...if it isn't, Zap should optionally be pretending it is.
+ (* TaskW)	()		()		Implement c@ when this is not on sc2
+ (* TaskW)	()		()		Make TaskWindow arrow keys be passed on via vectors instead of trapping.
+ (* TaskW)	()		()		TaskWindow history on sMENU...
+ (* TaskW)	()		(justin et al)	Don't scroll unless control held, rather than the other way round. Possibly as an option?
+ (* TaskW)	()		(darren moore)	Programs running in the tw can change the text colour?
+ (* ZapConfig)	()		()		internationalise - more than just a Messages file; use Zap$Country
+ (* ZapConfig)	()		()		v1.41-v1.45 additions
+ (* ZapConfig)	()		()		v1.41 config format
+ (* ZapEmail)	()		(iain truskett)	Unload taglines to save memory
+ (* ZapProg)	()		()		DataAdd et al
+ (* ZapProg)	()		()		SWIToName, SWIToNumber
+ (* ZapProg)	()		()		assemble ADRL/X
+ (* ZapProg)	()		()		header/function/TLD finding ... TMF for paths? ... ctags?
+ (* ZapProg)	()		()		new MAKE/BUILD etc. commands using TMFs
+ (* ZapRedraw)	()		()		Add WIMP-friendly mode with font kerning et al - very hard
+ (* ZapRedraw)	()		()		Add fast bitmapped *anti-aliased* fonts - fairly easy
+ (* ZapRedraw)	()		()		Add proportionally spaced font redraw mode by adapting VDU redraw. This will be very hard to support properly from within Zap, what with Window wrap, Soft wrap and all
+ (* ZapRedraw)	()		()		Speed up VDU redraw to use OS_WriteN + large rectangle cursors...????
+ (* ZapRedraw)	()		()		Usage locking - so can kill it if unused, to save memory?
+ (* ZapRedraw)	()		()		Write some redraw widgets: e.g. Zelp - fast interactive help and Zhars...
+ (* ZapRedraw)	()		(tim)		Textured backgrounds ... in VDU redraw mode initially
+ (* ZapSpell)	()		()		Add option to sort ZapSpell throwback windows alphabetically...
+ (* ZapSpell)	()		(guy griffin)	WORDWORKS_LOOKUP takes a string, rather than WORDWORKS_SELECTION which is too specific
+ (* ZapSpell)	()		(james)		Option to use, eg, dict instead of ImpressionSpell.
+ (* ZapText)	(james)		(james)		<ctype.h>-like functions: @ISALPHA, @ISALNUM, @ISASCII, @ISBLANK, @ISCNTRL, @ISDIGIT etc.
+ (* ZapText)	()		()		swapcase is nice to tokenised modes
+ (* ZapText)	(james)		(james)		@ISALPHA, @ISALNUM, @ISASCII, @ISBLANK, @ISCNTRL, @ISDIGIT, @ISGRAPH, @ISLOWER, @ISPRINT, @ISPUNCT, @ISSPACE, @ISUPPER, @ISXDIGIT
+ (* ZapUtil)	()		(james)		WINWIDTH, WINHEIGHT, WINX, WINY to complement the WINMOVE stuff - these need to be functions and commands. We have sample code, due to Gerold Hilpert
+ (*)		()		()		Add a hypertext-like Zap help mode based on HTML... i.e. add a web browser mode... isn't this ott?
+ (*)		()		()		Generic syntax-colouring mode using regexps or something ... discussed regexps using cached DFAs, seems a good move; alternatively, the more primitive method used by StrongED? Something between the two? a la jed?
+ (*)		()		()		HTTP fetcher for Zap - quite important... surely should use whatever Acorn's *Fetcher system is? - james. More a library issue than writing one ourselves ...
+ (*)		()		(james)		FILEMENU command which can build a menu from a file spec, with appropriate actions when the entries are clicked. Recursive abilities for directories and/or different actions on different file types/names?
+ (*)		()		(james)		Standard way of building project file lists into menus, while enabling them to be used easily within a Makefile. Makefile parsing is probably the wrong route :-)
+ (*)		()		(james)		expanding abbreviations, probably configurable per-mode or something. Possibly with a hook into the core in some way. Duncan Moore wants it to be able to figure out word completions / next best word based on the current document, also.
+ (*)		()		(duncan moore)	awk, csh/sh/ksh, Fortran modes
+ (+ Binary)	()		(a timmermans)	widths wider than 256 allowed
+ (+ Code)	()		()		Add native assembly of LDRL-type instructions...?
+ (+ Code)	()		()		Add the ability to browse through main memory...! Including the application memory of different applications...
+ (+ Code)	()		()		Independent mini-buffer history for Code mode instructions
+ (+ Code)	()		()		Proper in-line editing of Assembler...
+ (+ Code)	()		()		Query assembling instructions which reduce reducible constants...?
+ (+ Code)	()		()		Search backwards in Code mode for ADRL...
+ (+ Code)	()		()		System Co-processor / new non-ARM2 instructions signalling...
+ (+ Code)	()		()		Use Undefined Instruction Text in Debugger.Messages...
+ (+ Code)	()		()		Use the DS disassembler lower case option properly...
+ (+ Code)	()		(andre t)	Auto-decompress of compressed AIF etc.
+ (+ Code)	()		(gary lee)	Option to disable clever disassembly.
+ (+ Code)	()		(james)		Differentiate between CLib calls and internal image calls (not too difficult - differentiate for -> code: as well?)
+ (+ Code)	()		(james)		Option to turn off SWI name lookup (so just get numbers always)? Would this be useful to anyone at all? :-)
+ (+ Throwback)	()		()		Highlighting match in throwback mode.  To do this properly would ideally require an extension to the throwback protocol so that the highlighting can be used by clients apart from Zap.
+ (+ Throwback)	()		()		Throwback should canonicalise name BEFORE inserting the file - immediately.
+ (+ Throwback)	()		()		Add Throwback to the relevant !Help file in the 'Authors' file...
+ (+ Throwback)	()		()		Store window that generated this throwback entry, so cursor can be thrown to it, not just first window on file. Requires extension to f_link system; either extend block, or (better) flag => offset is window not file
+ (+ Throwback)	()		(darren)	Configure throwback files to highlight lists of looked-up tokens using given colours.
+ (+ Throwback) ()		(stefan bellon)	Undo in throwback?
+ (+ Throwback)	()		(duncan moore)	Selecting entries in throwback scrolls window hard left - this should be configurable
+ (Boxes)	()		()		Add 'List of files' throwback command/window. May need alterations to Search to be really cool ... list of windows?
+ (Boxes)	()		()		Add a proper word count/document statistics command
+ (Boxes)	()		()		Dragging files *into* the Save/SDC box inserts their pathnames into the relevant writable icons
+ (Boxes)	()		()		Option to have Goto box clear, ie as for search window (was 'and implement Tab', but it implements Page up/Page down as all normal Zap dboxes already)
+ (Boxes)	()		()		Option to make save boxes etc transient.
+ (Boxes)	()		()		Should disc buttons auto-repeat?
+ (Boxes)	()		()		dboxes work as messydos - old choice in icons, remove if user types over
+ (Boxes)	()		()		redefine keystrokes in dialogue boxes - idea from StrongED
+ (Boxes)	()		()		Make *all* relevant buttons be highlighted by their keyboard shortcuts...
+ (Boxes)	()		(david ruck)	Various dboxen (Save, ColourBox, DyingBox, DZapBox, PrintBox, QuickBox, SaveSelBox) have internal variables separate to fields, written (fields->vars) on Return, read on cursors etc., so you lose the changes often ...
+ (Commands)	()		(theo)		List-of-commands command
+ (Commands)	()		()		/Perhaps/ SETWIDTH, in window wrap mode, should actually set the window width...?
+ (Commands)	()		()		Add SMOOTHSCLEFT, SMOOTHSCRIGHT, SMOOTHSCUP and  SMOOTHSCDOWN /possibly/ with acceleration on auto-repeat.
+ (Commands)	()		()		CENTREONSCREEN command...?
+ (Commands)	()		()		COPYCHARABOVE/DUPELINE command... for greater performance
+ (Commands)	()		()		CR<->LF...? We have SWAPCRLF, but it neither sets modified nor is undoable - deliberately, in the second case; the former could cause problems.
+ (Commands)	()		()		Command to load !Help file of a given mode and...
+ (Commands)	()		(duncan moore)	indent/outdent optionally skip 'comments', ie lines that start in first column
+ (Commands)	()		()		Get TOGGLEWIND to pay attention to the SHIFT/cmos bit.
+ (Commands)	()		()		MENUCOMMAND "CMD" command... very hard...
+ (Commands)	()		()		SETINSERTTIME and SETINSERTDATE should modify the relevant format strings. These would be new commands then ... I quite like the idea, alternatively, of moving time/date format strings into TMFs.
+ (Commands)	()		()		WINDOWXPOS, WINDOWYPOS, WINDOWXSIZE, WINDOWYSIZE commands... and functions ... 
+ (Commands)	()		(c granville)	Font selection via menu sets font type - store last bitmap and outline and accessible via a functon. Then BITMAPLIST, FONTLIST take byte param which if != 0 sets FONTTYPE on menu item selection
+ (Commands)	()		(darren)	Move FORMATINDENTED into the core, and get FORMATTEXT to call that with a "" argument.
+ (Commands)	()		(james)		REVERT
+ (Commands)	()		(various)	Rectangle operation commands (a la emacs)
+ (Commands)	()		(james/justin)	Alter COMMAND so LFs get treated as either LWSP or as ":"
+ (Commands)	()		(various)	"Last loaded" menu; this is best done by exporting a service in the new system for "file loaded", and writing an extension
+ (Cursor)	()		(darren moore)	Scrolling windows to find the cursor should centre the cursor on the window
+ (Cursor)	()		(david ruck)	Switching between binary modes should preserve cursor position, NOT scroll bar position
+ (Fonts)	()		()		IB font selection...Per-mode font. Requires per-window font selection.
+ (Menus)	()		()		Add small filetype sprites to the 'Types' menu. No - looks horrible!
+ (Menus)	()		()		Make 'Edit config' use OLE so that reload options is automatic...
+ (Menus)	()		()		update menu shortcuts when basemap changes
+ (Menus)	()		(various)	"better", or at least more unified, colour config system
+ (Minibuffer)	()		()		Minibuffer 'Warning's get the caret? + history menu? Really? Isn't that just irritating?
+ (Minibuffer)	()		()		Minibuffer warning scheduler...
+ (Minibuffer)	()		()		click on window with minibuffer open puts cursor in minibuffer
+ (Minibuffer)	()		()		command completion in minibuffer
+ (Minibuffer)	()		(duncan moore)	Minibuffer has a keymap
+ (ModeBits)	()		()		protect against loaded modes' modules dying - also command tables. Usage count? Time since last used? Auto purge when running low on memory?
+ (ModeBits)	()		(james)		replace e_interrogate #4 with a mode info block; leave until v1.45-v1.46 changes
+ (Modes)	()		()		Add support for full-blown modes which don't have names... eg Buttons
+ (Printing)	()		()		Print selected region.
+ (Printing)	()		(darren)	Configurable page size in quick print
+ (Printing)	()		(james)		Configurable print headers and footers
+ (Redraw)	()		()		Different background colour for line numbers and colons...
+ (Redraw)	()		()		Tab display could be improved with four dedicated tab characters...? How? Also, doesn't this affect all redraw modes?
+ (Redraw)	()		()		Folding
+ (Redraw)	()		()		Narrowing
+ (Redraw)	()		(m sackman)	Indicate mark positions in some way
+ (Saving)	()		(duncan moore)	Auto-insert EOL at end of file (for Text mode, etc.)
+ (Search)	()		()		'Always maintain cursor vertical position in search' option. Probably needs a scroll-maintaining-cursor-offset-in-window routine internally. Erk, more cursors :-(
+ (Search)	()		(darren)	'Negate previous atom' search command (ie: not the previous)
+ (Search)	()		(duncan moore)	Ignore throwback files in 'all files' searches
+ (Search)	()		(james/darren)	Minibuffer-based version of search-to-window, replace commands. Variants which use grep/sed for more common regexp syntax. Wrap the latter back into dboxen.
+ (Search)	()		()		Multi-task option in SEARCHBUF...? Hmm ... nice idea, probably a PITA to do
+ (Search)	()		()		Optimise search if no control codes.
+ (Search)	()		()		Same -> Other, same -> other and SAME -> OTHER search and replace
+ (Search)	()		()		Search confined to selection...?
+ (Search)	()		()		Search macros are limited to 7 characters... - I believe this is now a build-time thing ...
+ (Search)	()		()		Merge replace, search dboxen
+ (Search)	()		(james)		Keystroke to toggle search dbox size (for search help)
+ (Search)	()		(darren)	Option for whether search dbox opens maximised or not
+ (Search)	()		()		want to export search_string, interface to search_text, as Zap_SearchString. This can wait; it's needed for an INSTR function.
+ (Search)	()		()		bring target window to immediately below replace dbox on match? How about on replace.next dbox?
+ (Search)	()		(duncan moore)	uniq option on search to window
+ (Search)	()		(theo)		search type between raw and line-based, ie detokenises but works across lines
+ (TMFs)	(james)		(james)		boolean variables, using t/f strings?
+ (TMFs)	(james)		(james)		dumpvars command. dumpmodevars command?
+ (TMFs)	(james)		(james)		per-file variable overrides; export code via Zap_ call. Should allow interpolation ... % as a special mode name meaning 'in this file'?
+ (TMFs)	(james)		(james)		use internally for softwrap chars, e_returnword delimiters, etc.
+ (TMFs)	(james)		(james)		variable substitution
+ (Undo)	()		()		Global clipboard, PASTE depend on undo buffer
+ (Wimp)	()		()		Interactive help on a per-icon basis...
+ (Wimp)	()		(james)		Wimp Message_CloseWindow has _entirely_ same effect as CLOSEWINDOW (including focus cycling).
+ (Wimp)	()		(gary lee)	Make shift-drag files into Zap more configurable. Gary wants space removed; probably use TMFs as format string. One for files, one for dirs? One for sels? Darren thinks modes should cooperate - eg: DATA in BASIC?
+ (Wimp)	()		(tony v der h)	On toggle size, scroll so cursor is in top half of window (optional)
+ (Wimp)	()		(gerold hilpert)Default options for window size/placement (again - v1.20 used the 'Main' template data)
+ (Wimp)	()		(tony v der h)	When opening a file by double-click etc. that's already loaded (but unchanged), should just move a view to the front, not close & reopen it

-  Implemented suggestions
- (* ZapSpell)	(christian)	(james)		"Generally sort ZapSpell out ..."
- ()		(darren)	(various)	The binary modes' options need to be sanitised on loading
- (!)		(james)		(james)		Finalise internationalisation changes (seems to be done now ...)
- (!)		(darren)	(james)		Cope with TMF config files in ConfigScan, RunScript.
- (!)		(james)		(james)		TMFs config and files in ZapUser:Config.
- (*)		(james)		(david ruck)	Diff mode
- (* Buttons)	(christian)	()		Buttons in 'core' modes. Ideally needs Buttons to work without cooperation of modes
- (* ZapText)	(darren)	(james)		Want to use GNU text utils with filter commands. Darren has re-ported these to use the SCL.
- (* ZapText)	(james)		()		REMOVELF-style command to skip lwsp at the start/end of lines. This has been done as a 'sed' script.
- (* ZapText)	(james)		(james)		Internationalise, a la ZapBits
- (* ZapText)	(james)		(james)		TMF clients - help stuff
- (* ZapUtil)	(james)		(james)		Internationalise, a la ZapBits
- (* ZapUtil)	(james)		(james)		SETNAME uses TMFs. (Actually done as SETNAMEINCORE.)
- (* ZapRedraw)	(christian)	()		Ideally include loading of fonts in ZapRedraw so if multiple ZapRedraw clients use the same font, it is available in an area of shared memory and does not need to be loaded repeatedly.
- (+)		(darren)	(stewart et al)	Halfword and 64Bit (DoubleWord) editing modes
- (+ Code)	(darren)	()		Append the module title to the module title header field.
- (+ Code)	(darren)	()		Double-click should select in Code mode...
- (+ Text)	(james)		()		Soft wrap auto-detection could do with being sped up. Should be up to 2x as fast; slightly slower when softwrapping isn't appropriate.
- (+ Throwback)	(james)		()		throwback sets file title to something useful; probably want to extend create_throwback
- (+ Throwback)	(darren)	(darren)	Configure throwback files to highlight lists of looked-up tokens using given colours.
- (* BASIC)	(christian)	(druck)		Update assembler colouring for ARMv5 instruction set (LDRD, STRD, CLZ, BKPT, BLX, possibly others)
- (* TaskW)	(christian)	()		Indication in title when taskwindow unlinked/suspended/dead...? Implemented for Suspended; dead already indicated by modified *.
- (Commands)	(darren)	()		indent/outdent performable on a single line
- (Commands)	(james)		()		Expand tabs. I thought was available as Untabify - except that leaves quoted tabs in program source modes, but that's right anyway.
- (Commands)	(james)		(james)		Window focus order when closing windows - goes to next window in order, when it should take previous window in window list - makes multiple op+close window on lots of files neater
- (Cursors)	(darren)	(james)		It'd be nice if s.Cursors:process_window_click used configured double click delay instead of hard-coded to 100cs
- (Menus)	(darren)	()		some way of including menu help text in the menu definitions
- (Redraw)	(christian)	(tanner family)	"Font not found" error should say which font
- (TMFs)	(darren)	(james)		should look for TMFs as ZapUser:Config.TMFs.<modename> in preference to Zap$TMF_<mode>
- (TMFs)	(james)		(james)		Documentation of c-vars ([^H][V]?). Stored as #<var name> in HelpData.

.  Fixed bugs
. (* ZapSpell)	(christian)	()		F12
. (* ZapSpell)	(christian)	()		REPLACE when loading...
. (* ZapSpell)	(christian)	()		Return...
. (* ZapSpell)	(christian)	()		SPELL_BUF - aborts if ISP not loaded!
. (* ZapSpell)	(christian)	()		SPELL_REPLACE with no SPELL window open at all...
. (* ZapSpell)	(christian)	()		Spell problems with adding words...
. (+ Code)	(christian)	(james)		pc usually gets 'c' coloured black on black (appears to be using colour #1) with APCS turned on
. (+ Code)	(christian)	(james)		APCS causes ] in STRB to be coloured register
. (+ Code)	(christian)	(james)		APCS colouring causes [] in LDRB a3,[a2],#1 and [ in LDR a1,[a4,#0] to be colour 'register' not '[ and ]'
. (+ Code)	(christian)	(james)		Copro instructions are coloured wrongly; without APCS, a number may be coloured as copro instr., and copro # is coloured as copro instr. With APCS, 1st letter of copro # is as copro instr. (cp # probably as cp reg)
. (+ Code)	(christian)	(james)		LDM ...{...}^ gets ^ coloured 'register' with APCS turned on
. (* Buttons)	(christian)	(justin)	Drop support for JRF_SCRIPTADDR, since no one uses it
. (* ZapMJE)	(christian)	(tony v der h)	Changing '* something' -> '/* something' colours subsequent text -> '//* something' doesn't reset subsequent colouring (needs a forceful refresh, eg scrolling)
. (!)		(darren)	(darren)	Line numbers submenu should be WFORMAT_TOGGLE 8 (possibly remove 'None' option as this will duplicate it)
. (! Code)	(james)		(james)		Colour name "#, !, ^ & -" should be "#, !, ^, - & ,"
. (! ZapBASIC)	(james)		(various)	!ZapBoot of ZapBASIC uses ZapCode:IfVarSet not IfVarSet (1.40 only)
. (! ZapBits)	(james)		(james)		Doesn't contain an External file (v1.42 required MakeExtern run over everything anyway ...)
. (! ZapUtil)	(james)		(james)		Messages file is wrong; it's ZapText's. Fixed in v1.42 ...
. (!)		(james)		(james)		Remove !ZapConfig from Code.Config, since it doesn't work with v1.41.
. (%)		(james)		(reuben)	@GREYED helpdata is wrong (talked about ticked ...) - fixed in v1.42
. ()		(darren)	()		If a tab is the last thing on a line then it is possible to get the cursor to disappear completely off the right-hand side of the window
. ()		(darren)	()		Kill DAs on QUIT
. ()		(darren)	()		Kill off /all/ LineEditor buffers on quitting.
. ()		(darren)	(james)		Multiple type (-1) blocks are being saved in the config file.
. ()		(james)		(gary lee)	Spool files / DOS text files - making them READONLY sets modified? Reason: spool/DOS was trying to set modified, but not quite getting it right ...
. ()		(james)		(james)		Selection->Process causes redraw to go wrong in selection?
. ()		(james)		(james)		Extensions build under Unix as well (basically just needs new Makefiles ...) - although AS can't yet build Text/s/help ...
. ()		(james)		(james)		Out Of Memory crashes badly when using dynamic areas. A few MOV instructions had been changed to MOVS, and some overly-conscientious optimisations of VS handling ...
. (* BASIC)	(darren)	()		The directive 'align' in lower case letters isn't coloured correctly, although the upper case version is.
. (* BASIC)	(darren)	(chris bell)	BASIC doesn't recognise the TRUE in FNget_set_int(w%,i%,a*n%,TRUE) as tokenised, due to * preceding?
. (* BASIC)	(darren)	(gareth mcc)	DEF FNf(x)=1*SIN(x) doesn't tokenise SIN. Other functions also affected; doesn't occur with +-/ instead of *.
. (* BASIC)	(darren)	(gareth mcc)	"b :" gets coloured as assembler branch. "B&1234" doesn't.
. (* Diff)	(james)		(james)		e_prevline/e_nextline to force complete redraw when first char changed
. (* Diff)	(darren)	(james)		Context diff support, rcs and ed recognition
. (* ZapBits)	(james)		(james)		Acorn-style makefile for ZapBits is wrong; it always relinks (use more like Text, Util which work properly)
. (* ZapJRF)	(james)		(darren)	!ZapJRF.Keys needs to be renamed !ZapJRF.JRFKeys (and is out of date anyway; either delete or update)
. (* ZapMJE)	(darren)	()		C mode's preprocessor indenting. Also its comment indenting; both wrong in various ways. I *think* this is fixed.
. (* ZapMJE)	(darren)	(james)		ZapMJE doesn't play at all well with Throwback any more. It uses Zap_AddLinkEntry instead of using the higher-level throwback interface; this is evil. We _really_ need a new maintainer for ZapMJE.
. (* ZapRedraw)	(james)		(gary lee)	anti-aliased fonts aren't always freed. ZapRedraw wasn't freeing the bold italic variant of its outline font in VDU mode ...
. (* ZapText)	(james)		(james)		NotifyUser appears to look strange - the Zap_ call it uses may have changed slightly.
. (* ZapUtil)	(james)		(james)		Cursors commands don't have minibuffer prompts
. (* ZapUtil)	(james)		(james)		Check HelpData (some entries seem to be missing) - fixed in v1.42
. (+ Byte)	(darren)	(james)		Cursor positioning is out by one character. Sometimes more :-(
. (+ Code)	(james)		(gary lee)	Searching never strips comments before passing the line back - should if 'Comment free' is on
. (+ Word)	(james)		(james)		Redraw bug - colon and ASCII dump are one character too far left (this is a fairly new bug?)
. (+ Throwback)	(darren)	()		Adjust on title of file removes whole throwback of that file.
. (Boxes)	(darren)	(andrew wingate)TotalSel box gets termination totally wrong, exposing original static buffer text.
. (Boxes)	(darren)	(james)		MZAPBOX - end < start causes fatal error, via out of memory - which may also be implicated
. (Boxes)	(darren)	(james)		GotoBox, ReplaceBox don't look up zap_m_hist into "History" when building their menu titles. Minibuffer also.
. (Boxes)	(james)		(james)		WC bug: run while box is still open, eg: use learned sequence. Get 'Invalid Window Handle'. I've fixed this before; I think it's the Wimp not noticing that its current menu has been deleted; possibly do that first?
. (Boxes)	(james)		(stefan bellon)	Save updates filename even if aborted (to CSD, older, etc.). s.CreateFile:save_to_file calls new_file_name; probably need an f_proposed_name used in preference to f_name until the save is completed, then copy in?
. (Commands)	(darren)	(c granville)	Disc navigation commands don't set grey
. (Commands)	(darren)	(various)	We need an ALLMODES variant which doesn't set to ib context, to replace ALLMODES(MAKEDEFAULT) with something that works
. (Commands)	(james)		(james)		FORMATTEXT stops if an unbreakable line exceeds the wrap width
. (Commands)	(james)		(james)		TOTALSEL should respect Escape, and use hourglass.
. (Commands)	(james)		(james)		WRITEFILE: writes directory into prompt, not into minibuffer
. (Commands)	(james)		(james)		Escaping from WHILE loops was causing a data abort.
. (Cursors)	(james)		(tim)		long, > width, last line, selecting by dragging a selection downwards 'off' the LHS doesn't select any of last physical line. Actually caused by y-line clipping in find_offset. Now returns EOF for clicks beyond EOF.
. (Cursors)	(james)		(tim)		long, > width, last line, selecting by dragging a selection downwards after a triple-cick, doesn't select any of the last logical line. See similar bug.
. (Cursors)	(james)		(tim)		Change cursor type doesn't update immediately
. (Fonts)	(james)		(gary lee)	Encoded fonts aren't ticked. Matching code now rewritten to cope with encodings etc. - uses Font_FindField on RO >= 300.
. (Fonts)	(james)		(james)		font loading code appears broken for substyles in v1.41
. (Keybits)	(darren)	(m somerville)	Keymap files with lines starting "& "
. (Menus)	(darren)	()		Keyboard shortcuts in menus are not always aligned correctly ...
. (Menus)	(darren)	()		ck/ shortcut reads k/
. (Menus)	(darren)	(stefan bellon)	Load menu is broken in v1.41; loading a mode from it removes most of the entries in the menu
. (Menus)	(darren)	(stefan bellon)	Undo enabled, Read only, DOS text file, Spool file no longer get ticked when enabled ... (v1.43)
. (Menus)	(darren)	(various)	Menu auto-sizing on RISC OS 3.[01] wasn't working properly.
. (Menus)	(darren)	(various)	Keyboard shortcuts aren't appearing on menus? Think this has been fixed ...
. (Modes)	(darren)	(james)		The new clone dbox lists (loaded?) clones twice as possible base modes.
. (Modes)	(darren)	(james)		Hide greys out only when the clone is selected, not when the dbox is opened. Delete is never greyed out.
. (Modes)	(james)		(darren)	Ought to check through one last time for hard-coded mode numbers in the core modes.
. (Minibuffer)	(darren)	()		Clicking in the minibuffer doesn't position the cursor
. (Minibuffer)	(james)		(james)		Minibuffer never gets its length in a window right. Actually ... new feature to force the width to that of the parent window; otherwise uses min(template width, window width).
. (Printing)	(james)		(reuben)	Quick print of lines 1-60 of a 1148 line file, but the "60" was ignored; it seemed that it was going to print the whole document.
. (Redraw)	(christian)	(justin)	A positive left window margin with a font narrower than it (or something like that) causes redraw to be blank. The new ZapRedraw (v0.40) will fix this.
. (Softwrap)	(james)		(james)		Now works on the last line in the file, even when that isn't terminated. Also uses w_cr rather than having 0xa hard-coded.
. (Softwrap)	(darren)	(ray dawson)	'->' tab display character is displayed as a space if softwrap is on
. (TMFs)	(james)		(james)		Seems to fall over sometimes, usually on multiple reads of the same variable ... this is always HelpSearchPath ... d'oh, stupid bug in ZapText's help system.
. (Wimp)	(darren)	(gary lee)	Invert the palette - LH margin isn't redrawn (RO 3.11)
. (Wimp)	(james)		(gary lee)	DataSave to Zap doesn't set up modified system properly; '*' is in window, but can close without prompt, and <insert><undo> removes '*'.
. (Wimp)	(james)		(gary lee)	DataSave sends filetype = &FFD for untyped, not -1 as it should. An extra flag to Zap_SendDataSave deals with this (done automatically if filetype not specified).
. (Wimp)	(james)		()		Datasave to Zap doesn't seem to set focus either (iff RAM xfer). It possibly shouldn't do, but since all other injects do we'll stick by it.

/  Not really bugs
/ ()		(james)		()		Disc-reading code may still have self-mod SWI?
/ ()		(james)		()		Tabs which are selected make the cursor very hard to see there (so change the cursor colours - not considered a bug)
/ ()		(james)		(james)		Flakiness between Messages and External ... wasn't a bug; I didn't understand how MakeExtern worked fully - sja
/ (+ Code)	(james)		()		In Code mode, drag a selection to full size... then toggle to max size. I can't get anything unusual to happen ...
/ (* BASIC)	(darren)	(gareth mcc)	A line containing just 'p' gets coloured as assembler directive.
/ (* ZapText)	(james)		()		FILTERSEL: EOL character not passed out in this file if selection went up to, and not beyond, EOL. Apparently this causes problems when fed back in - but it shouldn't, and I can't get it to cause problems for me.
/ (* ZapText)	(james)		(p. killworth)	SWAPCASE falls over under StrongARM. Conflict because of severely out of date version of ZapText.
/ (Boxes)	(james)		()		D-Box loses input focus when menu pressed over it when it is accessed from a menu. Really? - james
/ (Commands)	(darren)	(c granville)	Auto width not saved by MAKEDEFAULT - not true
/ (Commands)	(darren)	(tim)		F2 when no current directory inserts rubbish. Not true. However no FS can insert "#:@.".
/ (Execute)	(darren)	()		Commands which change the window with the input focus don't work well in MULTICOMMANDS. Believed to be fixed now.
/ (Keys)	(james)		()		cSPACE keymap entry is corrupted by any '&'s in the keys file *at all*. Pardon? ... we think this is an old bug that wasn't noted as fixed
/ (Printing)	(james)		()		Fancy Print - Escape - Close window - machine locks. Can't duplicate; assume it's been fixed.
/ (Search)	(james)		(reuben)	Replace (and, in fact, other dialogue-based searches) don't work forward from cursor, but from the next character. Confusing at start of the file, but there's no easy solution - and we have a "from start" option ...
/ (Search)	(james)		()		search for '"xxx'...? Pardon? Until someone explains what this means to me, it'll have to stay here ...
/ (Wimp)	(james)		(tim)		Ctrl-SELECT on window's close icon really kills...? Doesn't it?
/ (Undo)	(james)		()		UNDOing to the start of a file does not alter the "modified" file flag. Seems okay ...
/ (* LaTeX)	(christian)	(theo)		Shift-double click or iconbar drop load a &ACA wu1/tex latex file causes data abort or hang; quitting by alt+break and repeating works fine (can't reproduce - check bug report). Theo can no longer reproduce either.

\  Unfeasible suggestions
\ (* TaskW)	(james)		()		Set default e_compile/save and run etc to save then Filer_Run in a TW? This is done: e_saveandrun saves and Wimp_Task's, e_compile saves and Wimp_Task's in a TW. Filer_Run isn't appropriate in this case anyway ...
\ (+ Throwback)	(james)		()		Linenumbers above &A000000 are coloured wrong...? Seems to be a bit higher ... but anyway this is fairly irrelevant.
\ (Keys)	(darren)	()		No keys file entries for Alt-key combinations or PgUp/PgDown Major issues with keyboard handling here ...
\ (Commands)	(darren)	()		FINDFILE's tab in a TW takes account of Prefix$Dir... inserts it, but there are issues with MULTICOMMANDS if we set Prefix$Dir for Zap itself ...
\ (Search)	(james)		()		Search forwards and then click another window.  'Previous' search string is used to find next match - this has been reported as being irritating. <= abort i-search not updating stored search string. This is correct.
