Multi-Edit for Windows                                  4/23/96 11:31AM

Release Notes for Version 7.10d

TECH SUPPORT
	We are here to help you!

        FAX:            (602) 966-1654  Attention Tech Support

        CompuServe:     GO CYBERNET  (or PCVENE) Send as public
                        messages in section 11 to 71333,10.

        Internet:       email: tech@amcyber.com
			ftp:   ftp.amcyber.com
			WWW:   http://www.amcyber.com

	Free phone support is available for 90 days.  Please see the
	literature on the new Priority Support program for more
	details.

        PHONE: (602) 968-1945 7am-4pm Mountain Standard


UPDATING KEYMAPS AND CONFIG FILES
        7.10d will automatically handle updating most keymaps and
        configurations, even on the network version.

IMPORTANT NOTE:
        Borland C++ and Watcom C++ integration packages should be available on
        our CompuServe forum and our Web site by the first week of March.
        Delphi 2.0 integration is in development and should be out in April.

IMPORTANT NOTE:
        The single most common tech question we are getting is "the del key no
        longer deletes blocks!".  This is not a bug!  We have added
        configuration items in the "Customize->Block Settings" dialog to
        control whether or not the Del and BS keys delete blocks, and if they
        only effect the block when the cursor is actually inside it.

-----------------------------------------------------------------------------
RELEASE HISTORY

NEW TO 7.10d

        FILE PROMPT OPTIONS
                By popular request, we have added several configuration
                options to change the behavior of the file prompts.  These
                options can be found in User Interface Setup and are as
                follows:

                "Use mask from last file"
                        Force the file prompt to use the extension from the
                        last file loaded (via the prompt) to build the mask.
                        For example, if the file prompt was looking at "*.S",
                        but you loaded in the file "TEST.CPP", the next time
                        the prompt was braught up, it would view "*.CPP".

                "Use path from last file"
                        Force the file prompt to view the path from the last
                        file loaded (via the prompt).  For example, if the
                        file prompt was viewing "C:\WINDOWS", but you
                        loaded in "C:\TEST\WOW.TXT", then the next time the
                        prompt was braught up, it would view "C:\TEST".

                "Clear mask on startup"
                        If this option is checked, then the default file
                        prompt mask will be "*.*" each time Multi-Edit is
                        brought up, or a session is switched (used to be the
                        default).  If this option is not checked, then ME will
                        remember the last mask used.

        BLOCK OPTIONS
                In the Block Settings dialog we have added the "Tab key
                indents/undents blocks" option.  If this options is checked,
                then the tab key will indent and undent a marked block (was
                the default behavior).  If it is NOT checked, then the tab key
                inserts a tab character.


NEW TO 7.10c
        DDE SUPPORT
                We have added the capability to be a DDE client.  In order to
                this functionality you will need to include the DDEML.SH file.
                This includes all the imports etc.  The important new function
                from Multi-Edit is

                        int     GetDDEInstance ();

                This function gets the instance of Multi-Edit's DDE.  It can
                be used in all calls involving DDE functional.

        NEW MULTI-FILE SEARCH ROUTINES
                Multi-file Search now had the long awaited feature of finding
                all occurrences in the file.  It will report how many are found
                in each file and the total occurrences. So Cool!  In addition,
                it now supports Regular Expression Aliases function.
                The found list now marks occurrences that were visited.


        WORD WRAP IMPROVEMENTS
                We have fixed some problems with wordwrap related to wrapping
                to the correct position, and keeping the paragraph
                horizontally visible on the screen.  We have also added the
                following radio-button option to the Edit Settings dialog:

                Paragraphs Separated By
                        Blank Lines
                                When wrapping or reformatting, only blank
                                lines and page breaks will constitute a
                                paragraph separator.

                        Indent Level
                                When wrapping or reformatting, any change in
                                the indent level, as well as blank lines and
                                page breaks, will constitute a paragraph
                                separator.

