MicroEMACS 3.11c for MS-Windows, update 1.1 by Pierre Perret =========================================== October 12, 1992 INSTALLATION ------------ Copy the files from the executable distribution package (MEW11.ZIP for Windows 3.1 or/and MEWN11.ZIP for Windows NT on i386) into the directory where you want the program to reside. If you want to use the MicroEMACS help file, copy it (MEWIN.HLP, from MEWH11.ZIP) in that same directory. Unlike previous version of MicroEMACS for Windows, update 1.1 can operate entirely without any specific profile entry in the WIN.INI file. On the other hand, if you want to deviate from the installation recommended above, you may have to edit the WIN.INI file. For more information on this, consult the "Profiles" topic (within the "Start-up" chapter) in the MEWIN.HLP help file and copy/paste the relevant parts from the EMACS.INI file. After installation is complete, the EMACS.INI, PACKAGES.LST and README files are no longer needed and can be deleted. If you install both the Windows 3.x and Windows NT packages in the same directory, note that the files that bear the same name in both packages are exact duplicates. Special Cases ------------- This program can run under Windows 3.0 (retail version), 3.1 (retail or debugging versions) or Windows NT. Because it contains references to system DLL entries that are not present under Windows 3.0, it cannot run under the debugging version of Windows 3.0. Further more, under Windows 3.0, there needs to be a Dynamic Link Library named SHELL.DLL lying around for the loading of the program to complete. The macro files EMACS.RC and MDI.CMD are setup for Super VGA displays that can accomodate a text width of at least 100 character. If your display is VGA-size (or a laptop screen), you can replace 80 by 75 in the line (in MDI.CMD): set %scrwidth 80 Also, delete or comment-out the line (in EMACS.RC): 100 change-screen-width and add the lines: [MicroEMACS] InitialSize=optimized in your WIN.INI file. The EMACS.RC, CUA.CMD, MDI.CMD and DEV.CMD macro files are made a part of this package as example of how macros can be used to customize MicroEMACS. A simple way to add your own macros is to put them in a file called 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 available for this version of MicroEMACS for Windows. The sources for this port are publicly available. They are packaged in a file named MEWS11.ZIP. Also available but possibly less widely distributed are the help file's RTF-format sources (in MEWR11.ZIP). Other (non MS-Windows) versions of MicroEMACS normally comes with documentation and a bunch of scripts (aka macros or "command files"). They are not supplied in this distribution package, but are available separately. The files for release 3.11 are the ones you may want and they are available from a number of sources, including: - COMPUSERVE, forum IBMAPP, library 1 for the executables (UE311I.EXE), official 3.11 release readme file (UE311.TXT), reference manual (UE311D.ZIP) and macros (UE311M.ZIP). forum IBMPRO, library 3 for the official 3.11 sources (UE311C.ZIP, UE311H.ZIP and UE311K.ZIP). - BIX, in the editors conference's listing area. - various Internet hosts among which wuarchive and simtel20. - The Programmer's Room BBS (see below) PREVIOUS VERSIONS ----------------- This program was originally born as a port of MicroEMACS to Windows 3.0 which was released as MEWIN 1.0 in April 1992, also with the full C source, but without a help file. Since then, a few intermediate updates (mainly 1.0b and 1.0e) have been made public (without sources). HOW TO REPORT PROBLEMS OR SUBMIT SUGGESTIONS -------------------------------------------- The prefered way to reach me to discuss about this program is through CompuServe, in the WINADV forum or on BIX in the editors conference, in the emacs topic. My CompuServe ID is 73757,2337 and my BIX Id is pierre_perret. You can also send Email directly to those accounts, but forum/conference transactions have the advantage of being viewable by others. If you do not use CompuServe or BIX, but have Internet access, you can exchange Internet mail with me by sending it to P.Perret@az05.bull.com Other channels include: - Phone: (602) 862-5448 at my office (9am - 5pm) (Note: hours given for Mountain Standard Time, no daylight savings) - US mail: Pierre Perret 4326 W Michigan Avenue Glendale Az 85308 - 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 of MicroEMACS itself. Problems that also occur with the standard 3.11c editor 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 the MicroEMACS way of doing things, for the sake of minimizing changes in the editor core... VOCABULARY: MicroEMACS calls "screens" what really should be called "MDI windows" and calls "windows" what should be called "panes". Changing those definitions in the Windows implementation would impact all the commands that deal with "screens" and "windows" and would therefore break most macros. INPUT TO THE MESSAGE LINE: Depending on the particular command that requested such input, MicroEMACS implements varying character handling methods that are definitely not CUA-compliant. TEXT SELECTION: Contrary to CUA standards, selections are not highlited (this will be implemented in a future version of the base MicroEMACS editor). MOUSE HANDLING: Due to its mainframe heritage, and also it's capability to redefine mouse behavior by macros, Emacs' mouse handling differs significantly from that of other Windows applications (called CUA-compliant). The CUA.CMD file included with this package, loaded by the included EMACS.RC, contains macros that modify the standard MicroEMACS mouse bindings to provide a CUA-like interface. CURRENT WORKING DIRECTORY: The current working directory and selected drive is always set to the file path associated with the current "window". If that path is not an absolute one, it is dependant upon the previously visited directory paths (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 of menus (some with nested popups). There are a few MicroEMACS functions that would not make much sense in a menu and have therefore been excluded. A few menu items have no equivalent function in the MicroEMACS macro language. In addition to the standard Windows convention of appending an ellipsis to menus items that beget a dialog box, I have used the following: a colon is appended to menus items that require a user response on the message line and an equal sign is inserted in front of items that require an argument to have been entered (by META + digits). Key bindings are displayed in the menus, using the Windows format for key descriptions instead of the MicroEMACS format (which, for some function keys, can be quite cryptic). Some menu items may appear grayed if the context is such that they are unuseable. ALT KEY HANDLING: In Windows applications, the Alt key can be used in combination with a letter or digit to pull down a menu from the menu bar. In MicroEMACS, bindings have the priority over those menu bar accelerators. Thus, if there is a conflict between a menu-bar accelerator and an emacs binding, the accelerator looses. On the other hand, trying to create a new binding interactively by simply invoking bind-to-key or macro-to-key will not be possible if the desired binding matches a menu-bar accelerator. Note that a menu can still be invoked from the keyboard, even when the accelerator conflict with a binding, by pressing AND releasing the Alt key and THEN hitting the accelerator character. "NOT QUIESCENT" STATE: If a macro is executing, most menu selections cannot be processed (the editor is said to be in the "not quiescent" state) because a lot of MicroEMACS functions are not quite reentrant. This is reflected by a change of the mouse cursor from a pointing finger to a color-inverting arrow. $SRES VARIABLE: To allow Windows-aware macros, the $sres is set to "MSWIN" and cannot be 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) NEW MICROEMACS COMMANDS: tile-screens cascade-screens minimize-screen maximize-screen These commands allow shuffling of screens (aka MDI windows) from EMACS macros. rename-screen 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-region cut-region insert-clip These supplement copy-region, kill-region and yank, but instead of addressing the kill buffer, they address the Windows clipboard. bind-to-menu macro-to-menu unbind-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 onto MicroEMACS. It initially not associated to any command and should be bound to a macro that handles the drag and drop action. In order for the macro 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 coordinates where 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, file IOs...), MicroEMACS checks for user input regularly (see the TimeSlice profile value in EMACS.INI): during these periods, a few menu options are still available, among which quitting (Exit in File menu or Close in system menu). Note that if the user attempts to quit while a file is being written out, a confirmation is required (the same happens if there are changed buffers). MicroEMACS cannot ignore typeahead while a lengthy operation is in process. One particular side effect of this is that if you do a ^X^F (find-file) followed by while a lengthy operation is going on, MicroEMACS absorbs those keystrokes and has to refeed them into the "Find file" dialog box when it eventually pops up. I have implemented a mechanism for dealing with this, but it handles only simple ASCII characters and just throws away any other keystroke (for instance, arrow keys are not forwarded to the dialog box). FONTS: The Font item in the Screen menu brings up a dialog box that allows the user to select a fixed font to be used. This font description can be saved in WIN.INI so that subsequent invokations of MicroEMACS use it at startup. LOCAL AND GLOBAL MODES: The Mode and Global mode items of the File menu bring up dialog boxes that 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 of file names, this program pops up a dialog box whenever a filename has to be supplied by the user. This is an attempt at CUA compliance. It also has the side effect of supplying the editor with fully qualified pathnames. A handy filename completion feature has been implemented as well, with the addition of auto-scrolling of the filename list: if you type only the beginning of a file name, up to a point were there is no ambiguity, hitting the spacebar orders MicroEMACS to complete the filename for you and OK the dialog. HELP SYSTEM: The first four items in the Help menu load the MEWIN.HLP help file into the Windows help engine. The information in that help file is fairly exhaustive and, in particular, covers the MicroEMACS macro language in detail. ------------------------------------------------------------------------ Disclaimer and copyright: ------------------------ 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 damage caused by the use of this program. In short: USE AT YOUR OWN RISK. (C)Copyright 1988, 1989, 1990, 1991, 1992 by Daniel M. Lawrence MicroEMACS 3.11 can be copied and distributed freely for any non-commercial purposes. Commercial users may use MicroEMACS 3.11 inhouse. MicroEMACS 3.11 can only be incorporated into commercial software or resold with the permission of the current author: Daniel M. Lawrence 617 New York St Lafayette, IN 47901 Shareware distributors are hereby authorised to redistribute version (1.1) of MicroEMACS for Windows. ------------------------------------------------------------------------