ZapMJE changes
 Martin Ebourne, 1997 - 1999
 Zap developers, 2000 - 2005

Changes 0.80 to 0.85	<christian@zap.tartarus.org>

  * Added support for variable-width tab stops.
  * FINDFUNCTION support (ck. in the default key map) jumps to the definition
    of the function named under the cursor.
  * Fixed some redraw bugs where inserting characters didn't refresh the
    screen properly (specifically open comment sequences).
  * Improved MJE_GENERATEHEADER so it no longer exports static functions, and
    leaves text after the automatically generated part intact. This makes it
    actually useful.
  * Added MJE_CREATEHEADER which creates a header file bracketed with 
    preprocessor guards.
  * Pascal mode colouring courtesy of Justin Fletcher.
  * Option to indent case statements beyond their parent switch.

Changes 0.79 to 0.80	<christian@zap.tartarus.org>

  * Assembler mode will cope with C-style escapes in string constants, if
    enabled. This means "Strings with \"Quotes\"" will be coloured correctly.

Changes 0.77 to 0.79	<ds@zap.tartarus.org>
			<dj@zap.tartarus.org>

  * LISTFNS code for C, C++, Java modes fixed.
  * Internationalisation mostly done.
  * Indentation improved; optionally reindents comments, ignores preprocessor
    lines, and various other corrections.
  * Since smart indenting is still flaky, this is now optional. Currently the
    alternative is a /very/ old indenting system, entirely in assembler (ie:
    pre-0.72). This can't cope with tabs in the indenting, so don't try it.
    This will, in theory, be a temporary solution until Zap post-v1.45 when
    we will try to do indenting properly.
  * Preprocessor colouring now an option in Java mode.
  * Missing HelpData entries fixed up, documentation updated etc.
  * Version number bumped twice since we had millions of copies with the same
    version and were getting confused.
  * Killed the ZapMJE module help text which contravened the style guide.
  * Licensed under GPL.
  * MJE_IF and similar commands work (again?) in C++, Pascal modes.

Changes 0.76 to 0.77	<dj@zap.tartarus.org>

Maintenance of the module is now floating. Various people may take control
of it for short periods until a new maintainer is found.

  * Build system radically altered to work more like the system we're
    using for Zap, ZapRedraw, etc.. Still won't build with AS, because
    Martin used various obscure features of objasm. Still requires Norcroft
    compiler for PIC stuff.
  * Minor bug fixes. This version is actually based on a copy of the code
    older than that used for 0.76, since this appears much more stable.
  * Help code and other commands removed that have been replaced by others
    elsewhere.

Changes 0.70 to 0.76	<tim@zap.tartarus.org>

Maintenance of the module transferred to Tim Tyler:

   This is for an indefinite period, starting November 1997.  Queries,
    bug reports, wishlists, etc concerning ZapMJE should currently be
    addressed to him at tim@zap.tartarus.org.

Miscellaneous improvements:

   Rearranged and partially re-wrote the mode independent parts for maximal
    code sharing. This also means that new modes which take advantage of
    compilation, commenting, etc., can be added almost without writing any
    code.

   Updated the default colours to be 24 bit. This means that the default C
    colours are sensible at last, although naturally you need a 256+ colour
    mode for that to be the case.

   Added MJE_COMMENT

C improvements:

   Recoded the reserved word detection in the syntax colouring. Reserved
    words (especially long ones) can now be added much more easily and it
    will also allow easier splitting of the single C/C++ mode into separate
    C and C++ modes. Even better, a speedup of typically 30% on the overall
    scanning time was obtained. (Yes I know I shouldn't have used a linear
    search in the first place but it was a rush to get the syntax colouring
    ready back then.)

   Split the C/C++ mode into separate C and C++ modes. Syntax colouring is
    now appropriate for the mode in use.

Changes since 0.71 (Floating around generally)

   Changed two bits of code to make the C syntax colouring StrongARM
    compatible, since DEC altered the behaviour slightly.

   Added colouring of 0x123 in assembler mode.

   Added 'explicit' C++ reserved word, which has recently been added to the
    draft standard.

Changes since 0.72 (Here and there)

   Got internal C code support working.

   Re-wrote MJE_IFMODE in C to work with, and only with, mode names.

   Re-wrote bracket matching in C. Now works on all modes, doesn't miss
    characters when using the copy key and copes with brackets in quotes.

   Wrote bracket highlighting (as in paren mode for Emacs).

   Wrote Java mode

   Indenting re-written in C.  It uses the existing braket matching code
    to some extent, when finding the indentation of the matching brace.

   Indentation now supports indentation with tabs: these are used if
    the specified indentation is given as a negative value.  Mixed tab-
    and-space indentation styles are (mostly) allowed as well.


TODO:

Upgrade C redraw to do syntax parsing
Re-write compilation
Re-write swap-to-header
Re-write config
Add auto-setting of indentation flag (which also test to see if tabs are
  being used or not)

Write exception handling for C
Finish Zap C veneers and add any new stuff
Sort out C veneers for proper calling of base mode entry points
Bracket highlighting: pascal redraw & assembler eol

Buy a strongarm


INDENTING:

block-open        +0      - line starting with {
block-intro       +2      - line after {
block-close       +0      - line starting with }

arglist-intro     +2      - line starting with (
arglist-cont      +2      - line after (
arglist-close     +0      - line starting with )

case-label        +0      - line starting with case ???:
case-intro        +2      - line after line starting with case ???:

access-label      -1      - line starting with private: or public:
label             -1      - line starting with label:

comment-open      +0      - line starting with /* or //
preprocessor-open 0       - line starting with #
