Contents of the README file

Copy the files from the executable distribution package (MEW11.ZIP forWindows 3.1 or/and MEWN11.ZIP for Windows NT on i386) into thedirectory where you want the program to reside. If you want to use theMicroEMACS help file, copy it (MEWIN.HLP, from MEWH11.ZIP) in that samedirectory.

Unlike previous version of MicroEMACS for Windows, update 1.1 canoperate entirely without any specific profile entry in the WIN.INI file.On the other hand, if you want to deviate from the installationrecommended above, you may have to edit the WIN.INI file. For moreinformation on this, consult the "Profiles" topic (within the "Start-up"chapter) in the MEWIN.HLP help file and copy/paste the relevant partsfrom the EMACS.INI file.

After installation is complete, the EMACS.INI, PACKAGES.LST and READMEfiles are no longer needed and can be deleted.

If you install both the Windows 3.x and Windows NT packages in the samedirectory, note that the files that bear the same name in both packagesare exact duplicates.

Special Cases-------------

This program can run under Windows 3.0 (retail version), 3.1 (retail ordebugging versions) or Windows NT. Because it contains references tosystem DLL entries that are not present under Windows 3.0, it cannot rununder the debugging version of Windows 3.0. Further more, under Windows3.0, there needs to be a Dynamic Link Library named SHELL.DLL lyingaround for the loading of the program to complete.

The macro files EMACS.RC and MDI.CMD are setup for Super VGA displaysthat can accomodate a text width of at least 100 character. If yourdisplay is VGA-size (or a laptop screen), you can replace 80 by 75 inthe line (in MDI.CMD): set %scrwidth 80Also, delete or comment-out the line (in EMACS.RC): 100 change-screen-widthand add the lines: [MicroEMACS] InitialSize=optimizedin your WIN.INI file.

The EMACS.RC, CUA.CMD, MDI.CMD and DEV.CMD macro files are made a partof this package as example of how macros can be used to customizeMicroEMACS. A simple way to add your own macros is to put them in a filecalled CUSTOM.CMD (this file, if it exists, is invoked by EMACS.RC).

OTHER FILES:-----------

As mentionned above, a help file (packaged in MEWH11.ZIP) is availablefor this version of MicroEMACS for Windows.

The sources for this port are publicly available. They are packaged in afile named MEWS11.ZIP. Also available but possibly less widelydistributed are the help file's RTF-format sources (in MEWR11.ZIP).

Other (non MS-Windows) versions of MicroEMACS normally comes withdocumentation and a bunch of scripts (aka macros or "command files").They are not supplied in this distribution package, but are availableseparately. The files for release 3.11 are the ones you may want andthey are available from a number of sources, including:

This program was originally born as a port of MicroEMACS to Windows 3.0which was released as MEWIN 1.0 in April 1992, also with the full Csource, but without a help file.

Since then, a few intermediate updates (mainly 1.0b and 1.0e) havebeen made public (without sources).

HOW TO REPORT PROBLEMS OR SUBMIT SUGGESTIONS--------------------------------------------

The prefered way to reach me to discuss about this program is throughCompuServe, in the WINADV forum or on BIX in the editors conference, inthe emacs topic. My CompuServe ID is 73757,2337 and my BIX Id ispierre_perret. You can also send Email directly to those accounts, butforum/conference transactions have the advantage of being viewable byothers.

If you do not use CompuServe or BIX, but have Internet access, you canexchange Internet mail with me by sending it to [email protected]

- The Programmer's Room BBS at (317) 742-5533 (300/1200/2400 and 9600 [Hayes V series only], no parity, 8 databits, no stop bits). However, since this is a long distance call for me, I do not check-in very often. I am registered under my real name (Pierre Perret).

Please note that I am the author of this Windows port, not the author ofMicroEMACS itself. Problems that also occur with the standard 3.11ceditor should be reported to Dan Lawrence on the Programmer's Room BBS.

USAGE NOTES-----------

In doing this port, I have tried to preserve as much as possible theMicroEMACS way of doing things, for the sake of minimizing changes inthe editor core...

VOCABULARY:

MicroEMACS calls "screens" what really should be called "MDI windows"and calls "windows" what should be called "panes". Changing thosedefinitions in the Windows implementation would impact all the commandsthat deal with "screens" and "windows" and would therefore break mostmacros.

INPUT TO THE MESSAGE LINE:

Depending on the particular command that requested such input,MicroEMACS implements varying character handling methods that aredefinitely not CUA-compliant.

TEXT SELECTION:

Contrary to CUA standards, selections are not highlited (this willbe implemented in a future version of the base MicroEMACS editor).

MOUSE HANDLING:

Due to its mainframe heritage, and also it's capability to redefinemouse behavior by macros, Emacs' mouse handling differs significantlyfrom that of other Windows applications (called CUA-compliant).

The CUA.CMD file included with this package, loaded by the includedEMACS.RC, contains macros that modify the standard MicroEMACS mousebindings to provide a CUA-like interface.

CURRENT WORKING DIRECTORY:

The current working directory and selected drive is always set to thefile path associated with the current "window". If that path is not anabsolute one, it is dependant upon the previously visited directorypaths (including the directory field that appeared in a file dialog box,even if the operation was cancelled).

FEATURES OF THIS WINDOWS PORT (over what is standard in MicroEMACS 3.11c)-----------------------------

MENUS:

I have put most of the functions available in MicroEMACS into a set ofmenus (some with nested popups). There are a few MicroEMACS functionsthat would not make much sense in a menu and have therefore beenexcluded. A few menu items have no equivalent function in the MicroEMACSmacro language.In addition to the standard Windows convention of appending an ellipsisto menus items that beget a dialog box, I have used the following: acolon is appended to menus items that require a user response on themessage line and an equal sign is inserted in front of items thatrequire an argument to have been entered (by META + digits).

Key bindings are displayed in the menus, using the Windows format forkey descriptions instead of the MicroEMACS format (which, for somefunction keys, can be quite cryptic).

Some menu items may appear grayed if the context is such that they areunuseable.

ALT KEY HANDLING:

In Windows applications, the Alt key can be used in combination with aletter or digit to pull down a menu from the menu bar. In MicroEMACS,bindings have the priority over those menu bar accelerators. Thus, ifthere is a conflict between a menu-bar accelerator and an emacs binding,the accelerator looses. On the other hand, trying to create a newbinding interactively by simply invoking bind-to-key or macro-to-keywill not be possible if the desired binding matches a menu-baraccelerator.Note that a menu can still be invoked from the keyboard, even when theaccelerator conflict with a binding, by pressing AND releasing the Altkey and THEN hitting the accelerator character.

"NOT QUIESCENT" STATE:

If a macro is executing, most menu selections cannot be processed (theeditor is said to be in the "not quiescent" state) because a lot ofMicroEMACS functions are not quite reentrant. This is reflected by achange of the mouse cursor from a pointing finger to a color-invertingarrow.

$SRES VARIABLE:

To allow Windows-aware macros, the $sres is set to "MSWIN" and cannotbe modified (trying to set it has no effect, but it returns no error).

NEW MICROEMACS VARIABLES:

$hscrlbar$vscrlbar

These two boolean variables control the presence of scrollbars (horizontal and vertical)

This one allows you to change the name of the current screen (that type of command is not of much use under the other versions of EMACS since screen names are rarely displayed).

clip-regioncut-regioninsert-clip

These supplement copy-region, kill-region and yank, but instead of addressing the kill buffer, they address the Windows clipboard.

bind-to-menumacro-to-menuunbind-menu

These functions allow dynamic modification of the menus. An example of their use appears in the EMACS.RC sample start-up file.

help-engine

This allows a macro to invoke the Windows Help engine. Look for an example in the supplied EMACS.RC.

DRAG AND DROP SUPPORT:

The key sequence MS! is produced when files are dragged and dropped ontoMicroEMACS. It initially not associated to any command and should bebound to a macro that handles the drag and drop action. In order for themacro to acquire the files that were dropped, an invisible buffer named"Dropped files" is filled with the following data: first line: name of the screen on which the drop occured (or empty line if the drop was not done on any screen) other lines: pathnames, one per line, of the dropped files

In addition, the $xpos and $ypos variables are set to the coordinateswhere the drop occured (or 255 if the drop was not done on any screen).

The MDI.CMD file contains a macro that handles file dropping.

LONG OPERATIONS:

When performing long operations (macros with loops, searches, fileIOs...), MicroEMACS checks for user input regularly (see the TimeSliceprofile value in EMACS.INI): during these periods, a few menu optionsare still available, among which quitting (Exit in File menu or Close insystem menu). Note that if the user attempts to quit while a file isbeing written out, a confirmation is required (the same happens if thereare changed buffers).

MicroEMACS cannot ignore typeahead while a lengthy operation is inprocess. One particular side effect of this is that if you do a ^X^F(find-file) followed by while a lengthy operation isgoing on, MicroEMACS absorbs those keystrokes and has to refeed theminto the "Find file" dialog box when it eventually pops up. I haveimplemented a mechanism for dealing with this, but it handles onlysimple ASCII characters and just throws away any other keystroke (forinstance, arrow keys are not forwarded to the dialog box).

FONTS:

The Font item in the Screen menu brings up a dialog box that allows theuser to select a fixed font to be used. This font description can besaved in WIN.INI so that subsequent invokations of MicroEMACS use it atstartup.

LOCAL AND GLOBAL MODES:

The Mode and Global mode items of the File menu bring up dialog boxesthat offer a user-friendly way of setting the CMODE, VIEW, EXACT, MAGIC,etc... modes.

FILE DIALOG BOX:

Instead of using a message line interface with attempted completion offile names, this program pops up a dialog box whenever a filename has tobe supplied by the user. This is an attempt at CUA compliance. It alsohas the side effect of supplying the editor with fully qualifiedpathnames. A handy filename completion feature has been implemented aswell, with the addition of auto-scrolling of the filename list: if youtype only the beginning of a file name, up to a point were there is noambiguity, hitting the spacebar orders MicroEMACS to complete thefilename for you and OK the dialog.

HELP SYSTEM:

The first four items in the Help menu load the MEWIN.HLP help file intothe Windows help engine. The information in that help file is fairlyexhaustive and, in particular, covers the MicroEMACS macro language indetail.

This program is supplied without waranties of any kind. Neither I(Pierre Perret), nor the author and copyright owner of MicroEMACS(Daniel M. Lawrence), can be held responsible or liable for any damagecaused by the use of this program.

In short: USE AT YOUR OWN RISK.

(C)Copyright 1988, 1989, 1990, 1991, 1992 by Daniel M. LawrenceMicroEMACS 3.11 can be copied and distributed freely for anynon-commercial purposes. Commercial users may use MicroEMACS3.11 inhouse. MicroEMACS 3.11 can only be incorporated into commercial software or resold with the permission of the current author:

Daniel M. Lawrence617 New York StLafayette, IN 47901

Shareware distributors are hereby authorised to redistribute version (1.1) of MicroEMACS for Windows.