NEW TO 7.10b

        GLOBAL EXPRESSION HIGHLIGHT
                This is a new feature that allows you to specify a search
                string or expression and see all occurrences of the found text
                highlighted in all of your files.  This is dynamic, you may
                edit the files just like normal without disturbing the
                highlighting.  Check it out!  If you do not want to go through
                the dialog, you can call the macro directly and pass
                parameters to it.  Here are the docs on the macro:

                void GlobalExpHighlight(
                        str SearchStr = Parse_Str( "/S=", MParm_str),
                        int ExpOn     = Parse_Int( "/E=", MParm_Str),
                        int CaseSen   = Parse_Int( "/C=", MParm_Str),
                        int Reset     = Parse_Int( "/R=", MParm_Str))

                /**************************************************************
                Function:   This macro creates processes the Global Expression
                        Highlight feature.

                Entry   :   If no search string is passed on the commandline,
                        and /R=1 is not passed, then a dialog is brought up.
                        If a search string is passed, then ExpOn=1 turns on
                        Unix expressions, ExpOn=2 turns on Classic
                        expressions, CaseSen=1 turns on Case Sensitivity and
                        Reset=1 causes the reset of the commandline to be
                        ignored and the highlighting to be turned off.

                Exit    :   Does not return a result.
                **************************************************************/


        AUTO-HIDING/SHOWING OF TOOLBARS
                Toolbars may now be dynamicaly shown and hiden.  For example,
                you can create a tool bar that is only displayed when you are
                editing a C file.  There is a field in the Toolbars called
                "Show on:".  This fields format is identical to the the
                "Disabled identifier" in Command Map Editing.

                This field designates a global variable or macro used to
                instruct Multi-Edit when to hide or show the toolbar.  If it
                refers to a global variable, the variable name is entered
                here.  If it refers to a macro, the macro name must be
                preceded by an equals sign (=), and the macro must be a string
                function with no parameters (C-style). The variable or macro
                must return 1 (TRUE) if the toolbar is to be hidden.  /LS=lang
                may also be used, where "lang" is the name of the language
                that the toolbar is to be SHOWN.  For example, entering
                /LS=DELPHI would tell it that the toolbar is only to be shown
                when a Delphi file is being edited.  The /LS= syntax has also
                been added to the "Disabled identifier" in Command Map
                Editing.

        CONTEXT SENSITIVE MENU ADDITIONS
                It is now possible to add items to the context menu (right
                mouse button menu) on a language sensitive basis. There is two
                ways to do this.  First, we if you simply create a menu with
                the exact name of the language being used (for example JAVA),
                then that menu will automatically be added to the context
                menu.  Also, for more complex tasks, we have added a "Menu"
                field to the language properties dialog that allows you to
                specify a macro that is to be run whenever the context menu is
                about to be popped up. Here is an example macro that modifies
                the menu:

                #include mew.sh
                #include menus.sh
                macro TestMenu
                /**************************************************************
                Function: Example of adding menu entries to the context menu by
                        using the language specific "Menu" macro.  This macro
                        assumes that you have created a menu called "TEST".

                Entry   :  /MENUHANDLE=x    The handle of the menu to pass to
                                            CreateMenuFromDBEx
                           /LANGUAGE=str    The name of the language
                Exit    : Nothing
                **************************************************************/
                {
                  int menu = parse_int("/MENUHANDLE=", mparm_str);
                  str dbname = wcmdmapname;
                  str menuname = "TEST";
                  CreateMenuFromDBEx( dbname, menuname, MENU_PopUp, menu  );
                }  //  TestMenu


        SESSION MANAGER IMPROVEMENTS
                We have made several requested enhancements to the Session
                Manager/Restore features.

                1) We have added a "Saved named sessions only" checkbox to
                the Session Manager configuration dialog.  When checked,
                sessions will only be saved if you have given then names. What
                this does is prevent Multi-Edit from creating a new session
                everytime you launch it in a new directory.

                2) It is now possible to load files from the command line and
                still restore a session.  If you use the -SR or -SN switches
                on the MEW command line, then the last session (or specified
                named session) will be restored AND any files on the
                commandline will be loaded.

                3) We have made it possible to individually protect sessions
                (make them read-only), so that once you have a session setup
                the way you like it, you can prevent it from being re-saved.
                This is done with the "protect" button in the Session Manager.

                        For example:  Create a new session called "Edit System
                        Files". Now, load WIN.INI, SYSTEM.INI, CONFIG.SYS and
                        AUTOEXEC.BAT.  Arrange the windows the way you want
                        them.  Now pop up the Session Manager, hit the Update
                        button so that the session is saved, and then hit the
                        Protect button so that the session is marked
                        read-only.

