////////////////////////////////////////////////////////////////////////

1.15 point release --- (see m.tut)

Added name completion in prompt dialogs...  For example, suppose you are
going to do a global Search for the word aardvark.  You type [Alt ^S] and
in the search buffer you type [a a Alt /] and get name completion.  Name
completion works just like in a normal window except that instead of
searching for words that begin  with the search string in the current file,
the search begins in the file of the window you began the prompt from.

Added an M variable option -sXX where you can set the percent of the window
to begin scrolling...  


Added a goToColumn() bind function... it is unbound.

Added mouse support for moving the cursor and marking a block.

Fixed Cmode indenting for something like ajfdsj(
    ksdajfla,     ( ksdajfla,     ksdajfla, ( ksdajfla,     ksdajfla,
					      ksdajfla, )
		    ksdajfla, )
    ksdajfla )

added unbound topCursorLine()... moves the current cursline to the top of
the window

Made the search and replace ! store the number of the replacements in
the [Alt I] counter.

Made a Force=^F option in the diffDir [^X D] dialog... forces M to find a
real difference in files even where the file sizes are different...  If
there is only a white space difference and eXact searching is not on, it
will ignore that difference.


Respects NumLock.

Made the mspawn.exe program work correctly under strange text videomodes.
Made the mspawn.exe program smaller.

remove M environ var -v option 	-v  attempt checkout of read only files
now it always does this.

remove M environ var -P poll srcfiles (always on for drives c and d)

add M environ var -sXX scroll screen fraction


Fixed assorted small bugs.


Made M better behaved with long C comments.  (still not perfect but closer)

Added pipes to the compile command.


////////////////////////////////////////////////////////////////////////

1.17 point release --- (see m.tut)

-k option on commandLine

fillCustomCompileBuf()

^Open in search/replace

M= -m dos version of mouse support is set on in M environment variable

serious Bug fixes...  Fixed some killer crashing Bugs.

////////////////////////////////////////////////////////////////////////
blockCommands at shift ^space: tab, shiftTab, and ^tab

work is going on in the ^Z shell


////////////////////////////////////////////////////////////////////////
1.19 point release

-s option on commandLine

copyLine

Fixed a crashing Bug

mapScanCode

Winm.exe has a command shell...  (1st version) many features... see m.tut

(m.exe is 16-dos, m32.exe is 32-consoleApp, winm.exe is 32-NativeNt/95)

I have a Windows NT Dec Alpha version for anyone interested.

////////////////////////////////////////////////////////////////////////
1.20 point release

Alt ^V and Alt ^C  -- Connects to the clipboard -- 
Alt ^C copies from the point to the mark to the clipboard.
Alt ^V yanks the clipboard to the point.

fixed tag error: typedef struct _myType { int i; } MyType, *PMyType;

fixed broken piping in Alt ^N

fixed bug so that clicking with mouse on an M window that is in the 
background only brings M to the foreground (doesnot move the cursor...)

more shell features.

[Alt X chooseFont] can now change the font
////////////////////////////////////////////////////////////////////////
1.21 release

saved font selection for next startup.

fixed [Alt space] so that it gets the system window