NEW TO 7.10a

       TOOLBARS AND THE SESSION MANAGER
                The "Restore toolbar positions" option in "Customize->Session
                Manager" has been removed.  It was creating too many problems
                and confusion.  Toolbar positions are saved and restored
                across all sessions.

        LONG/SHORT FILE NAMES CONFLICTS WITH SOME COMMAND-LINE COMPILERS
                By default Multi-Edit passes SHORT filenames to command-line
                compilers (because most command-line compilers are still dos
                apps).  Under the rare situation where a compiler REQUIRES the
                long version of the file name (such as Sun's Java compiler),
                we have provided two new metacommands:

                        <LFN>           Expand filenames to long names
                        <SFN>           Expand filenames to short names. Short
                                        names are the default, this
                                        metacommand is provided so that long
                                        and short names may be mixed on the
                                        command line.

                IMPORTANT:  If you pass long filenames to a compiler on the
                command line, then you will probobly need to surround the
                filename with double quotes in case the filename contains
                spaces.

                EXAMPLE:

                        javac.exe -verbose <LFN>"<FILE>.<EXT>"


NEW TO 7.10

        DIRECTORY STRUCTURE
		We have cleaned up the MEW directory dramatically.
		All of the config files (.DB, .TPT, etc) are
		initially installed into the DEFAULTS\ subdirectory
		and are copied to CONFIG\ as they are needed.
		CONFIG\ is where all of configuration changes are
		stored UNLESS a network version is installed, in
		which case MEW still uses the user id directories.
		Utility programs like DOSEXEC.EXE, OS2EXEC.EXE,
		W32EXEC.EXE, as well as the spellcheck dictionaries
		and the .LST files, have been moved to UTILS\.

	HEX EDITING
		Hex editing is in place.  It is toggled from the text
		menu.  Rubber-banding of split windows (i.e.,
		automatically resize all split windows when one is
		resized) is not in place yet.  There is an option in
		the Edit Settings dialog to "Edit binary files in hex
		mode by default".

	NEW LANGUAGES SUPPORTED
		HTML, Java, PERL and DataFlex are now supported.  The
		syntax highlighting for HTML files is especially nice.

	W32EXEC.EXE
		W32EXEC.EXE is like DOSEXEC.EXE and OS2EXEC.EXE, in
		that it is used to redirect the output of 32-bit
		compilers to a file, but works only under Win95/NT. It
		properly handles Win32 console apps as well as DOS apps
		(NT ONLY).

		You can configure MEW to use W32EXEC in the
		Memory,Program execution dialog.

        PRINTING
		You can now print using syntax highlighting,
		proportionaly spaced fonts, and line wrapping.  Hex
		printing is supported as well.

	FILEPROMPT DIALOG - OLD STYLE
	  The old-style file open/save dialog has been revamped to
	  fully support long filenames under Win95 and NT.  Also
	  added right-mouse-button menu to file list.

	LANGUAGE PROPERTIES DIALOG
	   When you edit a language type, you will see a "Set
	   Properties" button.  This button brings up a
	   language-specific dialog for setting things like indent
	   style, etc.  Right now C, CMAC, JAVA, DELPHI and PASCAL have
	   properties dialogs.

	DELPHI SUPPORT AND INTEGRATION

	   There is now pretty effective Delphi 1.0 support and IDE
	   integration available.  Delphi 2.0 is not yet supported, but
	   we are working on it. The following features are available:

	   1) Full Delphi indenting, matching, syntax higlighting and
	   a Delphi Template set.  You will need to change your
	   filename extension setups from Pascal to Delphi.

	   2) IDE integration.  What the IDE integration does is
	   allow you to switch back and forth between Multi-Edit and
	   Delphi, and have both environments reflect any editing
	   changes.  It also makes available a Delphi menu in
	   Multi-Edit, which allows you to launch Delphi IDE commands
	   (like Compile) directly from Multi-Edit.

	   A special DLL is installed in the Delphi IDE witch causes
	   Delphi to save files when task switching, and to check for
	   files that need to be refreshed upon switching back.  The
	   DLL also lets you set a hotkey to switch quickly back and
	   forth.  If you use the hotkey, or the Tools->Multi-Edit menu
	   entry (in the Delphi IDE) to switch from Delphi to
	   Multi-Edit, then Multi-Edit will automatically go to the
	   correct file and cursor position.  This synchronization
	   process allows full compatibility with the Delphi "two-way
	   tool" concept.

	   The install process will modify the DELPHI.INI file to load
	   MEWEXP.DLL (the integration DLL) and create the Multi-Edit
	   menu entry in the Delphi Tools menu.

	   You can configure the Delphi autosave as follows:

		Off -	No autosaving when switching tasks.  This
			means that you will have to MANUALLY save and
			reload your files.

		Whole Project - Every file that has been changed will
			be saved when switching out of the Delphi
			IDE.  This includes and units, forms, and
			other non-unit files.

		Current file only - Only the currently active unit
			will be saved.  The exception to this is if
			the currently active unit is the project
			file, in which case the ENTIRE project will
			be saved.

		NOTE:  No auto-saving will occur on a new file, i.e.
		a file that has never been saved to disk.

	   There are a few limitations with the support, and they are
	   important:

		1) Multi-Edit can synch it's cursor position to Delphi's, but
		Delphi cannot not synch it's cursor to Multi-Edit.  This is a
		limitation of the Delphi IDE interface, and we hope that
		Borland will resolve this in a future release.

		2) Under Windows NT, if either Multi-Edit or Delphi is
		configured to run in "seperate address space", then you MUST
		start Multi-Edit from within Delphi (via the tools menu), or
		start Delphi from within Multi-Edit.  If you start them both
		from the program manager, then the integration will not work,
		as neither program will be able to see the existance of the
		other.

	!!!! IMPORTANT !!!!

		In order for the Delphi Integration to work, the following
		rules must be followed:

		You MUST have "Save files when switching tasks" and "Reload
		when switching back" ON in Multi-Edit.  This is done from the
		"Backups/Temp files/Autosave" dialog.  You must also at least
		have "Determine changed file by" set to "Date/Time".

		You MUST have "Network file locking" OFF!!!  This is because
		both Multi-Edit and Delphi must have full read/write access to
		the source files.

		If you are running under Windows NT, and you have either
		Multi-Edit or Delphi configured to "Run in seperate memory
		space", then you MUST start Multi-Edit from within Delphi, or
		start Delphi from within Multi-Edit.  If you do not do this,
		than Multi-Edit and Delphi will not be able to communicate.

	DDE SUPPORT
		See online help

	NEW BRIEF SUPPORT
		We have completely re-worked the Brief support.

	EXECUTING MENU ITEMS IN OTHER PROGRAMS
	    Related to the Delphi integration above, Multi-Edit now
	    has the ability to execute any menu item in any other
	    running app.  This is done with the new AppMenu macro.

	    AppMenu /Aappname /Cwindowclass /Mmenustring

		appname - The application name, without an extension.
		For example: "DELPHI"

		windowclass - The windowclass to be located.  For
		example "TAppBuilder"

		menustring - The menu to be executed, for example:
		"Compile|Build all".  The "|" is used to seperate
		the parent from the child menu.

	    See the Delphi interface for examples.

	BUG REPORT FORM
	    Under the Help menu you will find "Create Bug Report" to
	    aid in reporting problems.

        RULER 
            Turn it on and off from the Text menu, or the MDI menu. 
 
        OPEN FILE UNDER CURSOR 
            Grabs the filename under the editing cursor and tries 
	    to open it in a new window/buffer.  This one is in the
	    File menu and the Context menu.  

	COLLAPSABLE EDITING
	    Access from the Text menu.  Collapse by column or search
	    string.  It's cool!

	EDITABLE TEMPLATES
		The new editable template system allows on-the-fly
		editing of code templates.  No more macro coding!
		Also supports global templates that work in all
		editing windows!  This is a very powerfull new
		feature.

	LONG FILENAME SUPPORT (Win95/NT)
		Long filenames are supported through most of MEW.

		Windows 95 users check out the "Explorer style
		file prompt" option (in user interface setup).   When
		checked, this will cause the new "Explorer" style
		file open/save dialog to be used. IMPORTANT:  The
		Explorer dialog is MUCH slower than the older style
		dialog.  This is Windows 95, not Multi-Edit! Any app
		which uses this new dialog has this problem, that's
		why we've made it an OPTION.

		IMPORTANT!  Under Windows NT using NTFS:  If you wannt
		Multi-Edit to be able to access long-filenames on an
		NTFS partition, then Multi-Edit itself must be
		installed on an NTFS partition.

	BOOKMARK ENHANCEMENTS
		We've added a new "Bookmarks" command that brings up
		a bookmark manager, that includes the ability to have
		global bookmarks across windows.

	BACKGROUND COMPILES
		Background compiles/program execution is now fully
		supported.  In your compile/program setup, simply
		turn on "background execution".

	NEW COMPILER ERROR SETUP
		The compiler error tracking has been completely
		re-written.  Each compiler type may now be configured
		with regular expressions to locate the errors.  This
		is a very powerfull, but complex new feature.  The
		text file COMPILE.TXT documents it.

	OEM/ANSI CONVERSION
		You can now switch between OEM and ANSI fonts.  See
		online help for complete info

	REGULAR EXPRESSION ALIASES
		You may now assign search expressions to aliases
		(shortcuts).

	MODELESS SEARCH AND REPLACE DIALOGS
		The search and replace dialogs may now be left up
		while editing (by checking "Prompted search").  Also,
		check out the little expand/contract button in the
		upper left.

	SYNTAX HIGHLIGHTING
		The max number of characters for the keywords has
		been increased from 1k to 6k!  More syntax
		highlighting enhancements are on the way.

	VERSIONS SUPPORT
		"Versions" VCS support is built in.

	COLOR SETUP
		The color setup dialog has been revamped and
		enhanced.

	NEW USER INTERFACE OPTIONS
		"Place buttons on right"
			Moves dialog buttons that are by default on
			the left, over to the right side of the
			dialog, thus conforming with "standards".

		"Place message line on left"
			Moves the message section of the status line
			to the lefthand side.

		"UNIX style regular expressions"
			Has been moved to "Search defaults"


       MACRO AND GLOBAL NAME LENGTHS
		Both have been increased to 32 characters.  All of your
		macros must be re-compiled, as the increase in the name
		length changed the format of the macro files.

       QUICK ACCESS TO SETUP DIALOGS
		From the MDI menu or the Context menu (right mouse
		button), you can bring up Filename Extension setup,
		Language Setup or Template Editing for the current
		file.

----------------------------------------------------------------------------
CORRECTIONS TO THE CMACWIN MANUAL



int Line_Stat;          // Integer variable
        // Used to get and set various status bits for the current line.
        // The following bit settings apply:

  #define _Line_Changed        0x0001 // Line is modified
  #define _Line_Use_Atr        0x0002 // Use line_attr to display color
  #define _Line_Hidden         0x0004 // Line is hidden if collapse mode is on
  #define _Line_Collapse_Plus  0x0100 // Collapse mode: show + symbol on line
  #define _Line_Collapse_Minus 0x0200 // Collapse mode: show - symbol on line
  #define _Line_Collapse_Res   0x0400 // Collapse mode: reserved



int Line_Attr;          // Integer variable
        // Used to get and set the color atributes of the
        // current line.  Will only be used if bit 0x0002 of
        // Line_Stat is set.
        // The following index values may be used (they are indexes into
        // the color table as defined by the user):

  #define    _Text_Attr          0    // Normal text
  #define    _Highlight_Attr     1    // Highlightted (selected) text
  #define    _Search_Attr        2    // Found (by search) text
  #define    _Page_Attr          3    // Page break
  #define    _Changed_Attr       4    // Changed lines
  #define    _EOF_Attr           5    // End of file marker
  #define    _Line_Attr          6    // Current line color
  #define    _LineBlock_Attr     7    // Current line in a block

        // These are syntax highlighting colors
  #define    _Reserved_Attr      8
  #define    _Symbol_Attr        9
  #define    _EolComment1_Attr   10
  #define    _EolComment2_Attr   11
  #define    _OpComment1_Attr    12
  #define    _OpComment2_Attr    13
  #define    _Numeric_Attr       14
  #define    _String_Attr        15

        // File Compare colors
  #define    _FC_Different_Attr  16
  #define    _FC_Inserted_Attr   17


// Example code:

  // Change color of current line
  Line_Stat &= _Line_Use_Attr;
  Line_Attr = _FC_Inserted_Attr;



int Line_Stat;          // Integer variable
        // Used to get and set various status bits for the current line.
        // The following bit settings apply:

  #define _Line_Changed        0x0001 // Line is modified
  #define _Line_Use_Atr        0x0002 // Use line_attr to display color
  #define _Line_Hidden         0x0004 // Line is hidden if collapse mode is on
  #define _Line_Collapse_Plus  0x0100 // Collapse mode: show + symbol on line
  #define _Line_Collapse_Minus 0x0200 // Collapse mode: show - symbol on line
  #define _Line_Collapse_Res   0x0400 // Collapse mode: reserved



int Line_Attr;          // Integer variable
        // Used to get and set the color atributes of the
        // current line.  Will only be used if bit 0x0002 of
        // Line_Stat is set.
        // The following index values may be used (they are indexes into
        // the color table as defined by the user):

  #define    _Text_Attr          0    // Normal text
  #define    _Highlight_Attr     1    // Highlightted (selected) text
  #define    _Search_Attr        2    // Found (by search) text
  #define    _Page_Attr          3    // Page break
  #define    _Changed_Attr       4    // Changed lines
  #define    _EOF_Attr           5    // End of file marker
  #define    _Line_Attr          6    // Current line color
  #define    _LineBlock_Attr     7    // Current line in a block

        // These are syntax highlighting colors
  #define    _Reserved_Attr      8
  #define    _Symbol_Attr        9
  #define    _EolComment1_Attr   10
  #define    _EolComment2_Attr   11
  #define    _OpComment1_Attr    12
  #define    _OpComment2_Attr    13
  #define    _Numeric_Attr       14
  #define    _String_Attr        15

        // File Compare colors
  #define    _FC_Different_Attr  16
  #define    _FC_Inserted_Attr   17


// Example code:

  // Change color of current line
  Line_Stat &= _Line_Use_Attr;
  Line_Attr = _FC_Inserted_Attr;