Made first mouse down when Winm doesn't have the focus just change 
the focus (dosen't move cursor) (except on the title bar)

////////////////////////////////////////////////////////////////////////
1.22

Made column marking work with clipboard copies.
fixed mouse bug when setting mark past the end of line.

Added tagUpdate()

added Mouse support to resize internal windows.

added -k0 -k1 command line options

roll shell history Alt UPARROW and Alt DOWNARROW

There is a bug in windows and winm.exe that I don't know how to fix.
Ocasionally it seems like the shell window is hung...  It really isn't.
I am polling on a pipe for the results of a command and somewhere in 
windows the pipe is being buffered and the buffer is not being flushed.
If you do a ^X N and type dir <enter> windows flushes the pipes and your
shell window output comes out and your alive again.  Windows just needed
a swift kick in the pants...  In windows nt4.0 the problem happens much
less often.

Made copying to the clipboard respect column marking.

Made the shell work right from subdirectories with funny characters
in the directory name (funny chars like &$-+ etc.)

added blockcommands [shift ^space] AltU AltL AltC ^C

fixed small bugs in tagging

quit using an input pipe on the shell, instead post WM_KEYDOWN directly 
to the console... now when dos apps are waiting for input, they get it.

////////////////////////////////////////////////////////////////
1.23

more shell fixes, better pipes

<tab> filename completion in shell
Shift <tab> directoryname completion in shell

errorTemplate in m.cfg


////////////////////////////////////////////////////////////////
1.27

M = -2 option -- if opening only two files, split the screen

New commandLine option -g 
-gXXXX <filename>  -- XXXX is a decimal number, goto line XXXX
in file <filename> for example: m -g123 foo.c  -- opens foo.c to
line 123.

M = -.[c[=[?]]wobt] option -- set default extension mode behavior

Launch in the ^X^F dialog

bugFix -- revertSalvageEtc during globalSearch stuff.

colorize preprocessor commands

support old c-style function declaration tagging

#if #else #endif matching on Alt-UPARROW

"cd -"  shell command cd's to where you last came from.

fix %p and %k pipes in [^X N]
fix regular pipes in the shell under NT

Cmode -- ignores ({[]}) in double quotes

Added calculator functions to [Alt I]

adding Searching for: in global search stuff

changed M= -m  use a mouse! (Dos only) (must have mouse.com already loaded)

changed the feature set and the option variables for the M environment
variable... unified the M options with the extension options.  A general
change was that all the options available in the [^X M ?] dialog became
options -m?  In detail the changes are:

-th hard tabs --> -ma
-s scroll mode --> -ms
-i cIndent Mode --> -mi
-x regular eXpression mode --> -mp
-l load file lines as text always... --> -mb0

-m use mouse in Dos --> -M

-j changed to default to on

changed the -t2 4 6 option so that you must quote the tab string
(if there is more than one number following the -t)
-t2 4 6  --> -t"2 4 6" 


added:
-mc[=?]
-mw wrapping is on (if cmode is set first wrapping is comment wrapping)
		   (else it is text wrapping)
-mt token searching
-fX where X=0,1,2,3 flags for verbose and falling out
-d diffs are whitespace sensitive
-: don't one space indent colon c key words (example case 1:, public: etc.)


extension command now takes a much richer file pattern instead of just .ext
it can be filePatterns like: 
/makefile 
/work/**/*.cpp

and the options available are the same and use the same syntax as M
environment variable.

There is one very confusing issue with the new more powerful extension
command...  Extension options are not deltas to the M environment
variable.  If a file fits an extension filePattern, the M environment
variable is ignored and the only options used are those set in the
extension command.  Everything you want set including options you have
"already" set as M environment options must be explicitly set in each
extension command.  The confusing issue is that there are  some default
extension commands.  I use this same mechanism to set a "good" default
behavior for .asm .cpp .c .h .pl .tex .txt .doc files.  Effectively there
are preloaded these extension commands.

extension	.asm	-mc=;w
extension	.cpp	-mcw
extension	.c	-mcw
extension	.h	-mcw
extension	.pl	-mc=#w
extension	.tex	-mwc
extension	.txt	-mw
extension	.doc	-mw

Changes in your M environment variable will not affect how M loads these
types of files.  You must explicitly override my extension commands with
your own to affect these extensions.


changed how the readOnly checkout dialog works... made name completion work
with the "attrib -r" command and the M_CHECKOUT environment variable
setting

Macros can call macros and return, up to 8 deep.

made winm use mstart.cfg
console versions use mstartup.cfg

////////////////////////////////////////////////////////////////////////
// 1.30 release

compile windows scroll correctly

fixed small bug in ^X^F dialog with hidden subdirectories

added q option in [Alt I] calculator -- quoted insert of the low
byte of the calculator entry. 
added ^H option in [Alt I] calculator pusH ascii

Added print function at [^X P]

Fixed a bug that I introduced two versions ago...

made versionControl/attrib checkout remembers the window configuration

mapScanCode scanCode naked shifted controled controlShifted altGr
// added the altGr scancode decoding in mapScanCode

-CX caretHeightFraction 

added a quotedDecimalInsert (unbound)

fixed bug in -a1HighBitChar

changed  to >  ( doesn't appear in all fonts correctly...)

made numlock work right

made the timeStamp on the statusLine cling right

added accent functions (unbound) to get at foriegn chars easily
If you declared standard accented chars (Windows char set) in your
alphabet (i.e. -a1SOME_ACCENTED_CHARS in your m.cfg)
Now toUpper and toLower will work for those selected accented characters.
The affected ranges for toUpper and toLower are:

normal range:
uppercase A-Z (0x41 - 0x5a)
lowercase a-z (0x61 - 0x7a)

accented range:
accented char uppercase  (0xc0 - 0xde)
accented char lowercase  (0xe0 - 0xfe)
with the exceptions [0xd7] and [0xf7] are excluded.



////////////////////////////////////////////////////////////////
// 1.31

added *messages* buffer
fixed M env 0/1 error ( ex. M= -a0 )
fixed global search error when filename has a space in it...
fixed tagging bug when using a @src.lst file > 64K long
fixed bug tagging a file that ends in a \


////////////////////////////////////////////////////////////////
// 1.32

fixed one last bug M env 0/1 error, (using -mb0 in an extension cmd).

find m.tut like m.hlp (added ^H T option)

fixed bug finding m.hlp when m is started from a console...
At startup, I now correctly detect the executable directory path.
(m.hlp and m.tut should live in the same directory as the executable)

added lB.X option for M env var to set landscape/portrait and number of
columns printing defaults; B is a boolean 1 or 0 corresponding to 
landscape vs portrait, X corresponds to number of columns with 1,2,3,4 
the only legal values.  (global; default l1.2 (landscape, 2 columns) )

turned off $(envVar) expansion in pathnames

////////////////////////////////////////////////////////////////
// 1.33

if during a search and replace you hit a readOnlyFile and version control
or attrib happens, the replace continues after successful checkOut...

added setToAppendKill() (bound to [Alt-a], first you kill one region, then
move to another region, [Alt-a] then next kill appends

added env variable M_SEARCHFILESPEC, lets you set the default search string

made Pipe events flow through transparently... (makes the shell and 
compiling more robust)

fixed a little bug in the spaces->tabs and tabs->spaces conversions...

made searches check for abort much more often 
(need to make building the search file list abort...)

combined the two quoted inserts so that heX toggles decimal/hex

fixed a crashing bug introduced when making systemEvents flow through
transparently...

Added the FileSpec: data to the search buffer

m.cfg option -n1 : 
	staticName ... Some apps try to track the open
windows and they get confused when the name in the title bar changes...
-n option freezes the title bar name to "M.exe"

////////////////////////////////////////////////////////////////
// 1.34

I broke the diffDirectories command...  this is just a small bugFix
release...  sorry ---



// ToDo: make the matchTemplate function not do any work...
// ToDo: make bindKey optionally take hex input (ie. 0xHH instead of only ^A)
// ToDo: make ^G kill a shell process...
// ToDo: surface bindTables
// ToDo: Block search/replace
// ToDo: add source polling setDrives to poll
// ToDo: fix cursor height
// ToDo: starting M, option to pull up an existing M...
// ToDo: need to make building the search file list abort...
// ToDo:

