═══ 1. Preface ═══ This manual describes the features of EPM. It is intended for the user who is new to EPM. However, it is not meant to be a tutorial; it is assumed that the user has had some experience with other editors. The information on how to use the editor, therefore, is presented here in a reference or summary manner. Tables and lists summarize key functions and commands. If you cannot find what you are looking for, refer to the index for cross referencing. EPM is programmable. Although a discussion of superficial tailoring is presented herein, the macro language (the E language) which allows the editor's programmability is not discussed in this manual at all. For information on the E language, users should refer to The EPM Editor Technical Reference. Note: EPM will be used as an abbreviation for the Enhanced Editor throughout this document. ═══ 1.1. Related Manuals ═══ The following manual contains information related to the E editor: o The EPM Editor Technical Reference Manual o Rexx Information in OS/2 2.0 Information ═══ 1.2. Special Notices ═══ The term OS/2 is a trademark of the IBM Corporation. The term Unix is a registered trademark of the American Telephone and Telegraph Company. ═══ 2. Getting Started ═══ Basic information on the use of EPM. ═══ 2.1. Installation ═══ The details of the installation procedure vary, depending on how you got EPM, but the basic concept remains the same. IBM internal users should get EPM PACKAGE from OS2TOOLS. EPMnnnDL.FLS contains the DLLs (where nnn refers to the version number); EPMnnnEX.FLS contains the executables (*.EXE and *.EX), help files (EPM.HLP and EPMHELP.QHL), and a README file; EPMDOC.FLS contains the online manuals (*.INF) for use with the VIEW command and an index file (EPMTECH.NDX); EMACROS.FLS contains the macros. All the FLSBIN files on the host must be downloaded in binary, then unpacked using LOADRAM2. Non-IBM users will have the EPMBBS package, either as a set of ZIP files from the IBM OS/2 BBS's, from Compuserve, or via anonymous FTP from software.watson.IBM.com or other anonymous FTP sites, *or* on a CD-ROM or diskettes. The diskettes may have the ZIP files; the CD-ROM has the files already uncompressed into subdirectories. The EPMBBS package includes an EPMBBS.TXT file describing all the files included; only a subset will be described here: EPMDLL.ZIP contains the DLLs; EPMAPP.ZIP contains the executables (*.EXE and *.EX), quick help file (EPMHELP.QHL), and index file (EPMTECH.NDX); EPMHLP.ZIP contains the help file (EPM.HLP); EPMMAC.ZIP contains the macros. EPM can be used with OS/2 1.3 or above. The IBM internal distribution includes everything necessary; the external package would require the purchase of additional DLLs in order to run on OS/2 1.3. When installing on OS/2 2.0 or above, you can add this version of EPM as a separate package, or replace the existing Enhanced Editor. The subdirectories to be used when replacing the existing Enhanced Editor are given in brackets; [\os2] refers to the \os2 directory on your OS/2 installation drive. The suggestions to not use the OS/2 directories apply only when not replacing the Enhanced Editor version of EPM. Place the executables and quick help file in an EPM subdirectory on a hard disk. (Here, we will assume D:\EDIT\EPM.) [\os2\apps] The DLL's are dynalink libraries, which should be placed in a subdirectory in your LIBPATH. You can create a new subdirectory for EPM, or place the DLLs in a generic \DLL subdirectory. We suggest you not use one of OS/2's directories. [\os2\apps\dll] Place the E macro files in an EMACROS subdirectory on a hard disk. (Here, we will assume C:\EMACROS.) The EPM.HLP help file should be placed in a subdirectory listed in your HELP setting in CONFIG.SYS. You can create a new subdirectory for EPM, or place the file in a generic \HELP subdirectory. We suggest you not use one of OS/2's directories. [\os2\help] The INF files should be placed in a directory in your BOOKSHELF setting. The NDX file can be placed in a directory in your EPMPATH or DPATH setting. 1. Add EPM subdirectory to your PATH environment variable in your CONFIG.SYS file. For example: set path=d:\edit\epm;c:\os2;c:\os2\system; ... 2. Create an EPMPATH environment variable in your CONFIG.SYS file specifying your EPM subdirectory. For example: set EPMPATH=d:\edit\epm EPM will search for EPM.EX (the translated macros), and all other *.ex files it needs to operate, in: a. the current directory, and then in b. the directories specified by the EPMPATH environment variable, and then in c. the directories specified by the PATH environment variable, and then in d. the same directory as the editor's EPM.EXE file. 3. Be sure the DLL files are referenced by the LIBPATH tag in CONFIG.SYS. Add your new EPM directory to the LIBPATH tag in your CONFIG.SYS file or copy all .DLL files to your C:\OS2\DLL subdirectory. 4. If you always start EPM from the same place (so that EPM's current subdirectory is the one containing the .HLP files), then you can simply put the .HLP files in EPM subdirectory. If not, then you must include the directory containing the .HLP files in your HELP setting in your CONFIG.SYS, so that the OS/2 Help Manager can find them. 5. Optional Step: Create a program reference. For information on doing this see the OS/2 Online Help. 6. Add EPM to STARTUP.CMD (Optional). You can add EPM to your OS/2 start up batch file. This will put EPM icon in the parking lot at the bottom of the screen, ready for use. To do this, add to your STARTUP.CMD: start d:\edit\epm\epm.exe /i (or whatever directory name you put EPM in). 7. To make the changes take effect, especially if you've modified the LIBPATH statement, reboot your machine. Select Shutdown, or press Ctrl-Alt-Del simultaneously to reboot. Rebooting is not necessary if you did not change LIBPATH, but the changes to Path and addition of Epmpath to CONFIG.SYS won't be recognized until the next reboot unless you specifically type them at the OS2 command prompt. Fini! You can run the standard EPM as is at this point. We strongly recommend that new users become familiar with the many features of standard EPM before customizing it. If you are interested in customizing EPM, you will need to: 1. Be sure EPM.E expects to include your changes in a compile. Changes to MYCNF.E, MYSTUFF.E and some other MY*.E files will be automatically included. See Adding New Features, Changing the Default Configuration, and The EPM Editor Technical Reference for specifics. 2. Recompile EPM.E. ETPM EPM See the section Compiling Macros for more information on ETPM. ═══ 2.2. To Invoke the Editor ═══ There are a few ways of invoking EPM depending on how you installed it and from where you wish to run it: o From the Desktop Manager's Main Group (or other group) Assuming it's been added there: Double click on the name you gave it and watch EPM book icon appear at the bottom of the screen. Continue as in the next item. o From the running editor icon on the desktop Assuming you've added EPM to STARTUP.CMD and the system's either been rebooted or you've explicitly run STARTUP: Double click on the icon and respond to the Enter File Name dialog box that appears by entering the file specification of the file to be edited. Use the file specification discussed in the next item. Note: If you don't enter a name, an edit window will appear entitled .Untitled which you can name later. o From the OS/2 command prompt. EPM filespec Filespec can be one or more file names. If a specified file doesn't exist it will be created. Multiple files can be loaded into a ring (more on the ring structure soon) by using wildcard characters or separating the filenames with spaces. For example: *.asm fileA.e fileB.e fileC.e In the first example, all the files with a extension of .ASM will be loaded into a ring. In the second example the fileA.e, fileB.e, and fileC.e will be loaded (or created if they don't already exist) into a ring. Once you've invoked EPM, the file(s) will be loaded into EPM's own free-roaming PM window. See Adding Files into an Edit Ring for information on seeing the different files in a ring. See EPM Window Setup for more information on the window. ═══ 2.3. OS/2 Command Line Startup Options ═══ Several slash options can be given to EPM upon startup to initiate various editor features. A list of these options follow: /b: Starts EPM with a bare title bar - no system menu, min/max buttons, or ring buttons. Intended for use when EPM is started as a child of a special application, this option is normally not specified by the user. /e Overrides the default loading of EPM.EX. A path and file name of a .ex file must immediately follow the '/e' option. EPM /eC:\MYEPM\MYEPM.EX /f Presents the File dialog before opening the edit window, to allow you to specify which files should be loaded. (EPM 6 only.) /h Like the /i option, except that the icon is hidden when an edit window exists. /i Keeps EPM running even when all windows have been terminated. /m Forces a new instance of EPM book icon, even if another EPM book already exists. (/M stands for Multiple.) Useful from a command file, when you want to ensure that control will not return until after the edit session ends. Normally, if an EPM book icon exists, a call to EPM will pass the arguments to the existing book and immediately return to the calling OS/2 session. /o Directs EPM to skip over the first open file dialog and display the File list dialog by default. This affects the Open dialog called from EPM book icon, and the Edit, Open and Get dialogs called from an EPM edit window. /r Passes the arguments to the topmost edit window, if one exists, instead of starting a new window. This allows you to add files to an existing ring from the OS/2 command line. /w Prepare for DDE conversation from the Workframe. After removing any of the above options, the OS/2 command line argument is passed to an internal Edit command. This means that you can pass EPM commands to be executed as well as files to be edited on EPM command line. See the description of the EDIT command for examples of passing commands to the new edit window. Also see the description of the POSTME command for deferring the setting of tabs and margins until after the default settings have been applied. ═══ 3. Basic Procedures ═══ This section will cover all of the basic procedures necessary to begin editing right away. The procedures will be described in an abbreviated fashion. Detailed descriptions of the procedures will be given later in the manual. ═══ 3.1. EPM Window Setup ═══ The screen should be a familiar PM window that will look something like: This is the title bar. It contains the icon for the system (which also functions as a direct manipulation icon). As well as the filename of the file being edited, two ring buttons, and the minimizing and maximizing arrows. This is the action bar which has six options listed (this can be changed). To use one of these functions, position the mouse over your choice and hit button one. Then position the mouse over your choice from within the menu and hit button one on your mouse again. Alternatively, you can press F10 or press and release the Alt key to reach the action bar. Then use the arrow keys on your keyboard to reach the correct function. Press enter to choose that function. Use the arrow keys and enter in the same way to choose the menu function. This is the status line. It defaults to displaying the cursor line number, the total number of lines in the file, the cursor column number, the insert/replace mode of the cursor, the modify state (only displayed when the file has been modified) and the number of files in the ring. This can be altered. See the STATUS_TEMPLATE configuration option for more information on modifying the status line. The status line display can be turned off (or on) using the Status line option from the Frame Controls cascade in the Options action bar menu. The Message line The message line is used to display editor messages. This line can be toggled off (or on) using the Message line option from the Frame Controls cascade in the Options action bar menu. If the message line has been toggled off, the messages will be displayed temporarily overlaying the status line. If the status line is not present, then the messages will be displayed temporarily overlaying the first line of the file area. If a line is overlaid, it will be restored with the next keyboard or mouse action taken. Note: In the standard configuration, the Message Line has been toggled off. Thus messages will temporarily overwrite the Status Line as needed. File Area This is where your file is displayed and can be updated. It is by default a white window with black text (this can be changed). ═══ 3.2. Basic Cursor Movement ═══ The easiest way to move around EPM file area is through the use of the following cursor movement keys: Up arrow Moves cursor one line up. Down arrow Moves cursor one line down. Left arrow Moves cursor one character to the left. Right arrow Moves cursor one character to the right. Home Moves cursor to the beginning of the current line. End Moves cursor to the end of the current line. Page up Shifts view to page above current page, cursor stays at same position on screen. Page down Shifts view to page below current page, cursor stays at same position on screen. Ctrl+Home Moves cursor to top line of file. Ctrl+End Moves cursor to bottom line of file. Ctrl+Page up Moves cursor to top of screen. Ctrl+Page down Moves cursor to bottom of screen. Ctrl+Left Moves cursor to beginning of word left of cursor. Ctrl+Right Moves cursor to beginning of word to right of cursor. Tab Moves cursor to next tab stop. (See Setting Tabs). Shift-tab Moves cursor to previous tab stop. (See Setting Tabs). Enter Inserts a new line and moves the cursor under first non-blank character of the previous line. Ctrl-Enter Moves cursor to column 1 of next line. See Also: o Cursor Movement- more information on cursor movement in EPM. o Stream verses Line Mode- information on stream and line modes. o Enter Key Behavior- information on configuring the enter key. ═══ 3.3. Basic File Control ═══ How to open, close, print, save and rename files. ═══ 3.3.1. Opening a New Edit Ring ═══ There are three ways to open a new edit ring: o From the OS/2 command line: 1. Type EPM 2. Press the ENTER key. o Using EPM book icon: 1. Double click on the book icon. 2. Hit OK. o From an already existing edit ring: 1. Open the File menu from the Action Bar. 2. Choose Open .Untitled selection. See Also: o Opening Edit Rings- Details on opening edit rings. ═══ 3.3.2. Adding Files to an Existing Edit Ring ═══ Note: To add more than one file to the edit ring the Ring Enabled option must be turned on. If it is not, it can be turned on by choosing Ring Enabled from the Preferences cascade from the Options menu. To add files to an existing edit ring follow these steps: 1. Select the edit window to which you wish to add the file. Note: If none exists follow the procedure found in Opening a New Edit Ring 2. Either: o Select Add File... from the File menu, or: o Press the F8 key. 3. If the file you wish to load is found in the recently loaded file list in the newly created dialog box, load it by double-clicking on it with the mouse or by selecting it with the arrow keys and hitting ENTER, or if you know the name of the file you wish to load, you can type it in the Entry Field and press Enter. Otherwise: a. Press the File list... button. b. To load a file from the newly created window follow these steps: 1. Change the current drive if necessary by moving to the drive window and typing the letter of the drive or selecting the drive by opening the pull down list by clicking on the down arrow with the mouse or by typing Ctrl+Down. 2. Change the current directory if necessary by double clicking on the directory name with the left mouse button or by selecting the directory name with the keyboard and pressing Enter. 3. Finally open the file by double clicking on the name in the file list with the left mouse button or by selecting the file(s) you want and pressing Enter. Note: Further help on the file list box is available and can be accessed by pressing the help button in the dialog box. The dialog box is now clear and the file will be active in the current edit window. See Also: o Adding Files to an Edit Ring- Details on adding files to an edit ring. ═══ 3.3.3. Closing Files ═══ To close the current file in the active edit ring either: 1. Open the File menu. 2. Choose Quit. Or: 1. Press F3. Note: If the file has been modified since your last save EPM will prompt you on whether you wish to save or discard your changes. To continue press the appropriate button. See Also: o Closing the Current File- Details on closing files. ═══ 3.3.4. Saving Files ═══ To save the current file either: 1. Open the File menu. 2. Choose the Save command. Or: 1. Press F2. See Also: o Saving the Current File- Details on saving files. ═══ 3.3.5. Renaming Files ═══ To rename the current file: 1. Bring up the Rename dialog box either: a. Open the File menu. b. Choose Rename.... Or: a. Press F7. 2. Change the name in the entry field to the new name and press ENTER. See Also: o Renaming the Current File- Details on renaming files. ═══ 3.3.6. Printing Files ═══ To print a file: 1. Open the File menu. 2. Choose Print File.... 3. Choose the appropriate printing device. 4. Choose either Formatted Print to print to an OS/2 Print queue, or Raw ASCII text to print to an LPT or COM port. 5. If you selected Formatted Print, you can select Options to choose either WYSIWYG or draft mode. 6. Press the Print button. Note: When printing in WYSIWYG mode, it is important to realize that light foreground colors will not appear on a non-color printer. To compensate for this, it is necessary to either change the foreground to a dark color (preferably black) or ensure that Monochrome is selected on the Print Options dialog. Background color is ignored when printing in WYSIWYG mode. See Also: o Printing the File- Details on printing. o Direct Manipulation Using the File Icon- Printing using the file icon. ═══ 3.4. Marking ═══ How to create the three types of EPM marks: o Line marks o Block marks o Character marks ═══ 3.4.1. Line Marks ═══ To create a line mark with the keyboard: 1. Place the cursor on the line from which you wish to originate the mark. 2. Press Alt+L. 3. Place the cursor on the line where you want to end the mark. 4. Press Alt+L. To create a line mark with the mouse: 1. Place the mouse cursor over the line where you want the mark to begin. 2. Hold down the right mouse button. 3. Drag the mouse until the lines which you wish to mark are highlighted. 4. Release the mouse button. Note: Advanced marking must be activated. See Also: o Line Marks- Details on creating line marks. o Basic Marks- Creating basic marks. ═══ 3.4.2. Block Marks ═══ To create a block mark with the keyboard: 1. Place the cursor to the left of the character where you wish to begin the block mark. 2. Press Alt+B. 3. Place the cursor to the left of the character where you wish to end the mark. 4. Press Alt+B. To create a block mark with the mouse: 1. Place the mouse cursor over the character where you want the mark to begin. 2. Hold down mouse button 1. 3. Drag the mouse until the characters which you wish to mark are highlighted. 4. Release the mouse button. Note: Advanced marking must be activated. See Also: o Block Marks- Details on creating block marks. o Basic Marks- Creating basic marks. ═══ 3.4.3. Character Marks ═══ To create a character mark with the keyboard: 1. Place the cursor to the left of the character where you wish to begin the mark. 2. Press Alt+Z. 3. Place the cursor to the left of the character where you wish to end the mark. 4. Press Alt+Z. To create a character mark with the mouse: 1. Place the mouse cursor over the character where you want the mark to begin. 2. Hold down the Ctrl key as well as mouse button 1 or just press mouse button 3 if you have a 3 button mouse. 3. Drag the mouse until the characters which you wish to mark are highlighted. 4. Release the mouse button. Note: Advanced marking must be activated. See Also: o Character Marks- Details on creating character marks. o Basic Marks- Creating basic marks. ═══ 3.5. Mark Manipulation ═══ These are the basic keys for mark manipulation: Key Effect Alt+C Copy the marked block to the current cursor position. Alt+D Delete the currently marked text from the document. Alt+M Move the marked block to the current cursor position. Alt+U Remove the current mark. Alt+A Overlays block onto current cursor position and fills the origin with blanks. Alt+O Overlay the marked text onto the cursor poition. See Also: o Moving Text- Details on moving text. o Copying Text- Details on copying text. o Deleting Text- Details on deleting text. o Removing Marks- Details on removing marks. ═══ 3.6. Setting Margins ═══ To set the margins in EPM follow these steps: 1. Press Ctrl+I to bring up the EPM Command Line dialog box. 2. Type MARGINS followed by a space. 3. Type the left margin followed by a space. 4. Type the right margin followed by a space. 5. Press ENTER. For example, if you wanted to set the left margin for 10 and the right margin for 75 then you would type the following at the EPM Command Line: MARGINS 10 75 See Also: o MARGINS command - More details on the MARGINS command. o Changing Common Default Values Via the Settings Dialog ═══ 3.7. Setting Tabs ═══ Here's how to set tabs in EPM: 1. Press ESC to bring up the EPM Command Line dialog box. 2. Type TABS followed by the frequency of the tab stops. For example, if you wanted to set tab stops at every 4 characters you would type TABS 4 at the Command LIne. See Also: o TABS command- More details on the TABS command. o Changing Common Default Values Via the Settings Dialog ═══ 3.8. Changing Font and Color ═══ To change the current font and/or color of selected text, follow this procedure: 1. Create a mark. See Marking for information on creating marks. 2. Either: a. Press Ctrl+Y Or: a. Open the Edit menu. b. Choose Style.... 3. Change the font by choosing one from the font list. 4. Change foreground color by: a. Clicking on the Foreground radio button. b. Choosing a new color from the color list. 5. Change background color by: a. Clicking on the Background radio button. b. Choosing a new color from the color list. To change the current font and/or color of the current file, see Changing Common Default Values Via the Settings Dialog. ═══ 4. File Manipulation ═══ This section contains detailed descriptions of all of the commands and procedures which deal with the control of files. ═══ 4.1. File Fundamentals ═══ EPM can be thought as existing on three separate levels. The highest level contains EPM program. This top level controls and manages the Edit Rings which are found on the second level. Each of these Edit Rings has its own Presentation Manager Window as well as control over a group of files which can be considered the third level. A schematic of these levels would look something like this: ╔═══╗ ║EPM║ ╚═╤═╝ ┌────────────────┴──┬────────────────┐ │ │ │ ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐ │Edit Ring 1│ │Edit Ring 2│ │Edit Ring 3│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ ┌──────┴─────┐ │ │ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │FILE1.DOC│ │FILE2.DOC│ │FILE3.DOC│ │FILE4.DOC│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ In this example EPM has three Edit Rings open. The first Edit Ring contains two files, FILE1.DOC and FILE2.DOC. The second Edit Ring contains one file, FILE3.DOC. The third ring also contains one file, FILE4.DOC. ═══ 4.2. Opening Edit Rings ═══ The advantage of starting a new window is that you get a new instance of the editor, with its own heap and mark. The disadvantage is that each new window takes about 70K of memory. We recommend keeping related files together in a window. Unrelated files (different projects) should be put in separate windows, so you can shrink or hide projects as you switch between tasks. When editing many files this feature helps group like files. For instance, when working on several different projects, each project can have its own ring containing all its own related files. As many rings as needed can be used. There are three ways in which you can open new edit rings. This section will cover each in detail. 1. From the OS/2 Command Line: To do this simply type EPM at the prompt. If you wish to load files directly into the new ring from the prompt, type the names of the files as arguments. It is possible to load multiple files into the ring using wildcards or by listing each individual file. All of the following examples are valid file arguments: EPM FILE1.DOC EPM FILE2.* EPM FILE?.TXT TEMPFILE D:\TEXT\*.* Several slash options can be given to EPM upon startup to initiate various editor features. For a list of these and their descriptions see OS/2 Command Line Start Options. 2. Using EPM book icon: It is possible to create a new edit ring from EPM book icon by double clicking on it with the mouse. The Open dialog box will now appear, unless the /o option was specified when EPM was started, in which case File List dialog box will appear. 3. From an active edit ring From an open edit ring it is possible to create a new edit ring in the following ways: o Using the Open Command: The Open command can be activated in three ways: a. From the EPM Command Line: See Open command description for details on this. b. From EPM File menu: From EPM File menu the following items will open a new edit ring: - Open .Untitled: Will create the new edit ring with an unnamed file. - Open...: Will bring up the Open dialog box if activated or the File List dialog box otherwise. c. Using the keyboard: Type Ctrl+O or F5. This has the same effect as selecting the Open... menu item. Another way of opening edit rings is though the use of the OPENPATH command. The OPENPATH command allows you to search a path variable for a file. For example, if you wanted to serarch for the file TEST.E which you know is in one of the directories of the PATH variable, you would enter this command: OPENPATH TEST.E PATH If the system variable is not given OPENPATH will default to the EPMPATH, unless the file given has a CMD extension, when it will default to the PATH variable. The OPENPATH command can be abbreviated to OP. ═══ 4.3. Adding Files to an Edit Ring ═══ There are three ways to add new files to an EPM Edit Ring: 1. Using the EPM Command Line: The Edit command. 2. Using the File menu: Choose the Add File... menu item. This will bring up the Add File dialog box if activated or the File List dialog box otherwise. 3. Using the keyboard: Press F8. This has the same effect as using the file menu. Another way of adding files is though the use of the EPATH command. The EPATH command allows you to search a path variable for a file. For example, if you wanted to search for the file TEST.E which you know is in one of the directories of the PATH variable, you would enter this command: EPATH TEST.E PATH If the system variable is not given EPATH will default to the EPMPATH, unless the file given has a CMD extension, when it will default to the PATH variable. The EPATH command can be abbreviated to EP. When adding files it important to note the current status of the BROWSE command. If BROWSE is turned on, you will be unable to modify the file. To determine the state of the BROWSE variable type either BROWSE or BROWSE ? at the EPM Command Line. To activate BROWSE mode enter BROWSE ON. To turn off the feature use BROWSE OFF. Note: To add more than one file to the edit ring the Ring Enabled option must be turned on. If it is not, it can be turned on by choosing Ring Enabled from the Preferences cascade from the Options menu. ═══ 4.4. Switching between Files in an Edit Ring ═══ When multiple files are loaded into the editor, you see only one file at a time on your screen. There are three ways of switching between files in the current edit ring: 1. Scrolling through the files using the keyboard: You can view one of the other files that are already loaded by pressing the Ctrl-P, F11, Ctrl-N, F12 key. When multiple files are loaded into the editor, they are placed in a ring structure. This enables you to move through the ring of files forward (Ctrl-N[ext] or F12) and backward (Ctrl-P[revious] or F11), viewing all the files and always returning back to your original place. For example, assume that you have invoked the editor with the following filename specification: fileA.e fileB.e fileC.e When EPM window comes up, you will be viewing fileA.e. If you press F12 or Ctrl-N, you will see fileB.e, and you can see fileC.e by pressing F12 or Ctrl-N again. If you press the key once more, you will be returned to your view of fileA.e. 2. Selecting the current file using the ring list: Open the List Ring dialog box using either of the following methods: o Choosing the List Ring... item from the Options menu. o Typing Ctrl+G Then choose the file which you wish to activate from the files listed. 3. Using the Ring Buttons: These are the ring buttons: They are located on the Title bar. The ring buttons can also be used to switch between files. The left hand ring button switches to the previous file in the ring and the right hand one switches the next file. Note: To add more than one file to the edit ring the Ring Enabled option must be turned on. If it is not, it can be turned on by choosing Ring Enabled from the Preferences cascade from the Options menu. ═══ 4.5. Saving the Current File ═══ To save the current file you may use any of the following procedures: o Using the EPM Command Line: Enter SAVE at the EPM Command Line. o Using the File Menu: There are two techniques for saving from the File menu: 1. Save: Saves the file. 2. Save as...: Allows the user to rename the file before saving by bringing up the Save as dialog box. o Using the keyboard: Type F2. EPM also contains an AUTOSAVE which will save the file after a set number of modifications have been made to the file. To view the current autosave settings type AUTOSAVE at the EPM Command Line, or select Autosave... from the Options menu. The autosave value is the number of modificatinos which must be made to the file before an autosave is preformed. Name is the name of the current autosave file. There are five options which can be used with the autosave command. They are as follows: Option Effect AUTOSAVE #### Sets the number of modifications before an autosave. Setting the number of modifications to 0 turns off the autosave feature. AUTOSAVE ON|OFF Turns the autosave feature on or off. AUTOSAVE ? Opens a dialog box containing the number of modifications between autosaves and the name of the current autosave file as well as the option to list all of the files in the autosave directory. AUTOSAVE DIR Lists all of the files in the autosave directory. ═══ 4.6. Closing the Current File ═══ There are two different manners for closing files Quiting and Filing. Quitting simply closes the file, whereas filing will save the file then close it. They can be performed as follows: o Quitting: There are three different procedures for quitting: 1. From the EPM Command Line: Using the QUIT command. 2. From the File menu: Choose Quit. 3. Using the keyboard: Press F3. o Filing: There are several ways for filing: 1. From the EPM Command Line: Using the FILE command. 2. From the File menu: Choose Save and quit. 3. Using the keyboard: Press F4. In each of these cases, if the file has been modified since the previous save a Quitting file dialog box will appear which is self explanatory. ═══ 4.7. Direct file manipulation using the File icon ═══ The File icon is located to the left of the title bar. It can be used to achieve the following: o Print the current file. o Copy a file to another edit window. o Create another edit window containing your file. o Copy files to a folder on the desktop. The File icon is manipulated in the following way: Select the file icon by pointing to it with your pointing device (mouse) and pressing button 2. Keeping button 2 down, move the mouse pointer over either: o The Print Manager icon, to print the file. o An EPM edit window, to copy the file. o EPM icon, to create another edit window containing your file. o A folder on the desktop, to copy the file to that directory. Note: When dragging EPM file icon to the printer or to the File Manager, the current state of the file in memory will be printed or saved. When dragging EPM file icon to another EPM edit window or to the EPM book icon, the file loaded will be the file that exists on disk. Any changes made since the file was loaded or last saved will not be seen in the new copy. ═══ 4.8. Renaming the File ═══ If you wish to rename the current file there are four ways in which to do it. All of the following are acceptable ways to rename files: 1. From the EPM Command Line: Issue the NAME command or the RENAME command. 2. Through the File Menu: Open the File menu then choose Rename.... To change the name of the file replace the name in the dialog box with the new name and press ENTER. 3. Using the mouse: Place the mouse cursor over EPM title bar then double-click with the right mouse button. The title bar will have now turned white and you can now change the name of the file. 4. Using the keyboard: Press F7. ═══ 4.9. Printing a File ═══ To print in draft mode follow these steps: 1. Bring up the EPM Command Line. 2. Type PRINT. 3. Press the ENTER key. This procedure will print the marked text to the default printer. If no text is marked this procedure will print the entire file to the default printer. If you wish to print to a printer other than the defaut follow add enter the destination of the file as a parameter of the PRINT command. Valid destinations are LPT1: - LPT9: For example, if you wanted to print to LPT2: you would type this at the EPM Command Line: PRINT LPT2: An alternate way to print the file is: 1. Open the File menu from the Action Bar. 2. Choose Print file.... This procedure will bring up a dialog box. In the dialog box first choose whether you want to print formatted text or raw ASCII text. Next choose the printer queue or printer port to which you wish to send the output. For formatted output, you can choose between draft and WYSIWYG printing mode. Warning: If printing in WYSIWYG mode the foreground text must be in a dark color, preferably BLACK, or Monochrome must be selected as a print option.. ═══ 4.10. Appending a File ═══ To append a marked section of text from the current file, or the entire file to the end of a file which has not been loaded into the editor use the APPEND command. This command is used in the following manner: APPEND filename Where filename is the name of the file to which you wish to append the text. If a mark exists in the current file then just the text in this mark will be appended, otherwise the whole file will be. If the file given by the argument does not exist the command will create it. The PUT can be used as a synonym for the APPEND command. A related command is the GET command. The GET command allows you to load the contents of a file into the current file. For example, if you wished to add the file PYTHON.NEE into the current file you would enter: GET PYTHON.NEE This will load the file beginning at the current cursor location. ═══ 4.11. Locking the File in a LAN ═══ When using a LAN it may be necessary to lock files on occasion. To do this you can use the LOCK, or the /k option when loading the file. Files are automatically unlocked when a FILE or QUIT are given, but can be manually unlocked using the UNLOCK command. ═══ 4.12. Searching for Files ═══ It is possible to search for files using the LIST command. The syntax for this command is as follows: LIST filespec Use LIST to load a list of file names that match filespec. If filespec includes a path, then that directory is used as the starting point; if not, the current directory is used. Both the starting directory and any subdirectories are searched for matching files. This may take a significant amount of time (a minute or more) if you name a filespec that qualifies an entire hard disk, such as list \*.* Once you have the list, you can place the cursor on the name of a file, and then press Alt-1 to edit that file. FILEFIND and FINDFILE can be used as synonyms for the LIST command. ═══ 5. Marks and Marking ═══ Information of the creation, use and manipulation of marks. ═══ 5.1. Marking Basics ═══ A mark is a way of performing the same operation on a group of characters. For example, if you wanted to move a paragraph from one part of a file to an other, you would create a mark which encompassed all of the characters in that paragraph, then you could move the whole paragraph to the new location. EPM has two distinct marking modes: Basic and Advanced. ═══ 5.2. Basic Marking Mode ═══ EPM Basic marking mode acts like the CUA marking used in PM entry fields. It should be familiar to all OS/2 users, but it lacks the power of the Advanced Marking Mode. ═══ 5.2.1. Creating Marks ═══ It is possible to create marks in the basic marking mode with the mouse or the keyboard. Using a mouse: 1. Place the mouse cursor over the first character which you wish to include in the mark. 2. Depress the left mouse button. 3. Drag the mouse to the last character to be included in the mark. 4. Release the left mouse button. Using the keyboard: 1. Place the text cursor to the left of the first character to be marked. 2. While holding down the Shift key, use the cursor keys to extened the mark. Note: The cursor keys which must be used are the cursor keys which are NOT part of the numberic key pad. The mark can be removed by moving the text cursor to another location using either the mouse or the cursor keys. ═══ 5.2.2. Copying Marks ═══ To copy text to a new location in Basic Marking Mode use the following procedure: 1. Create a mark. For information on doing this see Creating Marks. 2. Copy the text into the clipboard by pressing Ctrl+Ins, by selecting Copy from the Edit menu or by entereing the COPY2CLIP 3. Move the cursor to the location where you wish to copy the text to. 4. Copy the text from the clipboard by pressing Shift+Ins, by selecting Paste from the Edit menu or by using the PASTE command at EPM Command Line. ═══ 5.2.3. Moving Marks ═══ To move text to a new location in Basic Marking Mode use the following procedure: 1. Create a mark. For information on doing this see Creating Marks. 2. Cut the text into the clipboard by pressing Shift+Del, by choosing Cut from the Edit menu or by entering CUT command at the EPM Command Line. 3. Move the cursor to the location where you wish to copy the text to. 4. Copy the text from the clipboard by pressing Shift+Ins, by choosing Paste from the Edit menu or by using the PASTE command at EPM Command Line. ═══ 5.2.4. Deleting Marks ═══ To delete text using Basic Marking Mode: 1. Create a mark. For information on doing this see Creating Marks. 2. Press Del. Note: Pressing any other text key when an area is marked will replace the marked area with that character. Pressing Ctrl+Ins will replace the marked text with the text found in the clipboard. ═══ 5.3. Advanced Marking Mode ═══ EPM Advanced Marking mode has four basic types of marks: block, line, word and character. ═══ 5.3.1. Creating Marks ═══ To create a mark in the Advanced Marking mode you must first decide what type of mark you wish to make. There are four types of marks: o Block Mark o Line Mark o Word Mark o Character Mark ═══ 5.3.1.1. Creating a Block Mark ═══ Creating a Block Mark: To create a block mark you may use either the mouse or the keyboard. To create a block mark using the mouse follow these steps: 1. Place the mouse cursor over the position where you wish to begin the mark. 2. Hold down mouse button 1. 3. Drag the mouse until the area which you wish to mark is enclosed in the highlighted box. 4. Release mouse button 1. If you do not have a mouse or if you prefer using the keyboard, you can use the following procedure: 1. Place the text cursor where you wish one of the corners of the block mark to be located. 2. Press Alt+B. 3. Move the text cursor to the position where you want the opposite corner of the block mark to be. For example, if the first postion was meant to be the lower-left corner of the block mark, the second should be the location of the upper-right corner. 4. Press Alt+B. Note: If a block mark already exists when Alt+B is pressed, the block mark will be changed so that the current cursor location and the upper-left corner of the old block mark are used as the anchor points. ═══ 5.3.1.2. Creating a Line Mark ═══ Creating a Line Mark: Line marks can also be created using either the mouse or the keyboard. Using the mouse: 1. Place the mouse cursor on the line from which you wish to originate the line mark. 2. Press mouse button 2. 3. Drag the mouse cursor to the line where you wish end the mark. 4. Release mouse button 2. Using the keyboard: 1. Move the text cursor to the line where you want to begin the line mark. 2. Press Alt+L. 3. Move to the line which you desire to end the block. 4. Press Alt+L. Note: If Alt+L is pressed when a line mark already exists, the current line mark will be extended in the following manner: if Alt+L is pressed on a line above the first line in the current mark, the mark will be extened from the bottom the current mark to the current line, otherwise it will be extened from the top of the current mark to the current line. ═══ 5.3.1.3. Creating a Character Mark ═══ Creating a Character Mark: Using a mouse 1. Place the mouse cursor over the character where you choose to begin the mark. 2. Hold down Ctrl+mouse button 2 (or just press mouse button 3 if you have a 3-button mouse). 3. Drag the mouse to the location where you wish to end the mark. There are two different ways to create character marks using the keyboard. The first is to simply hold down the Shift key and move the cursor using the non-numeric cursor keys to extend the mark. The second manner of creating character marks with the keyboard is as follows: 1. Move the text cursor to the character where you wish to begin the mark. 2. Press Alt+Z. 3. Move to the character where you wish to end the mark. 4. Press Alt+Z. Note: If a character mark already exists when Alt+Z is pressed the mark will be created as follows: If Alt+Z was pressed on a character which is located after the first character in the current mark, the mark will enclose all of the characters between the beginning of the existing block to the current cursor position. Otherwise, the mark will be made such that it will extend from the end of the current block to the current cursor position. ═══ 5.3.1.4. Creating a Word Mark ═══ Creating a Word Mark: Using the keyboard: 1. Place the text cursor on the word which you wish to mark. 2. Press Alt+W or enter MARKWORD at the EPM Command Line. Using the mouse: 1. Double-click mouse button 2 on the word you wish to mark. Note: Word marks can be extended as if it were a block mark. A word is assumed to extend from the current character left and right with a space on the beginning or end of the line is encountered. This is not always satisfactory. For example, when writing a C program, you might have: result=function(parameter1,parameter2); and want to mark the first parameter; Alt+W would mark the entire function call (because it doesn't contain any spaces). A variety of word mark is available that picks out C language tokens: Using the keyboard: 1. Place the text cursor on the word which you wish to mark. 2. Press Ctrl+W. Using the mouse: 1. Press and hold Ctrl and double-click mouse button 2 on the word you wish to mark. ═══ 5.3.2. Copying Marks ═══ To copy text to a new location it is necessary to first create a mark. Once you have done this, to copy the mark, move the cursor to the location where you wish to insert the copy and press Ctrl+C or hold down the Ctrl key and mouse button 2 while the mouse pointer is within the marked area, then drag the mouse to the new location. ═══ 5.3.3. Moving Marks ═══ To move marked text move the text cursor to the location where you wish to insert the text and press Alt+M. An alternate way is to use the mouse. To do so, first place the mouse pointer over the mark. Depress the right mouse button. Drag the mouse so that the cursor is over the location where you wish to place the text. Release the mouse button. ═══ 5.3.4. Deleting Marks ═══ To delete a mark, press Alt+D. ═══ 5.3.5. Mark Overlay ═══ It is possible in EPM to overlay a mark onto another location, i.e. move or copy a marked area to another location, while replacing anything which might have been there. There are two key which are used to perform this operation, Alt+A and Alt+O The difference between the two is that Alt+A fills the originally marked area with blanks, whereas Alt+O does not. ═══ 5.3.6. Removing Marks ═══ To remove any existing marks type Alt+U or double-click the left mouse button. Note: EPM only allows you to have one mark in existence at a time, so you must remove the mark before making a new one. ═══ 5.3.7. Scrolling ═══ To scroll the text in the current mark to the left or right use Ctrl+F7 and Ctrl+F8, respectively. Note: Characters which are scrolled past the left side of the mark are lost. They will not return if you attempt to retrieve them by scrolling back right. ═══ 5.3.8. Adjusting a Paragraph to New Margins ═══ To set the margins, issue the margins command from the command line dialog box. For example, to set the left margin to the first column, the right margin to the seventy-fifth column, and the paragraph indent to 5 spaces, issue the following command: margins 1 75 5 Reflowing a paragraph that's followed by a blank line (or end of file) is easy; EPM knows that the paragraph has ended when it sees the blank line. EPM also recognizes script tags (a period in the first column) as an end of paragraph. Simply move the cursor to the beginning of the paragraph and press Alt-P. If the paragraph is not terminated with a blank line or end of file, you must tell EPM where to stop by marking the paragraph as follows: 1. Move the cursor to the beginning of a paragraph and press Alt-L. 2. Move the cursor to the end of the paragraph and press Alt-L. EPM will highlight the text you have marked. 3. Now you can press Alt-P to adjust the marked paragraph to the current margin settings. ═══ 5.4. Procedures Valid for both Marking Modes ═══ Procedures which are valid for both marking modes. ═══ 5.4.1. Filling Marks ═══ Filling a mark means that you are turning every character within that mark to the character specified in the command. To fill a mark you can either press Alt+F or enter the FILL command at the EPM Command Line. For example, if you wanted to fill the marked area with the character A you would either press Alt+F then enter A in the newly created dialog box, or entering the following at the EPM Command Line: FILL A ═══ 5.4.2. Simple Math Functions ═══ The ADD and MULT commands cause EPM to add and multiply, respectively, all of the numbers in a mark. The answer will be placed in the line below the mark. These commands will fail if there are characters present in the mark. ═══ 5.4.3. Sorting ═══ Entering SORT at the EPM Command Line causes EPM to sort the lines in the marked area, or the entire file if no area is marked. If a block mark exists, the marked columns will be used as the sort key; if not, the first 20 columns of each line will be used. ═══ 5.4.4. Uppercase/Lowercase ═══ If you wish to set all of the letters in a marked area to either their uppercase or lowercase characters enter the UPPERCASE or LOWERCASE command at EPM command line. As a short cut, the Ctrl+F3 and Ctrl+F2 key combinations can be used for uppercase and lowercase, respectively. ═══ 5.4.5. Reflowing Marked Text ═══ The Alt-R key lets you reflow a section of text to a new shape. It's typically used to reformat a special paragraph (like a figure caption or example) to new margins without changing the standard margins. First mark the text to be reformatted (with any type of mark), then press Alt-R. You will be prompted to mark the new block - the shape you want the block to be reflowed into. Move the cursor around and press Alt-B twice to define the new area, in the same place as the original text or elsewhere in the document. Then press Alt-R again and the text will be reflowed. The space from which the text came will be filled with blanks. Alt-P will reflow a block marked area into the shape and size of the marked area, ignoring the margin settings. In other words, with a block mark, Alt-P behaves as if you marked a block, pressed Alt-R, and remarked the same block. ═══ 5.4.6. Centering Text ═══ To center the text in the current mark type Alt+T. If there is no text currently marked the text is centered between the current margins. ═══ 5.4.7. Executing Marked Lines ═══ By pressing Alt+0 (Alt+Zero) or Alt+= EPM will execute the current line, or all marked lines, as a command. If a line mark exists, you will be asked if you wish to execute all marked lines. Select Yes to execute each marked line as though it had been entered in the EPM command line dialog, select No to execute only the current line, or select Cancel to cancel the command. ═══ 6. Text Layout and Style ═══ EPM has several variables which define how the text in the edit window looks. For example, tabs, margins, color, and font. This section will describe how to adjust these and related attributes. ═══ 6.1. Font and Color ═══ EPM allows you to change the physical appearance of all of characters in a mark. To do this it is first necessary to mark an area of text. For details on doing this, see either Advanced Marks or Basic Marks, depending on which marking mode you are currently working with. After creating a mark, the next step in changing the font and color of text is to bring up the style dialog box. To do so, either press Ctrl+Y or choose Style... from the Edit menu. To change the current font, select a new one from the Font name combination box. There are several options which can affect the outcome of the font. The font can be made bold, italicized, outlined, underlined, or struckout by pressing the appropriate button. The font size can also be changed using the Font size combination box. Note: The block mark is rectangular with respect to the number of characters within it, not by physical size. Therefore, if a proportional font is used the block mark will not appear to be rectangular. Both the foreground and background color of the text can be changed using the style dialog box. To change either first choose it by clicking on the appropriate radio button, then choosing the new color from the Color combination box. Note: When printing in WYSIWYG mode, it is important to realize that light foreground colors will not appear on a non-color printer. To compensate for this it is necessary to change the foreground to a dark color (preferably black), or to select Monochrome from the printer Options dialog. Background color is ignored when printing in WYSIWYG mode. The current text appearance is located in the box located at the top of the dialog box. This allows you to see the tentative style before you make the change permanent. To make the changes in style press the Apply button. Note: Using mixed colors can slow down painting of the screen a little, and using mixed fonts can slow it down quite a bit. ═══ 6.2. Defining Styles ═══ It can be useful on occasion to name and then save the current text style so that it can be easily called up later and reused. To do this it is first necessiary to mark an area of text. For details on doing this, see either Advanced Marks or Basic Marks, depending on which marking mode you are currently working with. Next, call up the style dialog box. To do so, either press Ctrl+Y or choose Style... from the Edit menu. Next, adjust the style to the appearance which you wish to save. For information on doing this see Font and Color. To register the current style, type the name by which you wish to call the font in the Style name entry field, then press the Register button. ═══ 6.3. Setting Tabs ═══ Type in the tabs command (on the command line dialog) and press the ENTER key. The tabs command has the following syntax: tabs [t1 [t2 [t3 .. t32] ] ] Examples: tabs 1 9 17 25 33 tabs tabs 4 The first example will set the tabs to the columns 1, 9, 17, 25, and 33. The second example (the tabs command with no arguments) will display the current tab settings and allow them to be changed. In the third example, the tabs are set every four spaces at 1 5 9 13 ... 125. See the TABS command for more information. EPM has another type of tab which uses the beginning of the words in the previous line as tab stops. To put EPM into this mode the MATCHTAB must be used. Entering MATCHTAB will cause EPM to display the current status of the setting. ON means that the function is active and the proceeding line is used for tab stops. OFF means that the set tabs will be used. To change the setting follow the command by the new value. For example, MATCHTAB ON will turn it on. It is also important to be aware of the TABKEY command. This toggles whether or not a tab character is inserted when the Tab key is pressed. Note: MATCHTAB will not act properly if TABKEY is enabled. Note: Use the Settings dialog to permanently change the default tabs. ═══ 6.4. Setting Margins ═══ Type in the margins command (on the command line dialog) and press the ENTER key. The margins command has the following syntax: margins [left-margin [right-margin [new-paragraph-margin] ] ] Examples: margins 1 70 5 margins The first example sets the left margin to the first column, the right margin to the 70th column, and the paragraph indent to the fifth column. The second example shows you the current margin settings and allows them to be altered. As you continue typing, EPM will keep your text within the new margin settings. But you will notice that your previously-entered text is not automatically reflowed to the new margin settings. See Reflowing Marked Text for the steps to adjust an old paragraph to the new settings. Note: Use the Settings dialog to permanently change the default margins. ═══ 7. Controlling OS/2 with EPM ═══ It is possible to execute many OS/2 commands from the EPM Command Line. If you don't need to see the command's output, or respond to any prompts, you can simply enter the command on the EPM Command Line. For example, erase tempfile or start someprogram A few OS/2 commands (for example, CD and DIR) have EPM front-ends defined which let you see the output inside EPM. For any other OS/2 command for which you need to see the output, you have two choices: OS2 command This opens up an OS/2 windowed command prompt to execute the specified command. SHELL command This creates a new file in the edit ring that is connected to an OS/2 command prompt. OS/2 commands entered in this window will have their output appear asynchronously in the edit window. ═══ 8. Cursor Movement and Editor Features ═══ Cursor movement and editor features. ═══ 8.1. Cursor Movement ═══ The following is a summary of all of the key strokes which cause cursor movement: End Moves the cursor to the end of the line. Home Moves the cursor to the beginning of the line. PgDn Moves the line at the current cursor position forward (down) one screen. PgUp Moves the line at the current cursor position backward (up) one screen. Tab Moves the cursor to the next tab stop. Shift+Tab Moves the cursor to the previous tab stop. Shift+F1 Scrolls the screen left one column. Shift+F2 Scrolls the screen right one column. Shift+F3 Scrolls the screen down one row. Shift+F4 Scrolls the screen up one row. Shift+F5 Scrolls the screen so that the line at the current cursor position is vertically centered. Ctrl+F5 Moves the cursor to the beginning of the current word. Ctrl+F6 Moves the cursor to the end of the current word. Ctrl+Enter Moves cursor to the beginning of the next line. Ctrl+Left Moves the cursor to the beginning of the word to left of cursor. Ctrl+Right Moves the cursor to the beginning of the word to right of cursor. Ctrl+End Moves the cursor to the end of the document. Ctrl+Home Moves the cursor to the beginning of the document. Ctrl+PgUp Moves the cursor to the top of the screen. Ctrl+PgDn Moves the cursor to the bottom of the screen. Alt+Y Moves cursor to beginning of marked block. Alt+E Moves cursor to end of marked block. Del Deletes the character at the current cursor position. Ins Switches between insert and replace modes. Several EPM Commands also can be used to move the cursor to a new location. These are as follows: #### Moves the cursor to line ####. +#### Move the cursor forward in the file #### lines. .-#### Move the cursor back in the file #### lines. BOTTOM Move the cursor to the bottom of the file. TOP Move the cursor to the top of the file. The mouse has the following functions: Button 1 single click Move cursor to mouse. Button 1 single click and drag Block mark as you drag. Button 2 single click and drag Line mark as you drag. Button 1 + Ctrl-key + drag Character mark as you drag. Button 1 double-click UNMARK. Button 2 double-click Move cursor to mouse and MARK the WORD. Note: Mouse action is configurable via macro language ═══ 8.2. Drawing Boxes ═══ EPM allows you to draw boxes around an area of text using graphic characters. To do this it is first necissary to create a block mark. For information on creating block marks see Block Marks. When the box is drawn it will encircle the area in this block. After creating the block mark, to insert the box issue the BOX at the EPM Command Line followed by one of the following arguments: 1 thin, single line 2 thin, double line 3 dotted line 4 thick line 5 double, thin line horizontally; single, thin line vertically 6 double, thin line vertically; single, thin line horizontally C creates a box comment using the C language syntax P creates a box comment using the Pascal language syntax A creates a box comment using Assembler syntax E erases the box around the marked area R reflows text in marked area B places spaces on all sides of the marked area, i.e. creates a box of blank spaces /character Any character which follows the slash ( / ) will be used to form a box. For example, if you wished surround a marked area with a thick line you would enter the following at the EPM Command Line: BOX 4 ═══ 8.3. Searching and Replacing ═══ Procedures and options for searching and replacing text within a file. ═══ 8.3.1. Searching for Text ═══ Type in a search command and press the ENTER key. The search command has the following syntax: /find-this-string/ [options] or L /find-this-string/ [options] where the options have the following meaning: - Search from current line backwards, to top of file or to top of marked area if m option chosen, but still searches left to right within each line. + Search forward, from current line to bottom of file. m Search within the Marked text area only. a Search All of the current file. c Ignore upper/lower Case of the search string. e Do not ignore case, look for Exact matches. r Reverse search from Right to left through lines. Default search is left to right through lines. f Forward search from left to right through lines. g Use the grep algorithm. See The grep option. x Use the extended grep algorithm. See Extended grep. (EPM 5.60 or above is required for the use of extended grep.) w Search for the search string as a separate word. (EPM 6 only) ~ Search for a line which does not contain the search string. If successful, the cursor will be positioned at the starting point of the search for that line (the cursor position, if found on the first line, or the left edge of the mark if the M option was used and a block mark exists, or else column 1), and the length of the match will be the remainder of the line. (EPM 6 only) Multiple options may be given at one time. Examples: /Word in paragraph/c l $/$ In the second example above, '$' is the delimiter and '/' is the string for which to search. The default search options (if you specify nothing) are: 1. search all the file (not only the marked area) 2. in the forward direction 3. not ignoring case (requiring exact matches). The search string delimiter is the first non-blank character after the L. If the delimiter is a '/' then the L is optional. If the delimiter is any other character, both the L and at least one space following it are required. The same is true of the 'C' command. If you wish to find the next occurrence of the same string, press the Ctrl-F key. ═══ 8.3.2. Searching and Replacing Text ═══ Type in a change command and press the ENTER key. The change command has the following syntax, very similar to that for search: c /find-this-string/replace-with-this/ [options] where the options can be one or more of the following characters: * Change all matching strings. - Search from current line backwards, to top of file or to top of marked area if m option chosen, but still searches left to right within each line. + Search forward, from current line to bottom of file. m Search within the Marked text area only. a Search All of the current file. c Ignore upper/lower Case of the search string. e Do not ignore case, look for Exact matches. r Reverse search from Right to left through lines. Default search is left to right through lines. f Forward search from left to right through lines. g Use the grep algorithm. See The grep option. x Use the extended grep algorithm. See Extended grep. (EPM 5.60 or above is required for the use of extended grep.) n (Noisy) - Provide a message indicating how many changes occurred. (EPM 6 only) w Search for the search_string as a separate word. (EPM 6 only) k Match the case of each character in the replacement string, to the case of the corresponding character in the search string. If the replacement string is longer than the search string, the case of the last alphabetic character in the search string will be used for all unmatched characters in the replacement string. (EPM 6 only) It can be seen that these options are the same as those for search, with the addition of *, n, and k. Multiple options may be given at one time. If contradictory options are given (such as ce) the last such option is the one used. Examples: c /mispeled/misspelled/* c $/$/*$ (change / to /* ) c/This/That/e+w (change 'This', but not 'Thistle') Note: Any search string delimiter may be used (not only slash) after the 'c' and at least one blank. The blank is optional if the delimiter is a slash. If you wish to find the next occurrence of the same string press the Ctrl-F key. If you wish to repeat the same change command, issue C without arguments or use the Ctrl-C key combination. If the * option is not used, then only the first occurrence of the search string found will be changed. If the * option is used, then all occurrences of the search string that are found will be changed. If you wish to change some and not others, you can use the Search / Replace dialog, either by selecting it from the Options pulldown, or by pressing Ctrl-S to bring it up. Note: The Grep option only applies to the search string, not to the replacement string. If you enter: c /(.*)/<.*>/ g then EPM will find the first occurrence of a left parenthesis, followed by any sequence of characters, and ending with a right parenthesis, and replace it with the literal string <.*>. It will not change the parentheses to angle brackets and leave the enclosed text unchanged. The eXtended grep option can be used to do this in EPM 5.60 or above (with slightly different syntax). ═══ 8.3.3. The grep option ═══ The grep option, 'g', allows you to specify special pattern matching characters within the search string. These characters are: Character: What it matches: '.' (period) matches any character. '^' (caret) matches the beginning of a line. '$' when it follows the search string, it matches the end of a line. '\'character matches character; used to override any special meaning given to characters. '['list_of_characters']' matches any of the characters in the list. A list of characters can be indicated as a range using the '-' (hyphen). For example, [a-z] will match with any letter of the alphabet. If the first character after the '[' is a '^', then the set is negated, i.e., will match any character except those in the set. '*' matches a sequence of 0 or more of whatever expression it follows. '+' matches a sequence of 1 or more of whatever expression it follows. Examples will be presented that search the following file: Contents of file junk.e: soft good junk and more stuff even good 123456 l do,re,mi,fa,so,la,ti,do $35 -------------------------------------- Example searches using grep: /l./g finds 'la' /^good/g finds only first occurrence of 'good' /good$/g finds only 'even good' /\$/g finds '$35' /^[m-t]/g finds 'soft' and 'stuff' /^[^adeg]/g finds 'soft', 'stuff', '123456', 'l', and '$35' /^[m-t]+/g finds 'soft' and 'stuff' /^[m-t]*/g finds everything Note: The above examples are as you would enter them on the EPM command line. When using the Search dialog, you would enter the search string (everything between the '/') in the Search field, and select the Grep option in the Options section of the dialog. ═══ 8.3.4. Extended grep ═══ The extended grep option, 'x', allows you to specify special pattern matching characters within the search string. This includes all those supported for standard grep searches, and the following search string additions: '\b' matches a backspace character. '\c' specifies the cursor position if a match is found. '\f' matches a form feed character. '\n' matches a newline character. '\r' matches a carriage return character. '\t' matches a tab character. '\x'HH matches a character with ASCII code 0xHH. '\z' matches an ASCII NUL character (0x00). ':a' matches an alphabetic character; equivalent to [a-zA-Z] ':c' matches a C language identifier; equivalent to [a-zA-Z_$][a-zA-Z0-9_$]* ':d' matches a digit; equivalent to [0-9] ':f' matches a C language function definition; optimized for usage in C tags support. ':h' matches a hexadecimal number; equivalent to [0-9a-fA-F]+ ':i' matches an integer; equivalent to [0-9]+ ':n' matches an alphanumeric character; equivalent to [a-zA-Z0-9] ':o' matches optional whitespace; equivalent to [ \t]* ':q' matches a quoted string; equivalent to "[^"]*"|'[^']*' ':r' matches a Rexx language identifier; equivalent to [a-zA-Z!?_][a-zA-Z0-9!?_]* ':w' matches whitespace; equivalent to [ \t]+ ':x' matches a hexadecimal digit; equivalent to [0-9a-fA-F] '|' alternation, matches either what appears on the left or what appears on the right. '(' ')' parentheses are used for grouping, and also for creating subexpressions for use in the replacement string. '~' negation, fails if the following string or expression is present '@' Minimally matches a sequence of 0 or more of whatever expression it follows. (Similar to '*', but '*' does a maximal match.) '#' Minimally matches a sequence of 1 or more of whatever expression it follows. (Similar to '+', but '+' does a maximal match.) Note: The classes that match more than one character are more efficient than the equivalent shown, because (for example) :w will match all whitespace as a single unit, whereas [ \t]+ could back up over each matched character in an attempt to match what follows in the search string. Extended grep also adds the following replacement string additions: '&' represents the entire matched string '\'n (where n is '0' - '9') represents the corresponding subexpression of the matched string. Each subexpression refers to the contents of a parenthesized expression, where \1 represents the string matched between the first open parenthesis and its corresponding close parenthesis, \2 the second, etc., and \0 represents the entire match (equivalent to '&'). '\&' represents the '&' character. '\\' represents the '\' character. '\b' represents a backspace character. '\f' represents a form feed character. '\n' represents a newline character. '\r' represents a carriage return character. '\t' represents a tab character. '\x'HH represents a character with ASCII code 0xHH. '\z' represents an ASCII NUL character (0x00). Some examples: /pro(gram|cedure)/ matches 'program' or 'procedure'. /function:o\(:o\c/ matches 'function', optionally followed by spaces or tabs, followed by an open parenthesis, and places the cursor on the first non-blank character after the parenthesis. c /id=(:c)/id='\1'/ x* changes all strings of the form id=some_string to id='some_string'. (I.e., it adds single quotes around the parameter, no matter what it was.) c /(myfunc:o\()([^,]*,)/\1 Global, \2 NULL,/*x adds a new first and third parameter to all 'myfunc' calls. The first parenthesized expression matches 'myfunc', optional whitespace, and an open parenthesis. The second matches everything up to the next comma. The replacement string uses both of these, adds ' Global, ' after the open parenthesis, and adds the string ' NULL,' at the end. This would convert 'myfunc(first, second)' to 'myfunc( Global, first, NULL, second)'. /DosFree~Seg)/ x Matches an occurrence of the string 'DosFree', which is not followed by 'Seg'. Note: EPM 5.60 or above is required for the use of extended grep. ═══ 8.4. Adding and Multiplying Numbers ═══ If you need to add columns or rows of hex, octal or decimal numbers, EPM provides both an add and multiply command. Just mark a block of text (Alt-B or Alt-L) and issue the ADD or MULT command on EPM command line dialog. Each line of text may contain a mathematical expression which is valid input for the math command (See Calculating Mathematical Expressions). Steps to operate on a column or row of numbers 1. Highlight the text you wish to add or multiply. This can be accomplished by pressing Alt-B once at the top left corner of the column and again at the bottom right corner of the column of numbers. When you finish marking the end of the text, EPM will highlight the text in between to show you the column of text you have marked. 2. Press Ctrl+I to get to EPM command line dialog. 3. Type add or mult and press ENTER. ═══ 8.5. Calculating Mathematical Expressions ═══ If you need to add/subtract/multiply/divide hex, octal, or decimal numbers, EPM provides a set of math commands that compute an arithmetic_expression of the following syntax: arithmetic_expression: arith_term {arith_operator arith_term} arith_term: decimal_number | hexadecimal_number | octal_number '(' arithmetic_expression ')' arith_operator: '+' (addition) '-' (subtraction) '*' (multiplication) '/' (division) '%' (integer division) '//' (remainder) Hexadecimal (base 16) numbers must be preceded by a 'x', e.g. x10 = 16. Octal (base 8) numbers must be preceded by an 'o', e.g. o12 = 10. For example, the following can be typed on the command line dialog: math 123 * 4567 math 1.2 * 3.45 + 2 math arithmetic_expression The math command computes the expression and displays the result as a decimal number. mathx arithmetic_expression The mathx command computes the expression and displays the result as a hexadecimal number. matho arithmetic_expression The matho command computes the expression and displays the result as an octal number. Try some of the following math commands. math -10 + 40 mathx -xff + 10 matho o11 * (xff - 10) The above examples would yield 30, xFF0B, and o4325 respectively. ═══ 8.6. Drawing ═══ Using graphics characters to draw boxes and diagrams is easy in EPM. The DRAW command can be typed at the command line dialog, or F6 can be pressed. If you invoke the command without any parameters, the visual representations of the parameters: 1, 2, 3, 4, 5, 6, B, or /any char will appear in the editor message line. To enable drawing mode, you must issue the draw command with one of these parameters. For example, Draw 2 You are now in draw mode, which means that the cursor becomes like a paint brush: everywhere you move the cursor, a double line is drawn. If you want to draw a box, trace the shape with the cursor using the arrow keys (Left, Right, Up and Down). If you want to enter text or wish to move the cursor without drawing anything, i.e. lift the paint brush, press the Ins key. This will suspend the drawing without exiting draw mode. To begin drawing again, simply press the Ins key again. Pressing any key besides those on the numeric keypad, will cause draw mode to end. You can also draw figures with characters other than the line graphics characters provided. By typing the following on the command line: Draw /( you could draw figures composed of left parentheses. This will work with any character on the keyboard, as long as you precede the character by a slash (/). ═══ 8.7. Mini-Macros - Keystroke Sequences ═══ You can record (Ctrl-R) and play back (Ctrl-T) a sequence of keystrokes. Such a recorded sequence constitutes a temporary mini-macro which can be repeatedly executed. Any time you find yourself entering the same key sequence more than twice, think of recording them. The keystroke recording is retained until you change it by making a new recording, or until you leave the editor. To record a sequence of keys, press Ctrl-R. You'll be prompted: Remembering keys. Ctrl-R to finish, Ctrl-T to finish and try, Ctrl-C to cancel. Type your sequence of keys. Virtually any key can be recorded, including Esc to switch to the command line dialog. (However, anything typed into the command line isn't seen by the recorder.) The keys will be executed as you're typing. Press Ctrl-R again to finish the recording. If you wish to cancel, press Ctrl-C instead. Whenever you wish to replay the sequence, press Ctrl-T. Notice that you can also press Ctrl-T during the recording. This is only a shortcut; it has the same effect as pressing Ctrl-R to finish the recording and Ctrl-T to replay it immediately. ═══ 8.8. Entering Control and Graphic Characters ═══ You can enter PC graphic characters (those with extended ASCII codes greater than 127) with Alt-keypad numbers. For example, to enter the symbol for the Greek character pi (represented by the code 227), hold down the Alt key, type 227 on the numeric keypad, and release the Alt key. ═══ 8.9. Syntax-Directed Editing Features ═══ EPM provides syntax directed editing for PASCAL, C, Rexx and E files. When the Enter key or Space bar is pressed, EPM looks at the first word in the line and keys in the rest of the structure if it understands it. Structure expansion includes if statements, loops, case statements, and comments. Typical syntax-directed editing features may be demonstrated by the following sequence: edit newfile.c (edit a new file called newfile.c) Type characters indicated below main if Pressing the in both instances above should have inserted the rest of the main and if structures. If you find automatic expansion distracting you can turn it off. See the EXPAND command and the MY_EXPAND_ON configuration option. If you prefer, you can omit syntax assist for any language by using the C_SYNTAX_ASSIST, E_SYNTAX_ASSIST, P_SYNTAX_ASSIST, or REXX_SYNTAX_ASSIST constants, or for all of them with ALTERNATE_KEYSETS. Ctrl-X expands syntax even if the syntax expansion option is off, as long as support was compiled in for that language. EPM will automatically expand the syntax of the Pascal, C and E languages according to the file's filename extension. For example, if the user edits a file called test.e, the editor knows this file will contain E language programs. Box comments can also be created easily according to the syntax particular to the language. For more information, refer the BOX command entry. ═══ 8.10. Stream Versus Line Mode ═══ There are two basic types of editors for editing text files, a stream editor and a line editor. A stream editor treats the file as one long stream of text. A line editor treats the file as a series of individual lines, separated by a line end character. Stream mode In a stream editor, a new-line character (generally an ASCII line-feed character) is treated like any other character. It can be inserted into the text stream, breaking the line into two at that point, or it can be deleted from the text stream, joining the two lines on either side of it. As you move the cursor left and right, when it passes the beginning or end of one line, it moves to the end or beginning of the next - because although you see individual lines on the display, it's actually one long stream internally. Also, when you move the cursor up and down, if you move it over a shorter line, the cursor bounces to the left; if you continue moving it up or down to a longer line, it bounces back to the original column. Line mode The Enhanced Editor is a line editor. If you move the cursor left or right, it stays on that line. You can move the cursor beyond the end of the line. If you do so, and then start typing text, the editor will fill in spaces between the previous end of the line and the characters you have added. Since the new-line character does not actually exist in the file once loaded, there is no concept of inserting or deleting a new-line. Pressing the Enter key (by default; another key can be chosen) adds a new line after the current line, but it doesn't split the line; it adds a new, empty line between the current line and the following line, regardless of the cursor position. Since some users are accustomed to using a stream-mode editor, the Enhanced Editor can be configured to act like one. Related Information: Enabling stream-mode editing ═══ 8.11. Enabling Stream-Mode Editing ═══ To enable stream-mode editing: 1. Select Options. 2. Select Preferences. 3. Select Stream editing. ═══ 9. The Action Bar Pull-Down Menus ═══ In this section each action bar menu is pictured. Below each picture is a description of the menu options. ═══ 9.1. File ═══ The file pull down menu list actions to be done on files. For more information on loading files see Adding Files to an Edit Ring. The File action bar menu contains the following entries: New Replaces the current file with a new file named .Untitled. You must name the file by using Rename. If the current file has been modified, you will be asked if you want to save it before continuing. Open .Untitled Opens a new edit window with .Untitled used as the file name. Open... Opens a new edit window. A window appears, in which you can type the names of one or more files. If you select Open without typing a name, .Untitled is used as the file name. Import text file... Retrieves a file and inserts it into the current file being edited. The file is inserted starting after the current line. A window appears, in which you can type the name of the desired file. Add file... Add files to the current edit window. A window appears, in which you can type the name of one or more files. Rename Changes the name of the file being edited. A window appears ready for you type a file name. Save Stores the current file on disk. Save as... Assigns a name to the current file, then stores the file on disk. It is equivalent to Rename followed by Save. Save and quit Stores the current file and, if there were no errors storing it, removes the file from the edit window. If this is the only file in the current edit window, the window closes. Quit Removes the current file from the edit window. If there are unsaved changes, you are asked if you wish to save the changes, discard them, or cancel the Quit. When you quit the last file in the edit window, the window closes. Print file... Prints the current file. ═══ 9.2. Edit ═══ The Edit action bar menu contains the following entries: Undo line Reverses any changes that you just typed on the current line. If you select this in error, you can immediately select it again to redo the changes. Once you move the cursor off the line, the changes are committed and you cannot use Undo line to remove them, instead; you must use Undo. Undo... Displays a window which allows you step through the changes you have made to the file. Copy Copies the marked text to the clipboard. Cut Copies the marked text to the clipboard, and then deletes it from EPM. Paste Inserts text from the clipboard into the current file, following the cursor position. The text from the clipboard is treated as a character mark - that is it is treated as a stream of text, possibly containing embedded line breaks, rather than as a series of lines. Paste lines Copies text from the clipboard into the current file, following the cursor position. Each line of text in the clipboard is added as a new line in EPM. Paste block Inserts text from the clipboard into the current file, following the cursor position. The clipboard text is treated as a block mark, surrounded by the smallest possible bounding rectangle. Style... Changes the font or color of the marked text. Copy mark Copies the marked text to the current cursor position. Move mark Moves the marked text to the current cursor position. Overlay mark Overwrites the text at the current cursor position with a copy of the marked text. Adjust mark Overwrites the text at the current cursor position with the marked text and leaves blanks in place of the source text. Unmark Removes any mark that exists in this window. The marked text is not changed. Delete mark Erases the marked text. If the mark is a block mark, the text that is marked is erased, but the space remains in the file. Push mark Saves the location of a mark. You can then select Unmark, mark other text, manipulate it, and then select Pop mark to restore the original mark. Note: Only the boundary of the mark is saved, not the contents. Pop mark Restores the location of a previous mark. Swap mark Exchanges the current mark with the topmost mark on the stack (the most recently pushed mark). Push cursor Saves the current cursor position. You can later select Pop cursor to jump back to the same place in the same file. Pop cursor Restores the previous cursor position. Swap cursor Exchanges the current cursor position with the topmost position on the stack (the most recently pushed position). Note: The above 6 entries will only be present if Stack Commands is enabled on the Preferences menu, or if they are configured in with the WANT_STACK_CMDS option. Print mark... Prints a copy of the marked text. ═══ 9.3. Search ═══ See Searching and Replacing for more information about searching and replacing text. The Search action bar menu contains the following entries: Search Displays the Search window, which enables you to search through the file or change one string to another. Find next Repeats the previous Find command. Change next Repeats the previous Change command. Bookmarks A cascade menu which has the following choices: Set... Displays a window that enables you to create a bookmark at the current cursor position. List... Displays a list of bookmarks for the current file. You can place the cursor at a particular bookmark by selecting it from the list. Next Places the cursor at the next bookmark. Previous Places the cursor at the previous bookmark. Tags A cascade menu which has the following choices: Find current procedure Looks up the procedure at the cursor position in the tags file; if found, positions you in the source file where that procedure is defined. Find procedure... As above, but presents an entry field where you can type in the name of a procedure to be located. Tags file name... Displays (and lets you change) the name of the tags file in use. Make tags file... Presents a dialog in which you can enter a list of source files, in order to create or update the current tags file. Note: The Tags menu is present only in EPM 5.60 or above, and only if the WANT_TAGS configuration option is set. See the EPM 5.60 / 6.00 online help for a description of what tags files are. ═══ 9.4. Options ═══ The Options action bar menu contains the following entries: List ring... Lists the files in the edit ring. From the list, you can select any file and make it the current file. Proof Spell-checks the file or marked area. Proof word Spell-checks the word at the cursor position. Synonym Displays a list of synonyms for the word at the cursor position. Note: LEXAM.DLL is required to be in the LIBPATH for the above 3 options to work. If CHECK_FOR_LEXAM is set in the configuration file, these menu selections will not be displayed if LEXAM.DLL is missing. Preferences Switchs edit-window options or displays the Settings window. Settings Displays a window, from which you can change editor configuration settings (such as color and fonts). Advanced marking Switchs between the basic marking mode and the advanced EPM marking mode. The mode of marking that you use affects the way your mouse works. Stream editing Switchs between stream-mode and line-mode editing. Ring enabled Allows multiple files to exist in the edit ring. The edit ring always exists, but unless you select this option, the editor prevents you from loading more than one file at a time into it. A check mark appears next to this choice if it is currently active. Stack commands Controls whether the stack-related commands are present on the Edit menu. CUA accelerators Toggles whether the Alt+letter keys corresponding to action bar mnemonics perform the EPM-defined actions or whether they activate the corresponding menu item. Note: If the configuration options are set such that nothing would be on the Preferences menu but Settings, then Settings is instead displayed on the main Options menu in place of Preferences. Autosave... Displays the autosave file name and the number of changed lines per autosave. You can also list the autosave directory. Messages... Allows you to review displayed editor messages. Frame controls Configures various edit window frame controls. Status line Switchs the status line on and off. Message line Switchs the message line on and off. Scrollbars Toggles the scroll bars on and off. Rotate buttons Switchs the rotate buttons on and off. Info at top Switchs the position of the Information window between the top and the bottom of the edit window. The information window is composed of the status line and the message line. Prompting Toggles whether prompts are displayed when menu choices are selected. Displaying the prompts forces the Information window to be displayed at the bottom of the edit window instead of at the top. Note: The menu prompting is done through an internal command that is called whenever a menu choice is selected. Therefore, the prompting will not appear while another command is processing. This ensures that you will always be able to select Halt command to stop processing. Save options Stores the current settings of the frame controls, Preferences options, the size and position of the edit window, and a few command settings (PROFILE, LONGNAMES, TABKEY and ESCAPEKEY). The next time an edit window is opened, these same settings are used. Book icon Activates EPM book icon, from which you can close EPM or list all edit windows. Note: This selection is only present if SUPPORT_BOOK_ICON is set in the configuration file. ═══ 9.5. Command ═══ The command menu allows access to the command line dialog. Commands that can be entered are listed in the EPMCommands Described section. The Command action bar menu contains the following entries: Command dialog Brings up the EPM Command Line dialog box. Halt command Stops the execution of the current command. Create shell Creates a command shell, an OS/2 command prompt where you can type commands. The output appears in an edit window while other programs are running. Write to shell Writes a string to the command shell. The string is generally a command, but can also be the response to a prompt in the shell window. Note: The Create shell and the Write to shell menu choices only apear if a SHELL command has been given. ═══ 9.6. Help ═══ EPM includes two types of help. You can browse the EPMHELP.HLP file, which lists the basic commands and key definitions, or you can use the Help Manager to view help panels containing hypertext links. Pressing F1 will place you in the Help Manager viewing the EPM help Table of Contents. ═══ 10. The Function Keys ═══ The function keys are designed to perform a series of actions or tasks when you press them. The function keys are bound to the most common editorial tasks, so that you may perform these tasks with one simple push of a button. The following sections contain a discussion of the action performed when one of the function keys is pressed in any of the shift states. ═══ 10.1. F1-F12 ═══ This section explains the actions of the 12 base function keys F1 to F12 as implemented in the standard EPM package. F1=Help The F1 key brings up the Help Manager, displaying the Contents page for EPM help. F2=Save To save the current file without exiting, press the F2 key. F3=Quit The F3 key will remove your file's text from the file ring without saving it. If your file has been modified, you will be asked whether you really wish to throw away the changes. When you quit from the last (visible) file of the last ring, you will exit to OS/2. F4=Save & Quit To save your file and remove it from the file ring press F4. When you quit from the last (visible) file of the last ring, you will exit to OS/2. F5=Open To start editing a file on a new ring press F5, type the filename, and press Enter. The ESC key will cancel the request. You can enter more than one filename separated by a space, and can specify wild cards in filenames like *.doc or *.c. F6=Draw To start drawing text graphics press F6. Then type a number (1 through 6), B for blank, or / followed by any character. You will be able to create or erase text graphic drawings by moving around with the cursor keys. See section Drawing Lines for more information. F7=Name To change the name of the file you are editing press F7, type the new name and press enter. This does not change the name of the previous copy on disk; it changes the name the file will next be saved under. Renaming is a good way to start a revised copy without losing the original file. F8=Edit To edit another file on the same ring press F8, type the filename, and press Enter. The ESC key will cancel the request. You can enter more than one filename separated by a space and wild cards are allowed in filenames. Press the F11 and F12 (or Ctrl-N and Ctrl-P) keys to switch between the files you are editing. F9=Undo If you mistype a change to a line, you can restore its original contents by pressing F9. Undo does not restore deleted lines or changes to multiple lines. Only the current line you are editing can be restored. F10=Action Bar Press F10 to toggle between the action bar and the text. Pressing and releasing Alt without combining it with any other keystrokes will also toggle between the action bar and the text. Note: F10 no longer moves to the next file in the ring. Use F11/F12 or Ctrl-N/Ctrl-P to change between files. F11=Previous If you have loaded multiple files (F8 key or Edit command) in a ring press F11 to switch to the previous file in the ring. F12=Next If you have loaded multiple files (F8 key or Edit command) in a ring press F12 to switch to the next file in the ring. ═══ 10.2. Alt-F1 - Alt-F12 ═══ This section explains the actions performed when the Alt key and one of the 12 function keys is pressed simultaneously. Not all Alt-Fn keys have a specific action bound to them. The following is a description of those keys that do perform some function. Alt-F1=LineChars The Alt-F1 key prints all the characters with which you can draw a line or box. This line of characters is printed at the cursor location. Alt-F7=ShiftWindow To move EPM editor window use the Alt-F7 key combination to pickup the window, the arrow keys to move the window, and the enter key to drop the window. Alt-F8=SizeWindow To resize EPM editor window use the Alt-F8 key combination to enter the size mode, the arrow keys to enlarge/shrink the window, and the enter key to enact the changes. The first arrow key movement determines which side will be altered. For instance, to shrink the left boundary, the user would type Alt-F8, the left arrow key, as many right arrow keys as needed, and then the enter key to enact the size change. Alt-F9=Minimize To minimize (iconize) the current EPM session use the Alt-F9 combination. Alt-F10=Maximize To maximize (enlarge EPM screen) use the Alt-F10 combination. Note: The Alt-F10 key combination is no longer used to switch between files in a ring. Instead use F11 or Ctrl-P to move to the previous file in a ring and F12 or Ctrl-N to move to the next file in a ring. ═══ 10.3. Shift-F1 - Shift-F12 ═══ This section explains the actions performed when the Shift key and one of the 12 function keys is pressed simultaneously. Not all Shift-Fn keys have a specific action bound to them. The following is a description of those keys that do perform some function. All the Shift-Fn keys control screen scrolling. This is different from the cursor movement keys, because scrolling causes the contents of the screen to be moved while the cursor remains stationery. Shift-F1=ScrlLeft The Shift-F1 key scrolls the screen to the left. Shift-F2=ScrlRight The Shift-F2 key scrolls the screen to the right. Shift-F3=ScrlDown The Shift-F3 key scrolls the screen down. Shift-F4=ScrlUp The Shift-F4 key scrolls the screen up. Shift-F5=CenterLine The Shift-F5 key scrolls the screen so that the line that the cursor is on is centered vertically. ═══ 10.4. Ctrl-F1 - Ctrl-F12 ═══ This section explains the actions performed when the Ctrl key and one of the 12 function keys is pressed simultaneously. Not all Ctrl-Fn keys have a specific action bound to them. The following is a description of those keys that do perform some function. Ctrl-F1=UpperWord The Ctrl-F1 key converts a word to entirely uppercase letters. The word is specified by placing the cursor anywhere on the word before pressing the Ctrl-F1 key. Ctrl-F2=LowerWord The Ctrl-F2 key converts a word to entirely lowercase letters. The word is specified by placing the cursor anywhere on the word before pressing the Ctrl-F2 key. Ctrl-F3=UpperMark The Ctrl-F3 key converts all text in a marked area to entirely uppercase letters. Ctrl-F4=LowerMark The Ctrl-F4 key converts all text in a marked area to entirely lowercase letters. Ctrl-F5=BeginWord The Ctrl-F5 key moves the cursor to the first character of the word upon which the cursor is presently placed. Ctrl-F6=EndWord The Ctrl-F6 key moves the cursor to the last character of the word upon which the cursor is presently placed. Ctrl-F7=Shift mark left The Ctrl-F7 key moves a marked area left. Ctrl-F8=Shift mark right The Ctrl-F8 key moves a marked area right. ═══ 11. Key Definitions Summary ═══ --- Function keys --------------------------------------------- Unshifted Alternate Shifted Ctrl --------- --------- ------- ---- F1 Help menu Show draw chars Scroll left Uppercase word F2 Save and continue Scroll right Lowercase word F3 Quit w/o save Scroll down Uppercase mark F4 Save and quit Close EPM Window Scroll up Lowercase mark F5 Edit in new ring Restore Window Center line vrt. Crsr to bgn wrd F6 Draw Crsr to end wrd F7 Change filename Move EPM window Move area left F8 Edit new file Size EPM window Move area right F9 Undo cur. line Minimize F10 Goto action bar Maximize F11 Previous file F12 Next file --- Alt keys -------------------------------------------------- Alt-A : Adjust marked area, blank old Alt-O : Overlay blocked area Alt-B : mark Block Alt-P : reformat following Paragraph Alt-C : Copy mark Alt-Q : Alt-D : Delete marked area Alt-R : Reflow marked area Alt-E : cursor to End of marked area Alt-S : Split line at cursor Alt-F : Fill marked area Alt-T : cenTer Text in marked block Alt-G : Alt-U : Unmark Alt-H : Alt-V : Alt-I : Alt-W : mark Word Alt-J : Join (with following line) Alt-K : Alt-Y : cursor to beginning of mark Alt-L : mark Line Alt-Z : mark, character mode Alt-M : Move marked area Alt-1 : Edit filename on current line Alt-N : keyin file Name at cursor Alt-= : Execute the current line -- Ctrl keys ------------------------------------------------- Ctrl-A : Ctrl-N : Next file in ring Ctrl-B : list Bookmarks Ctrl-O : Open file Ctrl-C : Change next occurrence Ctrl-P : Previous file in ring Ctrl-D : Delete word Ctrl-Q : Toggle for ALL /search_string/ Ctrl-E : Erase to end of line Ctrl-R : Record remembered key sequence Ctrl-F : repeat previous Find command Ctrl-S : pop Search dialog Ctrl-G : list edit rinG Ctrl-T : play remembered key sequence Ctrl-H : keyword Help Ctrl-U : Ctrl-I : Goto EPM Command Line Ctrl-V : Ctrl-J : Ctrl-W : Ctrl-K : duplicate line Ctrl-X : force syntaX expansion Ctrl-L : copy Line to cmd line dialog Ctrl-Y : change stYle Ctrl-M : insert line; keep cursor pos.Ctrl-Z : Ctrl-2 : inserts ASCII null Ctrl-Bkspc : delete line ═══ 12. EPM Commands ═══ Commands which may be executed from the EPM Command Line. ═══ 12.1. The EPM Command Line Dialog ═══ EPM editor has a command line dialog used to issue internal commands and external macros. The command line dialog is invoked by pressing Ctrl+I or from the Command pulldown menu of the action bar. You may retrieve previous commands you have typed by pressing the up and down arrow keys (or using the mouse) while the cursor is in the dialog box. As you type a command, the editor will attempt to match what you're typing with an existing line in the selection list. At any point you can press Ctrl+O to select the matched line in the list, or Ctrl+F to find the next matching line. Ctrl+Backspace will delete the line from the list. The standard commands are shown in the next section. If you enter something other than one of these commands, EPM will pass the command line to the operating system for interpretation. When a command is issued, the editor searches for the executable code for the command in the following order: 1. user-defined command (a command defined by the user in a .E file using a DEFC construct and compiled into an .EX. file) 2. built-in command internal to the editor (i.e. those listed in the following section) 3. an external program, which is searched for according to the same rules as OS/2: a. looks for a .EXE or a .CMD file in current directory b. looks for a .EXE or a .CMD file in the directories listed in the PATH environment variable. In the next section upper case letters are to be taken literally, (i.e. should be entered as shown, but may be entered in either upper or lower case). Lower case words are descriptive, telling what kind of information is to be filled in. For example, the word filespec means any valid OS/2 file specification, d:\path\filename.ext. If the drive and path are omitted, the current values are assumed. The following symbols are used to describe the syntax of EPM commands more precisely: { } Zero or more repetitions of what is enclosed in the brackets. [ ] Zero or one of what is enclosed in the brackets. A | B Choice of either A OR B. ═══ 12.2. EPM Commands Described ═══ Detailed descriptions of all valid EPM Commands, as of the writing of this document. Selecting Help / Commands help in EPM will list these as well as any newer commands that might have been added. ═══ 12.2.1. #### (Go to line ####) ═══ Syntax: #### Goes to line number ####. Example: 321 Places the cursor on line 321. ═══ 12.2.2. + [####] (Go ahead #### lines) ═══ Syntax: +#### Moves forward (down) #### lines. If no number is specified, the cursor goes to the bottom of file. Example: +42 Moves the cursor ahead 42 lines. ═══ 12.2.3. - [####] (Go back #### lines) ═══ Syntax: -#### Moves backward (up) #### lines. If no number is specified, the cursor goes to the top of file. Example: -13 Moves the cursor back 13 lines. ═══ 12.2.4. /pattern/ - + M A C E R F G (Search for Text) ═══ Same as the L command. This / form saves a couple of keystrokes if the search string does not itself contain a slash. Additional options (X | W | ~) are available as of version 6.02. Refer to the L command for more information. ═══ 12.2.5. ACTIVATE_ACCEL (Activate an Accelerator Table) ═══ Syntax: ACTIVATE_ACCEL [table_name] Use ACTIVATE_ACCEL in a Rexx macro to activate the named accelerator table. If no name is given, the current accelerator table (which could have been updated with the BUILDACCEL command) is rebuilt. ═══ 12.2.6. ADD (Add Marked Numbers) ═══ Syntax: ADD Adds the marked block containing numeric expressions. See Adding and Multipling Numbers. Example: 1 2 3 4 If this text was marked and the ADD command was issued, the end result would be: 1 2 3 4 10 ═══ 12.2.7. ALL (Search Entire File) ═══ Syntax: ALL /search_string[/c] Will create a new file showing all occurrences of the search string given. The search string should be sandwiched between two delimiters (shown here as slashes). The C option cause ALL to ignore the case in the search. For example: ALL /find me/ ALL $and/or$c The first example will find all occurrences of the text find me The second example will find all occurrences of the text and/or. The c option is invoked on the second example, meaning that the text and/or can appear in any combinations of upper and lowercase, whereas find me must be in lower case. All lines with the search string located somewhere in the line will be listed in a separate file in the ring called .ALL. The key Ctrl+Q is set up so that if you press it while in the .ALL file, it will position you on the corresponding line in the original file. If you are not in .ALL, you will be placed there and the cursor will be moved down one line. This enables you to rapidly switch from .ALL to succeeding lines of the original. To use this command EPM.E must have been compiled with the variable WANT_ALL set to TRUE in your MYCNF.E file. ═══ 12.2.8. APPEND,APP (Append Text to File) ═══ Syntax: APPEND filename Appends marked text to the file filename. If no text is marked, the entire current file is taken as the source. See PUT for more details. Example: APPEND D:\HOTEL\FAULTY.DAT Appends the marked text to the file FAULTY.DAT which is located in the HOTEL directory of drive D. ═══ 12.2.9. ASC (Determine ASCII values) ═══ Syntax: ASC char Will determine the ASCII value of the char specified. This command is the opposite of the CHR command. Example: ASC * Returns the ASCII value of *. In this case this would appear in the message line: asc *=42 ═══ 12.2.10. AUTOSAVE (Set/View Autosave Values) ═══ Syntax: AUTOSAVE [ #### | ON | OFF | ? ] Saves the current file to a temporary file after #### number of modifications. If a number or on is specified, the name of the temporary file is shown. If ? is the parameter, the current autosave value (####) is displayed. Off stops the feature until the next Autosave ON or #### command. Note: These temporary files are saved in case of system or power failure. They are deleted as soon as you exit from the editor. ═══ 12.2.11. BM, SETMARK (Set Bookmarks) ═══ Syntax: BM | SETMARK [bookmark_name [ class [line [col] ] ] ] Sets a bookmark. If no arguments are given, the bookmark will be set the the current cursor position and a dialog box will appear prompting you for the name of the bookmark. The first argument, if given, will be used as the name of the bookmark to be created. The second argument is a flag which determines whether the bookmark is permanent (4) or temporary and can also be userd to group bookmarks. The DeleteBMClass command can be used to delete all bookmarks with the same class. The third argument is the line number where you wish the bookmark to be located. The final argument is the column number. Examples: BM introduction 1 Sets a permanent bookmark named introduction at the current cursor position. SETMARK marker 0 5 1 Sets a temporary bookmark named marker at line 5 and column 1. ═══ 12.2.12. BOTTOM, BOT (Move to Bottom of File) ═══ Syntax: BOTTOM | BOT | + Moves to bottom of file. ═══ 12.2.13. BOX (Draw Box) ═══ Syntax: BOX 1|2|3|4|5|6|C|P|A|E|R|B|S|/character Draws a box around a marked text block. The options will be listed on screen if the BOX command is issued with no parameter. The options are : 1 thin, single line 2 thin, double line 3 dotted line 4 thick line 5 double, thin line horizontally; single, thin line vertically 6 double, thin line vertically; single, thin line horizontally C creates a box comment using the C language syntax P creates a box comment using the Pascal language syntax A creates a box comment using Assembler syntax E erases the box around the marked area R reflows text in marked area B places spaces on all sides of the marked area, i.e. creates a box of blank spaces S creates a box comment using Script (Document Composition Facility) Comments /character Any character which follows the slash ( / ) will be used to form a box. Note: If you wish to create an E-style comment box, use the C option. Example: BOX C Will draw a C style comment box which will look something like this: /**************/ /* */ /**************/ Note: Styles 5 and 6 use characters that are used as national support characters, and may not look right in character sets other than the US Code Page. ═══ 12.2.14. BROWSE (Allow Updates to File Toggle) ═══ Syntax: BROWSE ON | OFF | ? The browse command allows the user to determine whether the file can be updated or not. The options are: ON the file can only be read, and not updated OFF the file can be both read and updated ? the browse status (ON or OFF) can be determined. ═══ 12.2.15. BUILDACCEL (Build Accelerator Table Entry) ═══ Syntax: BUILDACCEL table flags key index command Use BUILDACCEL to add an accelerator table entry to an accelerator. table is the name of the table to be updated; use '*' to indicate the currently active accelerator table. flags is a combination of flags corresponding to the AF_ constants in PMWIN.H in the OS/2 Toolkit, keys is an ASCII key value if flags = AF_CHAR; a VK_ constant from PMWIN.H if flags = AF_VIRTUALKEY, etc. (See the EPM Technical Reference for further details.) index is a unique number (unique in the active menu as well as the active accelerator table), and command is the command to be executed when the key is pressed. /* Rexx example of accelerator key definition */ AF_CHAR = 1 /* key style constants */ AF_VIRTUALKEY = 2 AF_SCANCODE = 4 AF_SHIFT = 8 AF_CONTROL = 16 AF_ALT = 32 AF_LONEKEY = 64 VK_F1 = 32 VK_ALT = 11 'buildaccel *' (AF_CHAR + AF_CONTROL) 122 9300 'sayerror Ctrl+z pressed' /* ASCII 122 = 'z' */ 'buildaccel *' (AF_CHAR + AF_CONTROL) 90 9301 'sayerror Ctrl+Z pressed' /* ASCII 90 = 'Z' */ 'buildaccel *' (AF_VIRTUALKEY + AF_ALT) VK_F1 9302 'qtime' /* Alt+F1 tells the time */ 'buildaccel * (AF_VIRTUALKEY + AF_LONEKEY) VK_ALT 9303 'sayerror F10 = action bar' /* Block Alt key from going to the action bar. */ 'activateaccel' /* No argument => use current table name. */ ═══ 12.2.16. BUILDMENUITEM (Add Menu Item to Pulldown) ═══ Syntax: BUILDMENUITEM menuname submenuid menuitemid submenutext attrib helppanel e_command Use BUILDMENUITEM in a Rexx macro to add menu items to an action bar pulldown. Buildmenuitem adds a menu item to the pulldown with ID submenuid in the menu named menuname. The text displayed on the pulldown will be submenutext (which can not contain spaces). The attribute will be attrib (see the menu calls in the OS/2 Technical Reference for the various attributes, or just use 0), the help panel resid that will be displayed if the user presses F1 while the menu item is selected is helppanel (0 if no help for that menu item), and e_command is the command that will be executed if that menu item is selected. All the menuitemid's must be unique. /* Rexx sample .erx file - adds "RexxInterface" to the action bar, */ /* with two menu entries under it. */ 'buildsubmenu default 1990 RexxInterface 0 0' 'buildmenuitem default 1990 1991 AddCommentFields 0 0 rx comment' 'buildmenuitem default 1990 1992 ShowRexxDateFormats 0 0 rx rxdates' 'showmenu default' The submenuids for the standard menus (defined in STDMENU.E) are: File 2 Edit 8 Search 3 Options 4 Command 1 Help 6 ═══ 12.2.17. BUILDSUBMENU (Build an Action Bar Pulldown) ═══ Syntax: BUILDSUBMENU menuname submenuid submenutext attrib helppanel e_command Use BUILDSUBMENU in a Rexx macro to create a new action bar entry. Buildsubmenu adds a pulldown to the action bar menu named menuname, as submenu number submenuid. The text displayed on the action bar will be submenutext (which can not contain spaces), the attribute will be attrib (see the menu calls in the OS/2 Technical Reference for the various attributes, or just use 0), the help panel resid that will be displayed if the user presses F1 while the menu item is selected is helppanel (0 if no help for that menu item), and e_command is the command that will be executed if that menu item is selected. It should be blank (omitted) if you want to define a pull-down; if a command is defined in the Buildsubmenu opcode then it will act immediately. If no command is defined, then the pull-down menu presented will be all the menu items added via Buildmenuitem calls that specified the same submenuid. ═══ 12.2.18. CD (Change Current Directory) ═══ Syntax: CD [path] If path is specified, changes current directory to path. If no path is specified, the current directory is shown as a message. Note: The CD command is not quite equivalent to the OS/2 CD command. In EPM the drive can be changed by issuing a CD command. For instance, even if you were in the directory: D:\EDIT\EPM, the following would work: cd e:\masm\files ═══ 12.2.19. CHANGE,C (Search and Replace Text) ═══ Syntax: CHANGE | C /find_string/replace_with/ [-|+|*|M|A|C|E|R|F|G|X] Changes the find_string to the replace_with string. The '/' may be changed to any character; the first character after the 'C' and at least one space is used as the string delimiter. (The space is optional if the delimiter is a '/'.) The third delimiter is needed only if options are specified. OPTION EFFECT - Search from current line backwards, to top of file or to top of marked area if m option chosen, but still searches left to right within each line. + Search forward, from current line to bottom of file. * Change all occurrences M Search within the Marked text area only. A Search All of the current file. C Ignore upper/lower Case of the search string. E Do not ignore case, look for Exact matches. R Search from Right to left through lines. Default search is left to right through lines. F Search from left to right through lines. G Use the grep algorithm. See The grep option. (See Steps to Search for a String and Replace It with Another for details.) Example: C /dead parrot/slug/* Will replace all of the occurrences of the string dead parrot with slug. ═══ 12.2.20. CENTER (Center Text) ═══ Syntax: CENTER If one or more lines are marked, centers the text on each marked line within the current margins. If a block is marked, the text in the block is centered within the limits of the block. If nothing is marked, centers the current line within the margins. Example: This isn't a lymrick 'cause ya can't sing it. If the above text was marked and the CENTER command was issued the result would look like this: This isn't a lymrick 'cause ya can't sing it. ═══ 12.2.21. CHR (Returns ASCII Character) ═══ Syntax: CHR ASCII_character_code Displays the character associated with the ASCII_character_code specified. The CHR command is the opposite of the ASC command. Example: CHR 42 Will place the following message in the message line: chr 42=* ═══ 12.2.22. CLOSE (Close All Files in Ring) ═══ Syntax: CLOSE CLOSE will close all the files in the current ring. The user will be prompted before closing any modified files in the ring. However, if the user chooses not to close any of the modified files, no files will be closed. ═══ 12.2.23. CONFIGDLG (Open Settings Dialog Box) ═══ Syntax: CONFIGDLG Brings up the Settings dialog box. ═══ 12.2.24. COPY2CLIP (Copy Marked Text to PM Clipboard) ═══ Syntax: COPY2CLIP Copies marked text to the PM clipboard for transfer between EPM files or with other PM applications. ═══ 12.2.25. CURSOR_STYLE (Set Cursor Shape) ═══ Syntax: CURSOR_STYLE [1 | 2 | cursor_dimensions] Sets the cursor shape. 1 gives a GPI-style cursor (vertical bar in insert mode), 2 gives a VIO-style cursor (underline in replace mode), and cursor_dimensions lets you specify the exact shape cursor you want, as follows: replace_width.replace_height insert_width.insert_height Each width and height value can be a positive number, representing the number of pixels wide or high the cursor should be, or a negative number, whose absolute value represents the number of 128ths of the character width or height the cursor should be. So, 2.-128 would represent a cursor 2 pixels wide and the same height as the current character. This command is only defined when DYNAMIC_CURSOR_STYLE = 1 is included in the configuration file MYCNF.E. ═══ 12.2.26. CUT (Cut Mark and Place in Clipboard) ═══ Syntax: CUT Calls COPY2CLIP to copy marked text to the PM clipboard, then deletes the marked text. ═══ 12.2.27. DELETEAUTOSAVEFILE (Delete Autosave File) ═══ Syntax: DELETEAUTOSAVEFILE Deletes any existing file which has been created by the AUTOSAVE command. ═══ 12.2.28. DELETEBM (Delete Bookmark) ═══ Syntax: DELETEBM bookmark_name Deletes the bookmark of the name bookmark_name. Example: DELETEBM the buck stops here Deletes bookmark with name the buck stops here. ═══ 12.2.29. DELETEMENU (Delete a Menu Item) ═══ Syntax: DELETEMENU menuname submenuid menuitemid itemonly Use DELETEMENU to delete an action bar or pulldown menu item. menuname is the name of the menu. submenuid is the pulldown submenu that is to be deleted. (To delete all submenus set this parameter to 0.) menuitemid is the item to start deleting off a particular submenu (To delete all menu items under a submenu, set this parameter to 0.) itemonly is true if it is desired to delete only the items under a sub-menu but not the sub-menu itself. ═══ 12.2.30. DIR (List Directory) ═══ Syntax: DIR [path] Opens a new file in the edit ring with a directory of the specified path, or if no path was specified, of the current path. You can use the equal sign = here as a shorthand for either the current file's directory or filename, as in the Edit command. See the Edit entry in this section for details. E.g., Dir =*.c Although the text in this window can be maniplulated in the same way as a regular file, it must be renamed before it can be saved. Common actions include: SORTing the directory and using the Alt-1 key combination to load the file listed on the cursor line for editing. Example: DIR C:\ANIMALS\RABBIT Lists the directory C:\ANIMALS\RABBIT. ═══ 12.2.31. DISPLAY (Change Message Display Actions) ═══ Syntax: DISPLAY number Use DISPLAY in a Rexx macro to control message display and screen updating. A negative number turns the display control off, and a positive number turns it back on. You can turn on or off multiple flags in one DISPLAY call by adding them together, provided they are all positive or negative. -1 turns off screen update; 1 turns it back on. -2 turns off the display of messages; 2 turns it back on. -4 forces messages to be displayed in the message box; 4 reverts to displaying them on the message line; -8 prevents messages from being saved in the message box list; 8 lets them be saved. ═══ 12.2.32. DOLINES (Execute Marked Lines) ═══ Syntax: DOLINES Executes the marked lines. (Line mark required.) Works only if the text contained in the marked lines are EPM or OS/2 commands. ═══ 12.2.33. DPATH (Query DPATH Setting) ═══ Syntax: DPATH Opens a temporary file and displays the DPATH setting. ═══ 12.2.34. DRAW (Draw Lines) ═══ Syntax: DRAW [1|2|3|4|5|6|B|/character] Allows text drawing with cursor keys. If no option is specified, all options and their visual representation are shown as a message. The options are: 1 single line 2 double line 3 dotted-line (VM-style) drawings 4 heavy solid line 5 single/double line mixed vert/horiz 6 double/single line mixed vert/horiz B Blanks, for erasing other lines / Slash, followed by any character with which you want to draw lines Note: Styles 5 and 6 use characters that are used as national support characters, and may not look right in character sets other than the US Code Page. ═══ 12.2.35. ECHO (Command Execution Trace Toggle) ═══ Syntax: ECHO [ON|OFF] Turns command execution trace on or off. Useful for seeing what a macro is doing during development. You can turn echo on without recompiling the macro to see what commands are executed. Note: Attempting to access a menu pulldown while echo is on will not work, so you will have to access the command line via Escape [if enabled] or Ctrl+I in order to turn Echo Off. ═══ 12.2.36. EDIT, ED, E (Load File) ═══ Syntax: EDIT | ED | E [ [ [options] filespec ] [quoted-command] ] Loads specified files into the active ring. If file already exists in the active ring, then it is activated. The following options are valid when typing the EDIT command on the command line dialog and when invoking the editor from the OS/2 prompt: OPTION EFFECT /b (EPM 5.60 & above) Search both ring and disk - the copy of the file currently in the ring will be activated if it is present, otherwise, the file will be searched for on disk. This is the default. /bin (EPM 5.60 & above) Load the file in binary format. All line terminators will appear in the file, and can be edited like any other character. Lines may or may not be broken at the line terminator, depending on the presence and position of the /nnn option. See the description of that option for details. /d forces file to be loaded from disk, even if the file already exists in the edit ring. /k locks the file when opening it, preventing other applications from modifying the file. Compare this with the LOCK command, which prevents other applications from reading as well as from writing the file. /l use the DOS convention that a new line is signified by a carriage return followed by a line feed. Carriage returns or line feeds standing by themself are kept as text. /n restricts file searching to the files already loaded. A match is considered if filename matches the last length(filename) characters of a file already in a ring. In practice this means you can specify only the filename and extension, without the drive and path, and EPM will find it. /t prevents expansion of tabs when the file is loaded. By default, tabs are expanded according to the template defined in the .tabs setting. (See Setting Tabs). /u use the Unix convention that a line feed alone is sufficient to start a new line when loading a file. Carriage returns are discarded. /nnn (EPM 5.60 & above) Load the file with a maximum line length of nnn characters. Any lines longer than that will be split into multiple lines. The fact that the lines were split will be remembered, and the pieces will be glued back together when the file is saved. The default is that lines will only be broken if they are longer than the maximum line size that can be handled. This limit is currently 1600 characters. If the /BIN option is specified, then the relative position of the two options controls the result. If the /BIN option appears first, then nnn will be treated as an upper limit; lines will be broken at a line terminator or at nnn characters, whichever comes first. If the /nnn option appears first, then it will be given priority, and the line terminators will be ignored, so that every line will be exactly nnn characters long (except for the last line, which might be shorter). = is shorthand for same path as last specified at the OS/2 prompt, or same as current file's at the editor command line dialog. The last option can save many keystrokes if you're editing several files in another directory. From the file specification window: \pas\lang\foo.pas =foo.bak will load the two files foo.pas and foo.bak, both from the directory \pas\lang. If filespec is to include multiple filenames, the filenames must be separated by spaces. From the editor command line dialog, the equals sign substitutes the current file's path, filename, and/or extension, depending on where it appears. For example: Your current directory is C:\EDIT The current file is C:\MYDOC\PROG\FOO.DOC Edit =bar.zot C:\MYDOC\PROG\BAR.ZOT Edit C:\EDIT\= C:\EDIT\FOO.DOC Edit =bar.= C:\MYDOC\PROG\BAR.DOC Edit =.new C:\MYDOC\PROG\FOO.NEW In addition to files to be edited, the Edit command accepts commands to be executed. To distinguish commands from filenames, the commands must be placed between matched single quotes. If the command to be executed contains single quotes, add an extra one for each. File names containing spaces must be eclosed in double quotes. Edit new.c 'get skeleton.c' 'bot' E EPM.doc 'L /"help/c' EPM.scr '/:q.help' E text 'c /don''t/do not/*' E "d:\a long file name" Return codes are placed in the RC universal variable. RC=0 means no error. See also: Host Editing ═══ 12.2.37. EPATH, EP (Search EPMPATH for Files) ═══ Syntax: EPATH | EP filename [pathname] If the file specified is not in the current directory, this command will search for it along the EPMPATH or pathname before calling EDIT. Useful when editing .E files, this command is only included if the USE_APPEND configuration constant is set to 1 (default=0), or if both WANT_SEARCH_PATH (default=0) and WANT_GET_ENV (default=1) are set to 1. Example: EP CHEESESHP.INV Loads file CHEESESHP.INV if it is located along the EPMPATH. If filename has an extension of .CMD then the default pathname will be PATH rather than EPMPATH. ═══ 12.2.38. ESCAPEKEY (Toggle Escape Key Action) ═══ Syntax: ESCAPEKEY [ON | OFF] Use ESCAPEKEY to switch the escape key mode on or off; anything else tells you the current value. When escape key mode is on, the escape key can be used to bring up the command line dialog (just like Ctrl+I). The default is escape key mode off. This command is only defined when TOGGLE_ESCAPE = 1 is included in the configuration file MYCNF.E. ═══ 12.2.39. ETPM, ET (Compile E Macros) ═══ Syntax: ETPM | ET [option] [source[.E] [output[.EX] ] ] Compiles E language macros defined in source.e, and places the output into output.ex. The new macros can be activated by loading output.ex into the editor using the '/e' option when you call the editor from OS/2. For more information, refer to section Compiling Macros. If no output file is specified, ETPM assumes it to have the same filename as the source file, but with an .EX extension. If no parameters are given, EPM.E (or the file specified by MAINFILE) is compiled into EPM.EX. The ETPM compiler will report any errors in your programming. The exact meaning of ETPM compilation errors can be looked up in The EPM Editor Technical Reference Manual. The options for the ETPM command are: /E or /e redirects compiler error messages. Example usage: ETPM /e errs.txt epm.e epm.ex This will cause all compilation error messages to be collected in the file errs.txt. /V or /v lists the name of each file as it is being compiled. ETPM searches the following directories (in the following order) for any .E files that it needs: 1. the current directory, 2. the directories specified in the EPMPATH environment variable (if it exists), 3. the directories in the DPATH environment variable, 4. the same directory as the file ETPM.EXE. See Using the RELINK, LINK, UNLINK and ETPM commands for more information. ═══ 12.2.40. EXPAND (Syntax Expansion Toggle) ═══ Syntax: EXPAND [ON|OFF] Sets syntax expansion ON or OFF. If no parameters are given, current value is displayed. Syntax expansion occurs when SPACE BAR or ENTER is pressed while a file with a supported language specific extension is active (i.e. .E or .C or .PAS or .CMD). Or you can start out with automatic expansion off by setting the variable MY_EXPAND_ON to 0 in MYCNF.E; you can then force expansion to occur by pressing Ctrl-X. See Including New Features into the Default Configuration for more information about changing MYCNF.E. ═══ 12.2.41. FILE, F (Quit and Save File) ═══ Syntax: FILE | F [/t] [filespec] Saves the current file and then quits it, the same as SAVE plus QUIT. If no filespec is given, the current name is used. You can use the equal sign = here as a shorthand for either the current file's directory or filename, as in the Edit command. See the Edit entry in this section for details. If the `/t' option is given, tab compression is performed: a file is compressed by substituting tabs for spaces where possible, i.e. when two or more spaces are found close to a tab stop. Note: See the description of the Save command for a complete list of options. Example: FILE GREEN.REM Save the file as GREEN.REM, then quits the file. ═══ 12.2.42. FILL (Fill Mark) ═══ Syntax: FILL [character] Will fill the marked block with the character specified. If no character is specified, an entry box will be put up asking for one. ═══ 12.2.43. FINDFILE (Search for File) ═══ Syntax: FINDFILE [filespec] Same as LIST. ═══ 12.2.44. GET (Insert File) ═══ Syntax: GET filespec Gets a file and inserts its text on the next line after the cursor position. You can use the equals sign = here as a shorthand for either the current file's directory or filename, as in the Edit command. See the EDIT command for details. Example: GET SNORKELS.DAT Loads file SNORKELS.DAT into the current file at the cursor position. ═══ 12.2.45. GO, GOMARK (Go to Bookmark) ═══ Syntax: GO | GOMARK bookmark_name Moves the cursor to the position given by the bookmark. Example: GO fargle beans Places the cursor at the location given by the bookmark fargle beans. ═══ 12.2.46. HELP (Load Help File) ═══ Syntax: HELP Loads the EPMHELP.QHL file into a help browser window to display help information. Example: HELP ═══ 12.2.47. INSERT_ATTR_VAL_PAIR (Insert Character Attributes) ═══ Syntax: INSERT_ATTR_VAL_PAIR class attr_val [fstline lstline fstcol lstcol [fid]] Use INSERT_ATTR_VAL_PAIR in a Rexx macro to insert push and pop attributes as a pair into a file. class is the attribute class; attr_val is the attribute value; fstline lstline fstcol lstcol refer to the beginning and ending characters where the attributes are to be inserted (if omitted, then a mark must exist, and the attributes are inserted at the beginning and end of the mark; for a block mark, at the left and right sides of the mark on each line), and fid is the identifier of the file into which the attributes should be inserted (if omitted, it defaults to the current file). /* Rexx macro to highlight the subject line */ /* Assumes .levelofattributesupport has '1' turned on */ /* to enable color display. */ BLACK = 0; BLUE = 1; GREEN = 2; CYAN = 3; RED = 4; MAGENTA = 5; BROWN = 6; LIGHT_GREY = 7; DARK_GREY = 8; LIGHT_BLUE = 9; LIGHT_GREEN = 10; LIGHT_CYAN = 11; LIGHT_RED = 12; LIGHT_MAGENTA = 13; YELLOW = 14; WHITE = 15; BLACKB = 0; BLUEB = 16; GREENB = 32; CYANB = 48; REDB = 64; MAGENTAB = 80; BROWNB = 96; GREYB =112; LIGHT_GREYB =112; DARK_GREYB =128; LIGHT_BLUEB =144; LIGHT_GREENB =160; LIGHT_CYANB = 176; LIGHT_REDB =192; LIGHT_MAGENTAB =208; YELLOWB =224; WHITEB =240; 'l /Subject:/c' if rc = 0 then do /* Found it! */ 'extract /line/col' 'Insert_attr_val_pair 1' (Light_Magenta + Light_CyanB) , line.1 line.1 col.1 (col.1 + 7) end ═══ 12.2.48. INSERT_ATTRIBUTE (Insert Character Attribute) ═══ Syntax: INSERT_ATTRIBUTE class attr_val push_flag offset [col [line [fid]]] Use INSERT_ATTRIBUTE in a Rexx macro to insert a character attribute into a file. class is the attribute class; attr_val is the attribute value; push_flag is 1 for push, 0 for pop, or the value appropriate for the attribute class specified. offset is the offset from the character at which the attribute should be inserted; line and col are the position at which the attribute should be inserted, and default to the cursor position; and fid is the identifier of the file into which the attributes should be inserted (if omitted, it defaults to the current file). ═══ 12.2.49. KEY (Repeat Keystroke) ═══ Syntax: KEY #### character Repeats character horizontally #### times. This can be quite powerful; for example you can repeat an entire set of recorded keystrokes (Ctrl-T) 20 times. Example: KEY 80 =. This will write a line of 80 equal signs into your document. character can be a normal ASCII character or a string representing an extended ASCII character Example: KEY 10 c-F8. ═══ 12.2.50. L (Locate Text) ═══ Syntax: [L] /pattern[/ [- | + | M | A | C | E | R | F | G] ] Locates text in the active file which matches pattern. The pattern delimiters (here shown as /) can be any non-blank character which is not present in pattern. The options following the second delimiter control the direction, scope and upper/lower case sensitivity of the search. Additional options (X | W | ~) are available as of version 6.02. The command name (L) may be omitted for convenience, in which case the delimiter must be /. See details in Steps to Search for a String. After a locate command, pressing Ctrl-F will repeat the search with the same options. Example: L /to be or not to be Searches for the first occurrence of the string to be or not to be. ═══ 12.2.51. LINK (Link File into EPM) ═══ Syntax: LINK [filespec] Will link the filespec.EX file into the currently executing version of EPM. See Using the RELINK, LINK, UNLINK and ETPM commands for more information. ═══ 12.2.52. LIST, FILEFIND, FINDFILE filespec ═══ Syntax: LIST | FILEFIND | FINDFILE [filespec] Loads a list of filenames that match filespec This may take a significant amount of time (a minute or more) if you name a filespec that qualifies an entire hard disk, such as list \*.*. If the filespec is not given *.* is assumed. Once you have the list, by placing the cursor on the name of a file, you can press Alt-1 to edit that file. Example: LIST C:\CLAY\GUMBY\POKEY.* This command will list all of the files in the C:\CLAY\GUMBY\ directory which match the specifier POKEY.*. ═══ 12.2.53. LISTMARK (List Bookmarks) ═══ Syntax: LISTMARK Lists all existing bookmarks. ═══ 12.2.54. LONGNAMES (Long Names Toggle) ═══ Syntax: LONGNAMES [ON | OFF] Use LONGNAMES to switch the long names setting on or off; anything else tells you the current value. When long names is on, a file containing a .LONGNAMES extended attribute will have the extended attribute value shown on the title bar when being edited, rather than the actual file name. This is useful if a file with a long name is copied from an HPFS drive to a FAT drive and has the original name saved in .LONGNAME; you will be able to see the long name instead of the truncated name. The default is long names mode off. This command is only defined when the WANT_LONGNAMES option is enabled in the configuration file MYCNF.E. ═══ 12.2.55. LOCK (Lock File) ═══ Syntax: LOCK [filespec] Will lock the current file, or the file specified, from other users in a LAN networking situation. Other applications are prevented from reading or writing the file. Compare this with the /K option of the EDIT command, which prevents other applications from writing the file, but which does allow them to read the file. This command is only defined when the WANT_LAN_SUPPORT option is enabled in the configuration file MYCNF.E. Example: LOCK PARTICLE.MAN Locks the file PARTICLE.MAN. ═══ 12.2.56. LOOPKEY (Repeat Keystroke Vertically) ═══ Syntax: LOOPKEY [####|ALL] char Allows the repeat of char in a vertical column. The character will be entered #### times, proceeding vertically downward in the current column. (Compare this to the KEY command, which repeats the key horizontally in the same row.) The argument ALL can be given instead of a number, in which case the repetition will continue to the end of the file. char can be a normal ASCII character or a string representing an extended ASCII character ═══ 12.2.57. LOWERCASE (Convert to Lowercase) ═══ Syntax: LOWERCASE Converts all uppercase alphabetic characters in the marked area to lowercase. ═══ 12.2.58. MARGINS, MA (View/Change Margins) ═══ Syntax: MARGINS | MA [ left [ right [ new_pgph ] ] ] Sets the margins with the parameters: column number on the left, column number on the right, and number of spaces to indent the start of a new paragraph. The new-paragraph indentation occurs when you press Alt-P, for example. Words typed past the right margin are wrapped to the next line. left and new_pgph must be less than right. If no parameters are given, the current value is presented on the command line to allow easy modification. If right is omitted, it defaults to the current value; if new_pgph is omitted, it defaults to left. ═══ 12.2.59. MAKETAGS (Build a TAGS file) ═══ Syntax: MAKETAGS [ [@]file[...] | * ] Builds a tags file from the list of source files given. If a filename is preceded by '@', this indicates that the file is actually a list of files. If an asterisk is given as an argument, a dialog will be presented in which the user can enter the desired parameters. This is primarily intended for use from a menu or toolbar selection, but can also be used if you want to use the same value as before, which the dialog has recorded. Note: The MakeTags command is available only in EPM 5.60 or above, and only if the WANT_TAGS configuration option is set. See the EPM 5.60 / 6.0x online help for a description of what tags files are. ═══ 12.2.60. MARKWORD (Mark Word) ═══ Syntax: MARKWORD Marks the word under the cursor. This command is equivalent to the standard key defintion of Alt+W. ═══ 12.2.61. MATCHTAB (Type of Tab Toggle) ═══ Syntax: MATCHTAB [ON | OFF] If set on, the Tab and Shift-Tab keys use the previous line's columns for the current line's tab stops. The previous line's columns are defined by the first letter of each space-delimited word. If no parameter is given, the current value is displayed. ═══ 12.2.62. MATH (Resolve Simple Expression) ═══ Syntax: MATH expression Computes expression using floating point arithmetic and displays the result on the message line. Output is decimal. Input numbers may be hex (Ex. xff), octal (Ex. o77), and decimal. Valid operators are +, -, /, *, % (integer division) and // (remainder). Example: MATH 121345342-121345340+1-3 When this is executed the result will be placed in the message line. In this case: math 121345342-121345340+1-3= 0 See Calculating Mathematical Expressions for further details. ═══ 12.2.63. MATHO (Resolve Simple Expression) ═══ Syntax: MATHO expression Same as MATH command but output is octal. ═══ 12.2.64. MATHX (Resolve Simple Expression) ═══ Syntax: MATHX expression Same as MATH command but output is hexadecimal. ═══ 12.2.65. MESSAGEBOX (Bring up Message Box) ═══ Syntax: MESSAGEBOX Brings up the Editor Messages box for review. ═══ 12.2.66. MULT (Multiply Numbers in Mark) ═══ Syntax: MULT Multiplies the numbers in the marked area, and inserts the product in a new row underneath the marked area. ═══ 12.2.67. NAME, N (Name Current File) ═══ Syntax: NAME | N [filespec] Renames the file in the editor buffer, but not on disk. The new name will be used the next time you save the file. A useful way to avoid overwriting the original. Example: NAME ACHTUNG.U2 This command will name the current file ACHTUNG.U2. If no name is given, the command line dialog will be presented prefilled with Name current_file_name. ═══ 12.2.68. NEWWINDOW (Create New Edit Window) ═══ Syntax: NEWWINDOW Use NEWWINDOW to save the current file if it has been changed, open a new window containing the file, then quit the file in the current window. ═══ 12.2.69. OPEN, O (Open New Edit Ring) ═══ Syntax: OPEN | O { [ [options] filespec] [quoted-command] } Loads specified files into a new window (and therefore a new ring). This OPEN command is similar to the EDIT command, however, OPEN will open the file in a new window, whereas EDIT will add the file to the edit ring of the current window. Note that OPEN will open the file regardless of other open copies of the file in other rings. The following options are valid when typing the OPEN command on the command line dialog (in addition to those valid for the EDIT command): OPTION EFFECT /e loads the compiled macros in the file specified after the /e switch. See section Compiling Macros for examples. Note: If you do not use this option, the default compiled macros are used, i.e. the file EPM.EX is interpreted by the editor. = is shorthand for same path as last specified at the OS/2 prompt, or same as current file's at the editor command line dialog. The last option can save many keystrokes if you're editing several files in another directory. See the description of the Edit command for examples of using the = as part of the file specifier, and for examples of passing commands to be executed in the new edit window. Return codes are placed in the RC universal variable. RC==0 means no error. ═══ 12.2.70. OPENPATH,OP (Open File from Path) ═══ Syntax: OPENPATH | OP [filename] If the file specified is not in the current directory, this command will search for it along the EPMPATH before calling OPEN. This command is only defined when the EPATH command is defined; see the description of EPATH for the requirements. If no filename is given the command will open the new edit ring with an untitled file. Example: OP HOLLOW.MEN ═══ 12.2.71. OS2 (Execute OS/2 Command) ═══ Syntax: OS2 command Run the OS/2 command processor (as specified by the COMSPEC environment variable) to execute a command. A new windowed OS/2 command session is started to execute the command. Compare this with the QUIETSHELL command. Example: OS2 erase c:\*.* This will execute the command erase c:\*.* in a new windowed OS/2 command session. ═══ 12.2.72. PASTE (Paste Text Into Clipboard) ═══ Syntax: PASTE [C | B] Moves text from the PM clipboard into EPM file at the current cursor location. The text in the buffer can come from either an EPM file or any other PM application. If no argument is given, the text is inserted as new lines in the file. If the argument is 'C', the text is inserted as a character stream, and if the argument is 'B', the text is inserted as a block. ═══ 12.2.73. PATH (Display Path Variable) ═══ Syntax: PATH Opens a temporary file and displays the current PATH setting. ═══ 12.2.74. POPMARK (Pop Mark from Stack) ═══ Syntax: POPMARK Pops the mark on the top of the Mark Stack and creates it. If no mark has been pushed onto the Mark Stack, this command will have no effect. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.75. POPPOS (Pop Cursor Position from Stack) ═══ Syntax: POPPOS Pops the cursor location from the top of the Position Stack and moves the cursor to this location. If the Position Stack is empty an error will occur. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.76. POSTME (Delay Command Execution) ═══ Syntax: POSTME command Use POSTME to defer execution of a command. The POSTME command posts its argument back to the edit window as a command to be executed. This would normally be issued either from a Rexx command file or when passing commands to EPM when starting up the editor. For example, if you wanted to edit a file and set the margins to 1 and 72, you might try the following: start epm myfile 'ma 1 72' This would not work as desired, however, because after the file is loaded and the margins are set by your command, a DEFLOAD event occurs, which sets the tabs and margins to the values saved from the Settings dialog. To get the desired result, you must use the POSTME command to delay execution of the MARGINS command until after the DEFLOAD processing has occurred: start epm myfile 'postme ma 1 72' ═══ 12.2.77. PRINT (Print File) ═══ Syntax: PRINT [printer_name] Sends the marked block, or the entire file if there is no mark, to your printer. Printer_name must be PRN, LPT1:, LPT2:, ... LPT9:, COM1: ... COM:4, or a LAN device (e.g., \\server\printq). If no printer is specified then the block or file will be output to the default printer. Note: Entering the print command will print in draft mode. If you wish to print in WYSIWYG mode you must choose Print File... selection from the File menu. See Printing a File for more details. ═══ 12.2.78. PROCESSBREAK (Halt Command in Progress) ═══ Syntax: PROCESSBREAK This command is executed when Ctrl+Break is pressed or Command / Halt Command is selected from the action bar. The default action is to do a sayerror 'Macro halted by user' but E macro programmers can add cleanup code if needed for their routines. ═══ 12.2.79. PROFILE (Toggle Profile Setting) ═══ Syntax: PROFILE [ON | OFF] Use PROFILE to switch the profile setting on or off; anything else tells you the current value. When PROFILE is on, a Rexx profile (PROFILE.ERX) is searched for along the EPMPATH and PATH. If found, it is executed, and passed the same arguments that EPM was given. This happens after EPM has processed the arguments. The default is profile mode off. This command is only defined when WANT_PROFILE = 'SWITCH' is included in the configuration file MYCNF.E. ═══ 12.2.80. PROCESSFONTREQUEST (Set a Font) ═══ Syntax: PROCESSFONTREQUEST fontname.fontsize.fontsel.setfont.markedonly[.fg.bg] The PROCESSFONTREQUEST command is used internally by the Style and Settings dialogs, but it can also be issued by the user from the EPM command line or from a macro. The parameters are: fontname the name of the font to be set. fontsize the size of the font to be set; can be any point size (for ATM fonts), or can be a width and height (in pixels) that match an existing bitmap font. Note that ATM fonts can be displayed in any size, even though only a limited number of sizes are shown in the font dialogs. The size can be represented as in integer point size, or DDnnn for nnn deci-points, or HHhhWWww for a bitmapped font hh pixels high and ww pixels wide. fontsel the attributes of the font to be set; can be any combination of: 1 Italic 2 Underscore 8 Outline 16 Strikeout 32 Bold setfont A flag (0 or 1) specifying whether the font should be made the default font for all future edit windows. Only processed if markedonly is 0. markedonly A flag (0 or 1) specifying whether the font change should apply to the marked area only, or should be made the base font for the file. fg Optional foreground color (0 - 15; see COLORS.E) used if markedonly is 1. bg Optional background color (0 - 15; see COLORS.E) used if markedonly is 1. Examples: Set base font to 16-point Times New Roman: PROCESSFONTREQUEST Times New Roman.16.0.0.0 Display the marked text in 17 1/2-point Helvetica Bold Italic: PROCESSFONTREQUEST Helvetica.DD175.33.0.1 Change base font to 20x9 System Monospaced, and make it permanent: PROCESSFONTREQUEST System Monospaced.HH20WW9.0.1.0 Display the marked text in a 24-point outline Tms Rmn font, with a magenta foreground and a light cyan background: PROCESSFONTREQUEST Tms Rmn.24.8.0.1.5.11 ═══ 12.2.81. PROOF (Spell Check Document) ═══ Syntax: PROOF The proof command begins the spell check facility. When the PROOF command is issued, EPM begins spell checking at the cursor position and continues until a suspect word is found, or until the end of the document is reached. If a suspect word is found, a spell check dialog box will appear. The upper portion of the dialog box contains possible corrections. The bottom of the dialog box asks you to choose: Replace, Cancel, Next, Temp. Add, Add, Edit or Help. If the word appears spelled correctly in the list of possible corrections, use the mouse to click on the correct spelling (thereby highlighting your choice) and then click on the Replace entry at the bottom of the dialog box. EPM will make the substitution automatically. (You can double-click on any word word in the list to select Replace for that word.) Choose the Cancel option to stop spell checking. Choose the Next option to ignore the word and continue with spell checking. Choose Temp. Add to mark the word as correctly spelled for the current PROOF session, but not update your addenda file. Choose Add to add the word to your addenda file for future spell checks. Choose Edit to be given a chance to edit the word; the result will be substituted for the word in the file and then rechecked. Choose Help to display a help panel describing what each button does. Note: Spell checking requires LEXAM.DLL, which is included with some other IBM products (e.g., OS/2 TCP/IP). It is not available directly. ═══ 12.2.82. PROOFWORD (Spell Check Current Word) ═══ Syntax: PROOFWORD [Force] Proofs the word that the cursor is on. It brings up the spell checking dialog box if the word is spelled incorectly. See the PROOF command for more information on the spell checking dialog box. If an argument of FORCE (may be abbreviated down to one character) is given, the dialog will be presented even if the word is spelled correctly. Note: Spell checking requires LEXAM.DLL, which is included with some other IBM products (e.g., OS/2 TCP/IP). It is not available directly. ═══ 12.2.83. PUSHMARK (Push Current Mark onto Stack) ═══ Syntax: PUSHMARK Pushes the location of the current mark into a stack to allow it to be recalled later using a POPMARK command. Note: Only the position of the mark relative to the file is saved, so if lines are added to the file before the saved position, and then the mark is popped, different text will be marked than was originally. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.84. PUSHPOS (Push Current Position onto Stack) ═══ Syntax: PUSHPOS Pushes the location of the current cursor position into a stack to allow it to be recalled later using a POPPOS command. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.85. PUT (Append Text to a File) ═══ Syntax: PUT [filespec] Writes the marked text area to the named file. If the named file already exists it's appended rather than overwritten. For convenience, filespec can be omitted if you wish to repeat a PUT to the same file. PUT commands without a filespec will reuse the last-specified name. If there is no mark, the entire current file is PUT. You can use the equals sign = here as a shorthand for either the directory or filename, as in the Edit command. Example: PUT IT.NOW Will append the marked text to the end of the file IT.NOW. See the Edit entry in this section for details. ═══ 12.2.86. QDATE, QD (Query System Date) ═══ Syntax: QDATE | QD Displays the current system date in the form: Today is Sunday July 21, 1992. ═══ 12.2.87. QL, QLINK, QLINKED (Query Link Status) ═══ Syntax: QL | QLINK | QLINKED [filespec] Checks if the E module specified in filespec is linked. For example, to see if LAMPDQ has been linked you could type from the command line dialog: QLINKED lampdq Depending on your configuration EPM will return: o 'Can't find LAMPDQ on disk' - LAMPDQ.EX does not exist in the EPMPATH (it may be in the uncompiled LAMPDQ.E form); o 'LAMPDQ is not linked' - LAMPDQ has not been included in EPM; o 'LAMPDQ is linked as module #somenum' - LAMPDQ has been included in EPM. See Using the RELINK, LINK, UNLINK and ETPM commands for more information. ═══ 12.2.88. QS, QUIETSHELL (Quiet OS/2 Shell) ═══ Syntax: QS | QUIETSHELL command Executes the OS/2 command specified by command without displaying any results from the command. This is useful when you want to execute an OS/2 command and avoid a macro front-end. ═══ 12.2.89. QTIME, QT (Query Time) ═══ Syntax: QTIME | QT Displays the current system time in the form: The time is 3:12:31 am. ═══ 12.2.90. QUIT, Q (Quit Current File) ═══ Syntax: QUIT | Q Quits current file and exits the ring if no more files are left. If the visible ring is empty, then the editor exits with return code 0. ═══ 12.2.91. RC (Display Return Code) ═══ Syntax: RC command Displays return code of command. A good way to determine the exact result of a command. A number will be shown which can be looked up in section Return Codes. This command should be used in the following way: rc tabs 35 10 20 This command will result in the error number 272 ("Error in tab settings") being displayed below the command line dialog. RC can also be used to verify that OS/2 commands completed successfully without having to open a command prompt or redirect output: RC erase temp.fil This will display a RC of 0 if the command completed successfully. ═══ 12.2.92. REFLOW_ALL (Reflow Entire File) ═══ Syntax: REFLOW_ALL Reflows all of the current file to the margins. ═══ 12.2.93. REGISTER_MOUSE (Register Mouse Event) ═══ Syntax: REGISTER_MOUSE which button action shifts command Use REGISTER_MOUSE in a Rexx macro to associate a command with a mouse event. which is 1 for the global mouse table or 0 for the local; button is the mouse button (1, 2 or 3), action is one of: Action meaning CLICK Pressing and releasing the mouse button produces a click. SECONDCLK follows click when the mouse is double-clicked. BEGINDRAG this is called when the mouse button is depressed and the mouse is moved. ENDDRAG this is called when the mouse button is released after dragging it. CANCELDRAG. this is called when the drag is cancelled (by pressing Esc before releaseing the mouse button). shifts is 0 for no shift, or the sum of any combination of 1 for the shift key, 2 for the Ctrl key, and 4 for the Alt key. command is the command to be executed when this mouse event occurs, or blank if the event should be ignored. Note: The standard mouse definitions issue a register_mouse for ENDDRAG and CANCELDRAG as part of the BEGINDRAG processing. /* Register an action for Ctrl+Alt+Double-click MB1 */ 'register_mouse 1 1 SECONDCLK 6 rx do_line' /* Do_Line.erx */ 'MH_gotoposition' /* Move cursor to mouse position */ 'extract /line/getline' if line.1 > 0 then getline.1 /* Execute the line as a command */ ═══ 12.2.94. RELINK (Relink Macros) ═══ Syntax: RELINK [filespec] Compiles and links a macro into a currently running version of EPM. See Using the RELINK, LINK, UNLINK and ETPM commands for more information. ═══ 12.2.95. RENAME (Rename File) ═══ Syntax: RENAME Allows you to rename the current file. This command presents the Rename dialog. ═══ 12.2.96. RX (Execute a Rexx Macro) ═══ Syntax: RX | EPMREXX macro_name [macro_args] Executes the specified Rexx macro. The default extension is .erx. If the drive and directory are not specified, the macro will be searched for (by the Rexx executor) along the PATH. Note: The Rexx profile, PROFILE.ERX, is searched for along the EPMPATH as well as the PATH, but this search is done by EPM, not Rexx, in order to avoid an error message if the profile is enabled but PROFILE.ERX does not exist. ═══ 12.2.97. SAVE, S (Save Current File) ═══ Syntax: SAVE | S [options] [filespec] Saves the file to disk, using the current name if none is specified. You can use the equals sign = here as a shorthand for either the directory or filename, as you can in the Edit command. See the Edit entry in this section for details. OPTION EFFECT /q Saves quietly; the "Saved to" message is not given. /s Trailing spaces are stripped from each line as it is written out. /ns Do not strip spaces; this is the default. /t Tab compression is performed: a file is compressed by substituting tabs for spaces where possible, i.e. when two or more spaces are found close to a tab stop. /nt No Tabs; this can be used to override default_save_options = '/t' /ne Prevents the EOF from being written at the end of the file. /u Saves the file in Unix format - i.e., each line should be terminated with just a line feed, and no EOF should be added at the End of File. This is useful when saving files to NFS-mounted drives on an AIX or Unix system. /l (EPM 5.51 & below) This says to save the file in standard OS/2 format - each line should be terminated with a carriage return followed by a line feed; an EOF character is added at the end if SET EOF 1 is in effect. This is the default. (EPM 5.60 & above) This says to save the file with each line terminated with just a line feed. /o (EPM 5.60 & above) This says to save the file in standard OS/2 format - each line should be terminated with a carriage return followed by a line feed; an EOF character is added at the end if SET EOF 1 is in effect. This is the default. ═══ 12.2.98. SAYERROR (Display Error Code or Message) ═══ Syntax: SAYERROR expression Use SAYERROR to display an error code or message in the message area. If expression is the number 0 or 1, any pending error messages are discarded and not displayed. 0 will refresh the screen; 1 will not. If expression is any number other than 0 or 1, the interpreter displays the string corresponding to that numbered error message. Error messages and their corresponding return codes are listed in the EPM Technical Reference. If expression is not a number, that text will be displayed on the message line. This is useful in Rexx macros. ═══ 12.2.99. SELECT_ALL (Select Entire File) ═══ Syntax: SELECT_ALL Creates a mark which encompasses the entire file. ═══ 12.2.100. SET (Execute an OS/2 SET Command) ═══ Syntax: SET Executes an OS/2 SET command. All the SET parameters will be displayed in a temporary file. ═══ 12.2.101. SETMARKP (Set Permanent Bookmark) ═══ Syntax: SETMARKP bookmarkname Sets a permanent bookmark at the current cursor position. ═══ 12.2.102. SETMOUSEPOINTER (Set Mouse Pointer) ═══ Syntax: SETMOUSEPOINTER pointerstyle Sets the mouse pointer to style 1 - 14. See the _POINTER constants defined in STDCONST.E, or the online help, for a description of each style. This command is only defined when EPM_POINTER = 'switch' is included in the configuration file MYCNF.E. ═══ 12.2.103. SETSCROLLS (Toggle Scroll Bars) ═══ Syntax: SETSCROLLS Toggles the scroll bars (both the horizontal and vertical) on or off. ═══ 12.2.104. SHELL (Start OS/2 Shell) ═══ Syntax: SHELL Use SHELL to create an EPM command shell session. If the MYCNF.E contains WANT_EPM_SHELL='HIDDEN', then the first time you enter SHELL in an edit window, two new entries will be added to the Command menu. Create command shell creates a new shell window, and Write to shell... lets you write a string to the shell window. If the shell window is waiting at an OS/2 command prompt, then you can enter a command to be executed by either: 1. Select Command. 2. Select Write to shell.... 3. Type the text to be written to the shell. 4. Select OK. or 1. Type the text in the shell window following the prompt. 2. Press the Enter key. If the string to be written to the shell is in response to a program prompt, then you must perform the first sequence; the second method won't write anything to the shell. (The standard Enter key definition recognizes the default EPM_SHELL_PROMPT and automatically performs a Write to shell. Note that this works as well for repeating previously entered commands.) The shell can be used for running any non-fullscreen OS/2 program. The output from the program is inserted in the shell window as it is generated, even if you switch to some other file in the edit ring. This command is only defined when the WANT_SHELL option is enabled in the configuration file MYCNF.E. ═══ 12.2.105. SHOWMENU (Activate Menu) ═══ Syntax: SHOWMENU menuname Use SHOWMENU to activate the action bar named menuname. Changes made with the BuildSubMenu and BuildMenuItem commands will not be seen until the updated menu is displayed with ShowMenu. ═══ 12.2.106. SORT, SORTDLL (Sort Text) ═══ Syntax: SORT | SORTDLL [R] [C] [I] If no area is marked, sorts the entire file. If an area is marked, the entire lines are sorted with the marked columns treated as the sort key. The options are as follows: R Sorts in reverse (descending) order. C Sorts according to collating order, as indicated by your country and code page settings. I Sorts ignoring case. If two lines have equal keys they are left in the same relative order. This allows you to sort a directory listing, for example, first by extension and again by filename; during the second sort, lines with equal filenames will be left in extension order. ═══ 12.2.107. STAY (Toggle SETSTAY) ═══ Syntax: STAY ON|OFF Allows SETSTAY option to be changed from within EPM. When STAY is specified with ON then the cursor will not be moved after a change command has been issued. With STAY set to OFF, the cursor will move to the last occurrence of a change when the change command is issued. This command is only defined when SETSTAY = '?' is included in the configuration file MYCNF.E. ═══ 12.2.108. STDFILE_READ (Read a File From STDIN) ═══ Syntax: STDFILE_READ Reads a file in from STDIN. This is most useful when the STDIN has been redirected from a keyboard to another device. ═══ 12.2.109. STDFILE_WRITE (Write a File to STDOUT) ═══ Syntax: STDFILE_WRITE Writes a file to STDOUT. This command is most useful to write files when the STDOUT device has been redirected. ═══ 12.2.110. SUBJECT (Set File Subject) ═══ Syntax: SUBJECT Use SUBJECT to display, set, or change the file subject field. ═══ 12.2.111. SWAPMARK (Swap Mark with Mark on Stack) ═══ Syntax: SWAPMARK Swaps the current mark with the top mark in the mark stack. Will fail if no mark exists in the current window. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.112. SWAPPOS (Swap Position with Position on Stack) ═══ Syntax: SWAPPOS Swaps the current position of the cursor with the top position in the position stack. This command is only defined when the WANT_STACK_CMDS option is enabled in the configuration file MYCNF.E. ═══ 12.2.113. TABKEY (Toggle Tab Key Mode) ═══ Syntax: TABKEY [ON | OFF] Use TABKEY to switch the tab key mode on or off; anything else tells you the current value. When tab key mode is on, the tab key will enter a tab character. When TAB key mode is off, the tab key will move the cursor to the next tab stop without typing in a tab character. The default is tab key mode off. You must issue this command from the Command window. This command is only defined when the TOGGLE_TAB option is enabled in the configuration file MYCNF.E. To save the current tab key mode setting as your permanent default: 1. Select Options. 2. Select Save options. ═══ 12.2.114. TABS (Set Tabs) ═══ Syntax: TABS n1 [n2...n32] Sets tab stops used by Tab and Shift-Tab keys. If only one tab stop is specified, e.g. TABS 8, the editor interprets this as meaning that the user wants 32 tabs set, each 8 spaces apart, beginning with column 1. In this case, the result would be the same as issuing the following command: TABS 1 9 17 25 ... 247 The tab stops must must be listed in ascending order. If no tab values are listed then the current tab settings are returned in the command dialog window (so they can be modified, if desired). Syntax errors in the tab values will be ignored. See Setting Tabs for more information on setting tabs. ═══ 12.2.115. TOGGLECONTROL (Toggle Window Visibility) ═══ Syntax: TOGGLECONTROL windownum [0|1] Toggles the window specified by windownum. If the second argument is a 1; then EPM will attempt to turn window on. If the second argument is a 0; then EPM will attempt to turn the window off. If no second argument is given, then if the window is off it will be turned on; and if the window is on, then it will be turned off. Useful windownum values are: 7 = the status line 8 = the message line 9 = the vertical scroll bar 10 = the horizontal scroll bar 20 = the ring icons 22 = the drag/drop text icon (OS/2 1.3 only) 23 = the status and message line position (top or bottom of window) ═══ 12.2.116. TOP (Go to Top of File) ═══ Syntax: TOP Moves to the top of the current file. ═══ 12.2.117. TRIM (Trim Window) ═══ Syntax: TRIM Use TRIM to resize the edit window so that no partial characters can be seen at the right or bottom edge of the edit window. ═══ 12.2.118. TYPE (Set Type of File) ═══ Syntax: TYPE Use TYPE to display, set, or change the file type. ═══ 12.2.119. UNIVERSAL (Change Universal Variables) ═══ Syntax: UNIVERSAL variable_name [value] Use UNIVERSAL in a Rexx macro to update some internal universal variables without having to recompile the macros. variable_name can be one of default_search_options Options used by the Locate command and initial values for the Search dialog. default_edit_options Options used by the Edit command default_save_options Options used by the Save command value is the value to be set in the universal variable, and can be blank. The value of these variables is inserted before any options passed on the command line, so these defaults can be overridden on any specific command. /* Profile.erx - initializations for a new edit window */ /* Make the default search be case-insensitive */ 'universal default_search_options C' /* No Tabs - expand them when loading a file */ 'universal default_edit_options /nt' /* Strip trailing blanks when saving a file */ 'universal default_save_options /s' ═══ 12.2.120. UNLINK (Unlink EPM Macros) ═══ Syntax: UNLINK [filespec] Removes an E module (ie .EX code) from a version of EPM running in memory. This is useful to remove unused or temporary code to save space. See Using the RELINK, LINK, UNLINK and ETPM commands for more information. ═══ 12.2.121. UNLOCK (Unlock File) ═══ Syntax: UNLOCK [filename] Unlocks a file that was locked using the LOCK command or EDIT /K. This command is only defined if WANT_LAN_SUPPORT was requested. Example: UNLOCK E:\FISH\WANDA\TANK.KEN Unlocks the file TANK.KEN from the directory E:\FISH\WANDA. ═══ 12.2.122. UPPERCASE (Convert Text to Uppercase) ═══ Syntax: UPPERCASE Converts all lowercase alphabetic characters in the marked area to uppercase letters. ═══ 12.2.123. VER (Display Version) ═══ Syntax: VER Displays the version of EPM. For example: EPM Version 5.51 ═══ 12.2.124. VERIFY (Spell Check Current Word) ═══ Syntax: VERIFY [Force] Same as the PROOFWORD command. ═══ 12.2.125. VOL (Query Volume Label) ═══ Syntax: VOL [drive_letter] Displays the current drive's volume label information in a temporary file. This command is like the OS/2 VOL command. ═══ 12.2.126. XCOM (Execute Interal Command) ═══ Syntax: XCOM built-in command Executes internal (built-in) command, ignoring user-defined (DEFC) commands. Prefix your command line dialog with this when you want to be sure to execute the original EPM version of a command, not the user's redefinition. Note: The primary intent of XCOM is for executing internal editor commands, to avoid a user's redefinitions. A typical case is xcom e filespec which executes the unembellished EPM edit command. (One reason for doing this is speed; if you're loading a file only for temporary look-up purposes you don't need the extra checking for a host file name, etc.) But this can be confusing because the executed command might end up being an external OS2 program. If EPM cannot find the command internally it will look to OS2, in which case the effect is the same as typing OS2 command. This is not the normal usage, however. If you know in advance that you want a OS2 command as opposed to a DEFC, you can use the QUIETSHELL prefix. ═══ 13. Changing Common Default Values Via the Settings Dialog ═══ Select Options / Preferences / Settings to activate the Settings dialog, which has pages to let you configure certain features without requiring recompilation of the macros. The pages of the Settings dialog are briefly described below; you can select the Help button while viewing any page in the dialog to get more detailed information. Tabs Set the default TABS setting. Margins Set the default left, right, and paragraph MARGINS settings. Colors Set the default colors for normal text, marked (selected) text, the status line, and the message line. Paths Set the temporary path, autosave path, and (if spell-checking support is enabled) the dictionary and addenda file locations. Autosave Set the default AUTOSAVE count. Fonts Set the default font in which text should be displayed. Keys Configure the actions performed for various combinations of the Enter keys. Note: This page will only be present if the .ex files were compiled with ENHANCED_ENTER_KEYS set to 1 in the MYCNF.E. Change all the appropriate values to your desired settings, then select the Save button. Your preferences will be saved in the EPM.INI file. (Only modified pages are actually saved.) EPM.INI is checked for EPM settings when opening a new edit window. This means that the configuration values will override any values set in MYCNF.E and compiled into the .ex files. ═══ 14. Host Editing ═══ Information on the use of the host editing features of EPM. ═══ 14.1. Introduction ═══ EPM allows editing of IBM mainframe files from your PC. The host can have either a VM or MVS operating system. Your PC must use a terminal emulator package which supports file transfer between the two systems. EPM supports the OS2 Communications Manager using the ALMCOPY command for uploading and downloading. To specify a host file name, the dummy drive letter H: is used. Below is an example of editing a CMS file from within EPM. edit h:profile exec When EPM sees the H: it expects a CMS file specification to follow (i.e. filename filetype [filemode]). Note the use of spaces, not periods. The default filemode is A. Host filenames can be given to any of the following EPM commands. PUT GET S, SAVE APPEND E, EDIT F, FILE O, OPEN Notice that the LIST command cannot take a host file specification. If your machine crashes while saving a host file there will be a temporary file created on your PC. If you use the standard host support, these temporary files have names like eeeeeeee.nnn, where nnn is a system supplied number. The files will be in the TEMP_PATH directory. If you use the E3EMUL host support, these temporary files have names like filename.ext, where ext is the first three characters of the host filetype. The files will be in the SAVEPATH directory. (If you do not have a MY_SAVEPATH in your MYCNF.E, this will default to the AUTOSAVE_PATH.) In addition, E3EMUL users will be asked if they wish to save the file as filename.TMP, which won't be overwritten the next time they try to edit the same host file. In order for host editing to work, the default assumptions are: 1. The OS2 communications manager has been installed and is working 2. You're logged on to a VM host system and your session has no program active. 3. The package 'ALMCOPY' has been installed properly. (i.e. ALMCOPY.EXE can be found in the current path.) 4. You don't want multiple logical terminal session support. If you want to change any of the above defaults you'll have to put your configuration information in MYCNF.E and recompile EPM. See the HOST_SUPPORT configuration constant. A common change would be to support multiple logical terminals. A good way to do that is to use E3EMUL, or the SRPI package available as part of LaMail/PM. It is strongly suggested you read their documentation if installing them. ═══ 14.2. Using E3EMUL for host editing ═══ E3EMUL allows host file editing through IBM licensed emulators, such as IBM's OS/2 Extended Edition Communications Manager. E3EMUL even works with multiple sessions, such as Communication Manager's multiple 3270 emulation sessions. You may specify a default LT (Logical Terminal)/window to use, but you may edit a file from any or all host sessions during an editing session. To differentiate between LT windows, you can specify a host session ID between the h and the colon, e.g.: edit ha:profile exec edit hb:test file E3EMUL does strict syntax checking on your specified filename. This is because it tries to determine what sort of file you have asked to edit. The usage of predetermined defaults allows you to be less than specific when editing host files. For example, you can edit the documentation for EPM on the host with the command: E EPM SCRIPT E3EMUL fills in the rest, and carries the full filename of HA:EPM SCRIPT A through the editing session. Ambiguous references are resolved with a bias toward VM filenames. Note: When entering host file names on the OS/2 command line (as opposed to from EPM's command line), you should always specify the H: prefix. This is because otherwise EPM prefixes the names specified with the current directory, and so when E3EMUL gets the command line, it looks like c:\.profile c:\exec, and isn't recognised as a host file. ═══ 15. Including New Features into the Default Configuration ═══ Many users will wish to change or add features to EPM, but will not care to learn the full E macro language. Many new features can be added by installing add-on packages. Often the only change needed to add such a package to the editor is to add one line to one of the .E files that includes that package into the file. The preferred place to put the include statement is in a file of your own, not in the distributed .E files. It is tempting to put your includes in the main EPM.E file, but this will cause you extra work when new versions of EPM are released; you'd need to re-add your includes to the new EPM.E. Instead, put your includes in a file named MYKEYS.E, MYSTUFF.E, MYMAIN.E, MYSELECT.E, or MYKEYSET.E. (Listed in order of usefulness; most packages can be installed in MYKEYS.E or MYSTUFF.E.) The E compiler will automatically include those filenames if they exist. Here are some sample includes to show how the MY*.E files might be used. o MYKEYS.E should contain any code which defines new keys. Perhaps you have redefined one or more key(s) in a file called NEWKEYS.E, as follows: def c_k= Getline Line InsertLine Line, .line + 1 In this case, the Ctrl-K key is defined to duplicate the current line. To activate this new definition, simply add the following line to the MYKEYS.E: include 'newkeys.e' Including a file in the file MYKEYS.E insures that the key will be recognized in the proper place, and not be included in a special-case keyset. o MYSTUFF.E should contain packages which define non-key features, such as commands and procedures, for example: include 'e3code.e' Note: Most users will not care whether a package defines a key or a command. Don't worry about the distinction, since in the current EPM it makes no difference. You can include a package in either MYKEYS.E or MYSTUFF.E. o MYMAIN.E will typically contain small pieces of code to set options at E's start-up, especially options that we didn't provide as part of the standard configuration file STDCNF.E. Any code in MYMAIN.E will be included at the end of E's start-up code (DEFMAIN). o MYSELECT.E can contain anything you want to be executed whenever you select a different file. Typical tasks here are setting tabs and margins based on filetype, or selecting keysets based on filetype (this is how the syntax-editing keys are selected). o MYKEYSET.E is the least frequently used addition. Not many users will define an entirely new keyset. ═══ 16. Changing the Default Configuration ═══ A distinguishing feature of EPM is its configurability. It allows the user to change its standard modes of operation, as well as add new commands and delete unwanted commands. This is possible because a significant portion of the editor (known as macro definitions) is written in a high level programming language (the E language). This language can be learned easily by experienced programmers using The EPM Editor Technical Reference Manual and the delivered source code as a guide. EPM has a Quick Configuration option to allow for easy update of some of the most popular configuration variables (i.e. colors and margins). See Changing Common Default Values for information on the shortcut approach. Not all variables are included there. This section explains how to change any and all of the default features in EPM. Note: If you change the same values in MYCNF.E and in the Quick Configure menu, those in Quick Configure will take precedence. You can also change the way the editor performs by changing the source code, which comes as a collection of ASCII files with extension .E. The source code is translated by a compiler (ETPM) into a file with extension .EX which will be loaded automatically by EPM as it starts execution. (See Compiling Macros.) The standard file EPM.EX is delivered in the initial EPM package and contains default information. Making elaborate changes, for example redefining commands or keys to perform differently, involves learning the E language and modifying the code. However, more simple changes to the layout of the editor can be made much more easily. Constants set in the files STDCNF.E and COLORS.E control the colors displayed on the screen, margin settings, tab settings, cursor sizes, insert mode status, terminal emulator to be used for editing host files, etc. You need very little experience to create a MYCNF.E that tailors the editor to your preferences without having to learn the E programming language. A sample MYCNF.SMP is included in EMACROS.FLS as a guide. You can override the STDCNF.E settings by using MYCNF.E. This has two advantages: 1. You can easily upgrade to new versions by dropping in the new files. No more need to merge your modified STDCNF.E with our new one, or to worry about accidentally overlaying your carefully customized version with ours. 2. Macro writers can include your MYCNF and use the constants the way that you defined them even if their routines aren't included in the base set of E code. Therefore, we strongly suggest that you create a MYCNF.E file if you want to make changes to the standard configuration. Do not make changes directly to STDCNF.E or COLORS.E (or, for that matter, to any of the distributed files). In the following, where you read change FOO in STDCNF, you should interpret this to mean find the line defining FOO in STDCNF.E, copy that to your MYCNF.E, and change the value in the copy. There are three sections to STDCNF.E, setting different types of defaults, and each can be overridden in the MYCNF.E file. The first section contains SET statements, the second section defines constants, and the third section initializes various global variables. To override the first section, you simply include the appropriate SET statement in your MYCNF. (The ones in STDCNF.E are commented out, and exist just to document the defaults.) To override the second section, simply define the constants. To override the third section, define a MY_variablename set to the desired value. Comments in STDCNF.E explain this in more detail, and examples of each can be seen in the sample MYCNF.SMP. Note: One user we know recommends copying the entire STDCNF.E into MYCNF.E in order to have all the spelling and the internal documentation handy. This is not a good idea. STDCNF.E contains some code executed when an EPM window is opened. MYCNF.E should contain no executable code. It should contain only SET, CONST and DEFINE statements. This is so that separately compiled routines can include MYCNF.E to pick up your preferences, without having any unexpected side effects. ═══ 16.1. The Defaults ═══ This section of MYCNF.E lists all of the modifiable options, their default values, and all possible values. You simply have to add the appropriate assignment to your MYCNF.E. After making one or more of the changes described here, you must compile (translate) the .E files. This can be done two ways. At the editor command line, type the command ETPM. This will invoke ETPM.EXE with the default filenames. The advantage of doing this from within EPM is the ease of correcting a syntax error (if there is one). EPM will automatically load the offending file and position the cursor to the error (or occasionally one line after it). You can also go to an OS/2 command prompt, and issue etpm epm from there. Before either method, make sure your current directory is the one where the E files are stored. String values of configuration options need not be entirely uppercase. A string value may be composed of any combination of upper and lower case letters. All strings will be converted to entirely uppercase letters by ETPM (the compiler) when comparisons are done. See Compiling Macros for more information. ═══ 16.2. Sample Reconfiguration ═══ One of the most common questions is how to change the default colors and margins. This section will walk a user through the steps needed to reconfigure EPM's default colors and margins. 1. Edit the file MYCNF.E. 2. enter the following lines lines of text into the MYCNF file: const DEFAULT_MARGINS = '1 75 5' compile if defined('BLACK') define WINDOWCOLOR = YELLOW + BLUEB TEXTCOLOR = WINDOWCOLOR MODIFIED_WINDOWCOLOR = WINDOWCOLOR DRAGCOLOR = LIGHT_BLUE + GREENB compile endif 3. Use F4 to save MYCNF and quit. 4. Move to the OS/2 prompt. 5. Change directories to the directory where your .E files are stored. 6. Enter the command: etpm epm 7. Providing no typing errors were made (ETPM will report these), the changes should be made. Opening a new EPM edit window should show the changes to the color scheme and the margin setups. These changes are only examples. See the next section for more information on what these changes mean and how to customize EPM for your own particular needs. ═══ 16.3. Summary of Configuration Constants ═══ The following section lists all the configuration constants used by EPM, along with their possible values. Note: The majority of these constants should follow a CONST statement in the MYCNF.E. The exception is the constants that set a color (DRAGCOLOR, MARKCOLOR, MESSAGECOLOR, STATUSCOLOR, TEXTCOLOR); these should follow a DEFINE statement. The reason for this is that they are already defined in COLORS.E, and constants set via CONST can not be redefined with different values, but compile-time variables set via DEFINE can be. ADD_BREAK_AFTER_DEFAULT Should a break statement be added after a default when doing C syntax expansion. ADDENDASUPPORT Include addenda-file support in spell-checking. ALLOW_PROMPTING_AT_TOP Should Prompting and Info at Top choices be connected. ALTERNATE_KEYSETS Include support for syntax assist and user-defined keysets. ALTERNATE_PASTE Alternate paste mode - as a line, block, or character mark. ASSIST_TRIGGER Use Enter or Ctrl+Enter to trigger syntax assist. AUTOSAVE_PATH Default autosave path. BACKUP_PATH Default backup path. BLOCK_ACTIONBAR_ACCELERATORS Should Alt+letter perform the editor-defined action, or activate the corresponding action bar menu. BLOCK_ALT_KEY Should tapping the Alt key activate the action bar. C_ENTER_ACTION Action performed by the Ctrl+Enter key. C_EXTENSIONS Extensions assumed to be C files for syntax expansion. C_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for C files. C_MARGINS Define margins for C files. C_SYNTAX_ASSIST Specify whether syntax assistance for C should be included. C_SYNTAX_INDENT Specify the indentation to be used for syntax assist for C files. C_TABS Define tabs for C files. CALL_USER_FTO Enable a user exit for setting file transfer options when saving a host file. CHECK_FOR_LEXAM Should the presence of the spell-checking library be checked at run time. CLICK_ONLY_GIVES_FOCUS Should clicking on an edit window just give focus, or also move the cursor. COMPILER_ERROR_COLOR Specify the color that lines with compiler errors will be displayed in, when EPM is called from the IBM Workframe/2. CORE_STUFF Include CORE-specific definitions. CPP_EXTENSIONS Extensions assumed to be C++ files for syntax expansion. CPP_SYNTAX_ASSIST Specify whether syntax assistance for C++ should be included. DEBUG Include debug messages in E3EMUL. DECIMAL Specify the character used for the decimal point. DEFAULT_AUTOSAVE Specify how many changes should occur between autosaves. DEFAULT_FILEMODE Specify the default filemode for VM files. DEFAULT_MARGINS Define margins for files without extension-specific defaults. DEFAULT_PASTE Default paste mode - as a line, block, or character mark. DEFAULT_TABS Define tabs for files without extension-specific defaults. DIRECTORYOF_STRING Specify the "Directory of" string that appears when a DIR command is executed. DRAGCOLOR Specify the color used when drag-marking. DRAG_ALWAYS_MARKS Specify whether a drag will start a mark even if a mark already exists. DUPLICATES_ALLOWED Specify whether duplicate bookmark names are allowed. DYNAMIC_CURSOR_STYLE Specify whether the cursor shape should be changable at runtime. DYNASPELL_BEEP Specify whether dynamic spell-checking should beep when an unrecognized word is typed. ENHANCED_ENTER_KEYS Specify whether support for dynamically changing the actions assigned to the Enter key combinations is included. ENHANCED_PRINT_SUPPORT Specify whether support for the print dialog is included. ENTER_ACTION Action performed by the Enter key. EPATH Specify what path should be searched for .e files. EPM_POINTER Specify the default pointer type. EPM_SHELL_PROMPT Specify the prompt to be used in the shell window. ETPM_CMD Specify the (fully-qualified) name of the ETPM command. EXTRA_EX Specify whether code should be split between EPM.EX and EXTRA.EX (required for normal-sized configurations in versions prior to 6.00c). E_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for E files. E_MARGINS Define margins for E files. E_SYNTAX_ASSIST Specify whether syntax assistance for C should be included. E_SYNTAX_INDENT Specify the indentation to be used for syntax assist for E files. E_TABS Define tabs for E files. FIX_CURSOR Set this if the cursor disappears after saving a host file. HELPFILENAME Specify the name of the file loaded when Help / Quick reference is selected. HIGHLIGHT_COLOR Specify that found strings should be circled. HOSTCOPYDRIVE Specify the host drive letter used for the HOSTCOPY command. HOSTCOPYOPTIONS Specify default options to be passed to the HOSTCOPY command. HOSTDRIVE Specify what letter should be used to indicate host files. HOSTDRIVE_REQUIRED Require that the host drive letter be specifed when using E3EMUL. HOST_LT_REQUIRED Require that the host logical terminal ID be specifed to indicate a host file. HOST_SUPPORT Specify the type of support to be included for editing files on a VM or MVS host. HTML_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for HTML files. INCLUDE_MATHLIB Specify whether math support routines should be compiled in or linked when needed. INCLUDE_MENU_SUPPORT Specify whether menu support should be included. INCLUDE_STANDARD_CONTEXT_MENU Specify whether the standard pop-up menus should be included. INCLUDE_STD_MENUS Specify whether the standard menus should be included. INCLUDE_WORKFRAME_SUPPORT Specify whether support for the IBM Workframe/2 should be included. IPF_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for IPF files. I_LIKE_A_SEMICOLON_SUPPLIED_AFTER_DEFAULT Specify whether a ';' should be supplied after a 'default' in C syntax assist. I_LIKE_MY_CASES_UNDER_MY_SWITCH Specify whether 'case' should be aligned under 'switch' in C syntax assist. JAVA_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for Java files. JAVA_SYNTAX_ASSIST Specify whether syntax assistance for Java should be included. KEEP_CURSOR_ON_SCREEN Specify whether the cursor should be allowed to be scolled off the screen using the scroll bars. KEEP_TAGS_FILE_LOADED Specify whether the TAGS file should be kept loaded. KEYWORD_HELP_INDEX_FILE Specify the default index file to be used for keyword help. LINK_HOST_SUPPORT Specify whether host support should be linked as an external file. LOCAL_MOUSE_SUPPORT Specify whether support should be included for file-specific mouse definitions. LOCATE_CIRCLE_STYLE Specify the circle style used when a Locate is done. LOCATE_CIRCLE_COLOR1 Specify the circle color used when a Locate is done. LOG_TAG_MATCHES Specify that "hits" from the tag search should be logged during a MAKETAGS. MAINFILE Specify the file to be compiled by ETPM if no name is given. MARKCOLOR Specify the color to be used for marked text. MENU_LIMIT Allow for the inclusion of a Ring menu. (Not recommended.) MESSAGECOLOR Specify the color to be used for the message line. MODIFIED_MARKCOLOR Specify the color to be used for marked text in a modified file. MODIFIED_WINDOWCOLOR Specify the color to be used for normal text in a modified file. MOUSE_SUPPORT Specify whether (and how) mouse support should be included. MVS Specify whether support should be included for editing files on an MVS host. MY_ADDENDA_FILENAME Specify a default addenda file name for spell-checking. MY_APPNAME Specify the application name to be used in the .INI file. MY_BINOPTIONS Specify default options for binary file transfers. MY_CENTER_SEARCH Specify the default initial value for CENTER_SEARCH, which controls whether a found target is centered in the screen. MY_CUA_MARKING_SWITCH Specify whether CUA marking should initially be on or off. MY_CUA_MENU_ACCEL Specify the initial mode for blocking the action bar accelerators. MY_CURSORDIMENSIONS Specify the size of the cursor for insert and replace mode. MY_DEFAULT_EDIT_OPTIONS Specify default options to be used on EDIT commands. MY_DEFAULT_SAVE_OPTIONS Specify default options to be used on SAVE commands. MY_DEFAULT_SEARCH_OPTIONS Specify default options to be used on LOCATE commands. MY_DEFAULT_TOOLBAR_FILE Specify default toolbar definition file. MY_DICTIONARY_FILENAME Specify the default dictionary filename to be used for spell checking. MY_EXPAND_ON Specify whether syntax expansion should initially be on or off. MY_EXTRA_EX_NAME Specify the name to be used for the EXTRA.EX file. MY_FTOPTIONS Specify default file transfer options for ASCII files. MY_HOSTCMD Specify the default command to be used for issuing host commands. MY_HOSTCOPY Specify the default command to be used for transferring files to the host. MY_HOSTDRIVE Specify what letter should be used to indicate host files. MY_JOIN_AFTER_WRAP Specify the initial value for the JOIN_AFTER_WRAP switch. MY_KEEP_TEMP_FILES Specify whether temporary files should be erased after use during host file editing. MY_LT Specify the default logical terminal to be used for host file editing. MY_MATCHTAB_ON Specify the initial MATCHTAB setting. MY_MENU_PROMPT Specify whether menu prompting should start out on or off. MY_MOUSE_POINTER Specify the initial mouse pointer style. MY_MOUSESTYLE Specify the default mouse behavior in Advanced Marking mode. MY_PRINTER Specify the default printer. MY_REXX_PROFILE Specify whether profile support should initially be on or off. MY_RING_ENABLED Specify whether the presence of the edit ring should initially be hidden. MY_SAVEPATH Specify a default SAVEPATH for host file editing. MY_SAVE_WITH_TABS Specify if EPM should convert multiple spaces to tabs when saving. MY_SCRIPT_FILE_TYPE Specify additional file types that should be considered to be SCRIPT files during spell checking. MY_SHOW_LONGNAMES Specify the initial value for LONGNAMES support. MY_STAY Specify the initial STAY default. MY_STREAM_MODE Specify whether stream mode should start out on or off. MY_TWO_SPACES Specify whether 1 or 2 spaces should be used at the end of a sentence during text reflow. NLS_LANGUAGE Specify the language to be used for text strings. NO_DUPLICATE_BOOKMARKS Specify if duplicate bookmarks should be disallowed. NO_ESCAPE Specify if the Escape key should not activate the command dialog. PERL_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for Perl files. PROCESSNAME_CMD Specify the command used when the filename is directly edited on the title bar. PROOF_CIRCLE_STYLE Specify the circle style used when PROOF finds a questionable word. PROOF_CIRCLE_COLOR1 Specify the circle color used when PROOF finds a questionable word. PROOF_DIALOG_FIXED Specify that the PROOF dialog always appear in a fixed location, instead of under the word being proofed. P_MARGINS Define margins for Pascal files. P_SYNTAX_ASSIST Specify whether syntax assistance for Pascal should be included. P_SYNTAX_INDENT Specify the indentation to be used for syntax assist for Pascal files. P_TABS Define tabs for Pascal files. RC_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for RC files. RECEIVE_CMD Specify the name of the RECEIVE command. REFLOW_LIKE_PE Specify that Alt+P paragraph reflow should move the cursor to the next paragraph on completion. RESPECT_CASE_FOR_ADDENDA Specify whether the case of words in the addenda should be respected. RESPECT_SCROLL_LOCK Specify whether the Scroll Lock state should be respected. RESTORE_MARK_AFTER_SORT Specify whether the mark should be restored after a sort operation. REXX_EXTENSIONS Extensions assumed to be Rexx files for syntax expansion. REXX_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for Rexx files. REXX_MARGINS Define margins for Rexx files. REXX_SYNTAX_ASSIST Specify whether syntax assistance for Rexx should be included. REXX_SYNTAX_CASE Specify what case keywords should be used for syntax assistance for Rexx. REXX_SYNTAX_FORCE_CASE Specify whether the case of user-typed keywords should be changed. REXX_SYNTAX_INDENT Specify the indentation to be used for syntax assist for Rexx files. REXX_SYNTAX_NO_ELSE Specify whether an Else should be inserted after an If statement. REXX_TABS Define tabs for Rexx files. RING_OPTIONAL Specify whether EPM should include support for hiding the presence of the edit ring. RUNTIME Specify if runtime support for changing E3EMUL settings should be included. SCRIPT_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for Script files. SEND_CMD Specify the name of the SEND command. SETSTAY Specify where the cursor should be after a Change command. SHIFT_BLOCK_ONLY Specify if shifting a block should also move text to the right of the mark. SHOW_EACH_PROCEDURE Specify if each procedure discovered while creating a tags file should be announced. SHOW_MODIFY_METHOD Specify how modified files should be displayed. SHOW_MODIFY_TEXT Specify the text to be included in the title bar for modified files. SMARTFILE Specify if the File key should Quit if there were no changes. SMARTSAVE Specify if the Save key should prompt you if there were no changes. SORT_BOOKMARKS Specify whether the bookmarks list should appear in sorted order. SORT_TYPE Specify the type of sort routine that should be included. SPELL_SUPPORT Specify whether spell-checking support should be included. STATUSCOLOR Specify te default color for the status line. STATUS_TEMPLATE Specify the default text that should appear on the status line. STD_MENU_NAME Specify the name of the file used to build the action bar. SUPPORT_BOOK_ICON Specify if Book Icon should appear on the Options menu. SUPPORT_TECHREF Specify if View Technical Reference should appear on the Help menu. SUPPORT_USER_EXITS Specify if hooks for user exits should be included. SUPPORT_USERS_GUIDE Specify if View User's Guide should appear on the Help menu. SYNTAX_INDENT Specify the indentation to be used for syntax assist. SYS_MONOSPACED_SIZE Specify the default System Monospaced font size. TAGS_ANYWHERE Specify whether or not TAGS should be searched for only starting in column 1. TEMP_FILENAME Specify the name of a temporary file ( including path). TEMP_PATH Specify the path to be used for temporary files. TERMINATE_COMMENTS Specify whether comments should be terminated as part of syntax assist. TEX_FILETYPES Specify the file types assumed to be TeX files. TEXTCOLOR Specify the default color to be used for normal text. TEX_KEYWORD_HIGHLIGHTING Specify whether keyword highlighting should automatically be turned on for TeX files. TOGGLE_ESCAPE Specify whether the ESCAPEKEY command should be defined. TOGGLE_TAB Specify whether the TABKEY command should be defined. TOP_OF_FILE_VALID Specify whether the user should be allowed to position the cursor on line 0. TRASH_TEMP_FILES Specify whether temporary files should get the "Quitting file" dialog if an attempt is made to quit them when they have been modified. UNDERLINE_CURSOR Specify that the cursor should be an underline instead of a vertical bar. UNMARK_AFTER_MOVE Set to automatically unmark after a move mark operation. USE_ANSI_C_NOTATION Specify if ANSI C notation should be used for the MAIN expansion in C syntax assist. USE_APPEND Specify if files not found in the current directory should be searched for in the DPATH. USE_EHLLAPI Specify if EHLLAPI calls should be used to invoke SEND and RECEIVE. USING Specify the file transfer protocol to be used when editing host files. VALID_LTS Specify the list of valid logical terminal identifiers. VANILLA Omit all user-written macro code. VM Specify if support should be included for editing files on a VM host. WANT_ALL Specify if the ALL command should be included. WANT_APPLICATION_INI_FILE Specify if support should be included for saving information in an application INI file. WANT_BITMAP_BACKGROUND Specify if a background bitmap should be present. WANT_BOOKMARKS Specify if bookmark support should be included. WANT_BRACE_BELOW_STATEMENT Specify if braces should appear below the statement in C syntax assist. WANT_BRACE_BELOW_STATEMENT_INDENTED Specify if the braces below the statement should be indented in C syntax assist. WANT_BRACKET_MATCHING Specify if bracket-matching code should be included. WANT_CHAR_OPS Specify if support for character marks should be included. WANT_CUA_MARKING Specify if support for the CUA-style marking should be included. WANT_DBCS_SUPPORT Specify if support for DBCS text should be included. WANT_DM_BUFFER Specify if text deleted via a delete_mark operation should be saved in a buffer. WANT_DOSUTIL Specify whether the OS-related functions in DOSUTIL.E should be included. WANT_DRAW Specify if the DRAW command should be included. WANT_DYNAMIC_PROMPTS Specify if support should be included for dynamic menu prompts. WANT_EBOOKIE Specify if support for EBOOKIE should be included. WANT_END_COMMENTED Specify if a comment should be added to the end of a statement or block in syntax assist. WANT_EPM_SHELL Specify if support for the EPM shell window should be included. WANT_ET_COMMAND Specify if support for the ETPM command should be included. WANT_GET_ENV Specify if the GET_ENV routine should be included. WANT_KEYWORD_HELP Specify if support for keyword help should be included. WANT_LAN_SUPPORT Specify if file locking support should be included. WANT_LONGNAMES Specify if support of the .LONGNAME EA should be included. WANT_MATH Specify if the math-related commands should be included. WANT_NODISMISS_MENUS Specify if the Preferences and Frame Controls menus should stay active. WANT_PROFILE Specify if support for a Rexx profile should be included. WANT_REXX Specify if support for Rexx should be included. WANT_SEARCH_PATH Specify is the search_path routine should be included. WANT_SHIFT_MARKING Specify is the search_path routine should be included. WANT_STACK_CMDS Specify if the (mark and cursor position) stack commands should be included. WANT_STREAM_MODE Specify if support for stream-mode editing should be included. WANT_STREAM_INDENTED Specify if a line split by stream-mode editing should be indented to match the previous line. WANT_SYS_MONOSPACED Specify if default font should be System Monospaced. WANT_TAGS Specify if support for tags files should be included. WANT_TINY_ICONS Specify if tiny icons should be used for the built-in toolbar. WANT_TOOLBAR Specify if support for the toolbar should be included. WANT_TRUNCATED_WARNING Specify if a pop-up should be given when a "Lines truncated" warning occurs. WORD_MARK_TYPE Specify if character or block marks should be used for marking words. WPS_SUPPORT Specify if support for the Workplace Shell Edit Object should be included. ═══ 16.3.1. ADD_BREAK_AFTER_DEFAULT ═══ Set ADD_BREAK_AFTER_DEFAULT in MYCNF.E to control whether or not a break statement is added after a default statement when doing C syntax expansion. The default value for ADD_BREAK_AFTER_DEFAULT is 1. Possible values are: 0 Don't add a break. 1 Add a break. ═══ 16.3.2. ADDENDASUPPORT ═══ Set ADDENDASUPPORT in MYCNF.E to control whether or not support for an addenda file (user additions to dictionary) is included as part of the spell checking support. The default value for ADDENDASUPPORT is 1. Possible values are: 0 Omit support. 1 Include support ═══ 16.3.3. ALLOW_PROMPTING_AT_TOP ═══ Set ALLOW_PROMPTING_AT_TOP in MYCNF.E to specify whether the Prompting and Info at Top choices of the Frame Controls pull-right menu on the Options menu are inter-connected. The default value for ALLOW_PROMPTING_AT_TOP is 1. Possible values are: 0 When Info at Top is turned on, Prompting will be turned off; when Prompting is turned on, Info at Top will be turned off. The net effect will be that selecting a menu can never have the menu hiding the prompt. 1 The menu selections are independent. ═══ 16.3.4. ALTERNATE_KEYSETS ═══ Set ALTERNATE_KEYSETS in MYCNF.E to control whether or not support for alternate keysets is included. This acts as a master switch for C_SYNTAX_ASSIST, E_SYNTAX_ASSIST, P_SYNTAX_ASSIST, and REXX_SYNTAX_ASSIST, as well as controlling whether MYKEYSET.E is included. The default value for ALTERNATE_KEYSETS is 1. Possible values are: 0 Don't define any other keysets. 1 Define the keysets indicated by the above constants and in MYKEYSET.E. ═══ 16.3.5. ALTERNATE_PASTE ═══ Set ALTERNATE_PASTE in MYCNF.E to specify the alternate paste style that should be used (when Ctrl+Shift+Insert is pressed). The possible values for ALTERNATE_PASTE are the same as for DEFAULT_PASTE. The default value for ALTERNATE_PASTE depends on the value set for DEFAULT_PASTE. If DEFAULT_PASTE pastes in character (or stream) mode, then ALTERNATE_PASTE will default to pasting in line mode; otherwise, ALTERNATE_PASTE will default to pasting in character mode. ═══ 16.3.6. ASSIST_TRIGGER ═══ Set ASSIST_TRIGGER in MYCNF.E to specify which key should trigger syntax assist. The default value for ASSIST_TRIGGER is 'ENTER' Possible values are: 'ENTER' The Enter key will be the trigger. 'C_ENTER' the Ctrl+Enter key will be the trigger. ═══ 16.3.7. AUTOSAVE_PATH ═══ Set AUTOSAVE_PATH in MYCNF.E to specify the directory in which autosave files will be saved. The default value for AUTOSAVE_PATH is the null string, which means that the current directory will be used. Note: The value set in the MYCNF.E can be overridden by the value set in the Paths page of the Settings dialog. Related configuration constants: DEFAULT_AUTOSAVE ═══ 16.3.8. BACKUP_PATH ═══ Set BACKUP_PATH in MYCNF.E to specify the directory in which backup files will be saved. Whenever a file is saved, the old version will be copied to the backup directory. The default value for BACKUP_PATH is the null string, which means that no backup files will be kept. It can be set to '=', which means that the directory of the file being saved will be used, or to any subdirectory (which must end with a trailing backslash). ═══ 16.3.9. BLOCK_ACTIONBAR_ACCELERATORS ═══ Whenever an action bar entry has a mnemonic defined, PM automatically defines it as an accelerator key. This blocks the normal action defined for that key in EPM. Taking NLS translations into account, this would essentially mean giving up all of the Alt+letter keys. Since we found this unacceptable, we defined the keys as accelerators ourself in order to bypass the PM definition. Set BLOCK_ACTIONBAR_ACCELERATORS in MYCNF.E to control whether or not these accelerator keys are definined by EPM. The default value for BLOCK_ACTIONBAR_ACCELERATORS is 1. Possible values are: 0 Don't block the PM definitions, so that Alt+C will go to the action bar Command menu, etc. 1 Define accelerator table entries to block the PM defaults, so Alt+C will perform a Copy Mark operation, etc. 'SWITCH' Support both marking modes, and allow the user to change back and forth between them (via an entry on the Preferences selection of the Options menu). Related configuration constants: MY_CUA_MENU_ACCEL ═══ 16.3.10. BLOCK_ALT_KEY ═══ Set BLOCK_ALT_KEY in MYCNF.E to define the Alt key as an accelerator. PM defines the Alt key so that pressing and releasing it will give focus to the action bar. Some users find this annoying, so EPM lets you redefine it to not do this. The default value for BLOCK_ALT_KEY is 0 Possible values are: 0 Pressing and releasing the Alt key will go to the action bar. 1 Pressing and releasing the Alt key will just beep. ═══ 16.3.11. C_ENTER_ACTION ═══ Set C_ENTER_ACTION in MYCNF.E to specify what action should be performed by the Ctrl+Enter key. If ENHANCED_ENTER_KEYS is set to 0, this controls the behavior of a my_c_enter() routine that will be called when the Ctrl+Enter key is pressed. If ENHANCED_ENTER_KEYS is set to 1, this only sets the initial value for the Ctrl+Enter and Ctrl+PadEnter keys. The default value for C_ENTER_ACTION is 'NEXTLINE' Possible values are: 'ADDLINE' Insert a line after the current line. 'NEXTLINE' Move to the next line without inserting a line. 'ADDATEND' ADDLINE if on last line, else NEXTLINE. 'DEPENDS' NEXTLINE if in insert_mode, else ADDLINE. 'DEPENDS+' ADDLINE if on last line, else DEPENDS. 'STREAM' Act like stream editors; Ctrl+Enter splits a line. '' Don't define a my_c_enter() routine; user will supply one (in MYSTUFF.E). Only meaningful if ENHANCED_ENTER_KEYS is set to 0, ═══ 16.3.12. C_EXTENSIONS ═══ Set C_EXTENSIONS in MYCNF.E to specify what extensions (or filetypes) should be considered to be C files for syntax expansion if C_SYNTAX_ASSIST is enabled. The default value for C_EXTENSIONS is 'C H SQC'. ═══ 16.3.13. C_KEYWORD_HIGHLIGHTING ═══ Set C_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing C files. The default value for C_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for C files. 1 Turn on keyword highlighting whenever a C file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.14. C_MARGINS ═══ Set C_MARGINS in MYCNF.E to specify what the margins should be when editing C files if C_SYNTAX_ASSIST is enabled. The default value for C_MARGINS is 1 MAXMARGIN 1, where MAXMARGIN is one less than the maximum length of a line. (MAXMARGIN is 254 for EPM versions prior to 5.60.) You can specify any valid margins, or set to 0 to indicate that no special margins should be set for C files. ═══ 16.3.15. C_SYNTAX_ASSIST ═══ Set C_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for the C language is included. The default value for C_SYNTAX_ASSIST is 1. Possible values are: 0 Omit support 1 Include support Related configuration constants: ADD_BREAK_AFTER_DEFAULT ALTERNATE_KEYSETS C_EXTENSIONS C_MARGINS C_SYNTAX_INDENT C_TABS CPP_SYNTAX_ASSIST I_LIKE_A_SEMICOLON_SUPPLIED_AFTER_DEFAULT I_LIKE_MY_CASES_UNDER_MY_SWITCH MY_EXPAND_ON TERMINATE_COMMENTS WANT_BRACE_BELOW_STATEMENT WANT_BRACE_BELOW_STATEMENT_INDENTED WANT_END_COMMENTED ═══ 16.3.16. C_SYNTAX_INDENT ═══ Set C_SYNTAX_INDENT in MYCNF.E to specify how many spaces blocks should be indented when using syntax assist for C files. The default value for C_SYNTAX_INDENT is SYNTAX_INDENT. ═══ 16.3.17. C_TABS ═══ Set C_TABS in MYCNF.E to set the default tabs setting for C files. The default value for C_TABS is 3. You can specify any valid tabs setting, or set to 0 to indicate that no special tabs should be set for C files. ═══ 16.3.18. CALL_USER_FTO ═══ Set CALL_USER_FTO in MYCNF.E to have a User_FTO() routine called to set the file transfer options when saving a host file (if HOST_SUPPORT is set to 'EMUL'). See E3EMUL.E for a sample User_FTO() routine. The default value for CALL_USER_FTO is 0. Possible values are: 0 Don't try to call a user exit. 1 Call the user exit when saving. ═══ 16.3.19. CHECK_FOR_LEXAM ═══ Set CHECK_FOR_LEXAM in MYCNF.E to have the LEXAM DLL checked for at run time, and spell support added to the Options menu only if it is found. This also controls whether the Dictionary File and Personal Dictionary entries are present on the Paths page of the Settings dialog. The default value for CHECK_FOR_LEXAM is 0. Possible values are: 0 Don't see if LEXAM.DLL is present. 1 Check to see if LEXAM.DLL is present. ═══ 16.3.20. CLICK_ONLY_GIVES_FOCUS ═══ Set CLICK_ONLY_GIVES_FOCUS in MYCNF.E to specify whether clicking mouse button 1 on an edit window just give focus to the edit window, or if it should also move the cursor. The default value for CLICK_ONLY_GIVES_FOCUS is 'ADVANCED' (so that in CUA mode, the behavior will be as in the OS/2 System Editor and all PM entry fields). Possible values are: 0 Always perform the action associated with mouse button 1. 'ADVANCED' Just give focus to the edit window if in Advanced marking mode; perform the action associated with mouse button 1 if in CUA marking mode. 'CUA' Just give focus to the edit window if in CUA marking mode; perform the action associated with mouse button 1 if in Advanced marking mode. 1 Just give focus to the edit window. Note: This option is only supported in version 6.03 or above. ═══ 16.3.21. COMPILER_ERROR_COLOR ═══ Set COMPILER_ERROR_COLOR in MYCNF.E to control what color lines containing errors are displayed in when EPM is invoked from the Workframe/2. The default value for COMPILER_ERROR_COLOR is 244, or red on a white background. Possible values are any combination of foreground and background colors as defined in COLORS.E. ═══ 16.3.22. CORE_STUFF ═══ Set CORE_STUFF in MYCNF.E to determine whether CORE-specific code is included. The default value for CORE_STUFF is 0. Possible values are: 0 Not being compiled for the CORE environment. 1 Being compiled for the CORE environment. ═══ 16.3.23. CPP_EXTENSIONS ═══ Set CPP_EXTENSIONS in MYCNF.E to specify what extensions (or filetypes) should be considered to be C files for syntax expansion if CPP_SYNTAX_ASSIST is enabled. The default value for CPP_EXTENSIONS is 'CPP HPP CXX HXX JAV JAVA'. ═══ 16.3.24. CPP_SYNTAX_ASSIST ═══ Set CPP_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for C++ is included whenever syntax assist for the C language is included. The default value for CPP_SYNTAX_ASSIST is 1. Possible values are: 0 Omit support 1 Include support Related configuration constants: ALTERNATE_KEYSETS C_SYNTAX_ASSIST JAVA_SYNTAX_ASSIST MY_EXPAND_ON ═══ 16.3.25. DEBUG ═══ Set DEBUG in MYCNF.E to cause debugging messages to be output by E3EMUL.E. This is not normally set by the end user. The default value for DEBUG is 0. Possible values are: 0 No debug messages. 1 Give messages. ═══ 16.3.26. DECIMAL ═══ Set DECIMAL in MYCNF.E to specify what character is used to represent the decimal point in the math-related commands. The default value for DECIMAL is '.'. ═══ 16.3.27. DEFAULT_AUTOSAVE ═══ Set DEFAULT_AUTOSAVE in MYCNF.E to specify the number of changes that can be made to a file before an autosave is performed. The default value for DEFAULT_AUTOSAVE is 100. Note: The value set in the MYCNF.E can be overridden by the value set in the Autosave page of the Settings dialog. ═══ 16.3.28. DEFAULT_FILEMODE ═══ Set DEFAULT_FILEMODE in MYCNF.E to specify what filemode should be assumed by E3EMUL for host files whose file mode is not specified. The default value for DEFAULT_FILEMODE is 'A'. Some users might prefer '*', but this should not be set before determining what effect a file mode of '*' will have when saving a host file using your file transfer program. ═══ 16.3.29. DEFAULT_MARGINS ═══ Set DEFAULT_MARGINS in MYCNF.E to specify the initial default margins for files not having syntax assist support available. The default value for DEFAULT_MARGINS is 1 MAXMARGIN 1, where MAXMARGIN is one less than the maximum length of a line. (MAXMARGIN is 254 for EPM versions prior to 5.60.) You can specify any valid margins. Note: The value set in the MYCNF.E can be overridden by the value set in the Margins page of the Settings dialog. Related configuration constants: C_MARGINS E_MARGINS P_MARGINS REXX_MARGINS ═══ 16.3.30. DEFAULT_PASTE ═══ Set DEFAULT_PASTE in MYCNF.E to specify which type of PASTE should be performed by the Shift+Insert key. The default value for DEFAULT_PASTE is 'C'. Possible values are: '' Paste as new lines. 'B' Paste as a block. 'C' Paste as a character stream. ═══ 16.3.31. DEFAULT_TABS ═══ Set DEFAULT_TABS in MYCNF.E to specify the initial default tabs for files not having syntax assist support available. The default value for DEFAULT_TABS is 8. ═══ 16.3.32. DIRECTORYOF_STRING ═══ Set DIRECTORYOF_STRING in MYCNF.E to the string equivalent to "Directory of" that is output by the OS/2 DIR command. The default value for DIRECTORYOF_STRING is DIR_OF__MSG, which is defined in ENGLISH.E or your NLS language version. You might want to specify a different value if you are using the English-language version of EPM on a non-English version of OS/2. ═══ 16.3.33. DRAGCOLOR ═══ Set DRAGCOLOR in MYCNF.E to specify what color should be used to display the marked area while drag-marking with the mouse. If DRAGCOLOR is not set, then the MARKCOLOR will be used. Note: DRAGCOLOR is used for line and character marks; inverse video is used for performance reasons when drag-marking a block mark. Note: Must follow a DEFINE, not a CONST. ═══ 16.3.34. DRAG_ALWAYS_MARKS ═══ Set DRAG_ALWAYS_MARKS in MYCNF.E to specify whether dragging the mouse should always start a new mark. The default value for DRAG_ALWAYS_MARKS is 0. Possible values are: 0 Don't start a new mark if one exists; instead, warn the user. 1 Always start a new mark; do an Unmark first if necessary. Note: This applies only to advanced marking mode; a new mark is always started in the CUA-style basic marking mode. ═══ 16.3.35. DUPLICATES_ALLOWED ═══ Set DUPLICATES_ALLOWED in MYCNF.E to specify whether more than one instance of a host file is allowed to be loaded into an edit ring when using E3EMUL.E for host support. The default value for DUPLICATES_ALLOWED is 1. Possible values are: 0 Don't allow the same host file to appear more than once in the ring. 1 Allow multiple copies. ═══ 16.3.36. DYNAMIC_CURSOR_STYLE ═══ Set DYNAMIC_CURSOR_STYLE in MYCNF.E to specify that the cursor style should be changeable at run time (via the Cursor_Style command). The default value for DYNAMIC_CURSOR_STYLE is 0. Possible values are: 0 Don't allow the cursor shape to be changed at run time. 1 Allow the cursor shape to be changed at run time. Related configuration constants: MY_CURSORDIMENSIONS ═══ 16.3.37. DYNASPELL_BEEP ═══ Set DYNASPELL_BEEP in MYCNF.E to specify whether dynamic spell-checking should beep when an unrecognized word is typed. A message will be displayed on the message line whether or not the beep is enabled. The default value for DYNASPELL_BEEP is 'ALARM'. Possible values are: 0 Don't beep when an unrecognized word is typed. 'ALARM' Execute a WinAlarm() call to issue a warning when an unrecognized word is typed. This will perform whatever action you have associated with system warnings. 1 Beep when an unrecognized word is typed. People who have the multimedia extensions installed, with an audio file associated with the system warning, and are on a slow system, might prefer to simply get a beep. ═══ 16.3.38. ENHANCED_ENTER_KEYS ═══ Set ENHANCED_ENTER_KEYS in MYCNF.E to specify whether support should be included for dynamically setting the action performed by the Enter keys (Enter, Alt+Enter, Ctrl+Enter, Shift+Enter, PadEnter, Alt+PadEnter, Ctrl+PadEnter, Shift+PadEnter). The default value for ENHANCED_ENTER_KEYS is 0. Possible values are: 0 The Ctrl+Enter and Ctrl+PadEnter keys are set to the action indicated by the C_ENTER_ACTION configuration constant, and the remaining Enter keys are set to the action indicated by the ENTER_ACTION configuration constant. 1 The Enter keys can be set dynamically via a Keys page on the Settings dialog. ═══ 16.3.39. ENHANCED_PRINT_SUPPORT ═══ Set ENHANCED_PRINT_SUPPORT in MYCNF.E to specify whether the Print entries on the File and Edit menus bring up the Print Dialog, or simply print the file or marked area (in draft mode) to the default printer The default value for ENHANCED_PRINT_SUPPORT is 0. Possible values are: 0 Print menu items print to the default printer 1 Print menu items activate the Print Dialog. ═══ 16.3.40. ENTER_ACTION ═══ Set ENTER_ACTION in MYCNF.E to specify what action should be performed by the Enter keys (Enter, Alt+Enter, Shify+Enter, PadEnter,Alt+PadEnter, Shift+PadEnter). If ENHANCED_ENTER_KEYS is set to 0, this controls the behavior of a my_enter() routine that will be called when one of the Enter keys is pressed. If ENHANCED_ENTER_KEYS is set to 1, this only sets the initial value for the Enter keys. The default value for ENTER_ACTION is 'ADDLINE'. Possible values are: 'ADDLINE' Insert a line after the current line. 'NEXTLINE' Move to the next line without inserting a line. 'ADDATEND' ADDLINE if on last line, else NEXTLINE. 'DEPENDS' ADDLINE if in insert_mode, else NEXTLINE. 'DEPENDS+' ADDLINE if on last line, else DEPENDS. 'STREAM' Act like stream editors; Enter splits a line at the cursor position. '' Don't define a my_enter() routine; user will supply one (in MYSTUFF.E). Only meaningful if ENHANCED_ENTER_KEYS is set to 0, ═══ 16.3.41. EPATH ═══ Set EPATH in MYCNF.E to specify the name of the environment variable used by EPM to search for editor-specific files. For example, the EPATH and OPENPATH commands use this as the default path to search. The default value for EPATH is 'EPMPATH'. Note: The editor path is also set internally by the editor, and can not be changed by the user. EPATH should be left as 'EPMPATH' when compiling macros for EPM, and set to 'LAMPATH' when compiling macros for LaMail. ═══ 16.3.42. EPM_POINTER ═══ Set EPM_POINTER in MYCNF.E to specify what shape you want the EPM mouse pointer to have. The default value for EPM_POINTER is TEXT_POINTER, or 2. Possible values are listed in STDCONST.E; see the _POINTER constants. compile if defined(SYSTEM_POINTER) const EPM_POINTER = SYSTEM_POINTER -- I prefer the arrow pointer compile endif EPM_POINTER can also be set to 'switch', to indicate that the mouse pointer shape should be dynamically changable at run time (via the SetMousePointer command). If it is, then the my_MOUSE_POINTER constant can be used to specify an initial value. ═══ 16.3.43. EPM_SHELL_PROMPT ═══ Set EPM_SHELL_PROMPT in MYCNF.E to specify a string that will be written to a newly-created shell window. This string will generally be a PROMPT command. The default value for EPM_SHELL_PROMPT is '@prompt epm: $p $g'. Note: Support for automatically performing a Write to shell when the Enter key is pressed in a shell window is only included if EPM_SHELL_PROMPT is left at the default value. ═══ 16.3.44. ETPM_CMD ═══ Set ETPM_CMD in MYCNF.E to specify the name of the external ETPM command used by the macro ETPM and RELINK commands. This constant will generally be used if ETPM.EXE is not in the PATH, or if a different version of ETPM would be found earlier in the PATH. For example: const compile if EVERSION >= 6 ETPM_CMD = 'd:\epm\600\etpm' compile elseif EVERSION >= 5.60 ETPM_CMD = 'd:\epm\560\etpm' compile elseif EVERSION >= 5.51 ETPM_CMD = 'd:\epm\551\etpm' compile endif ═══ 16.3.45. EXTRA_EX ═══ Set EXTRA_EX in MYCNF.E to specify that the base function normally included in EPM.EX is to be split between EPM.EX and EXTRA.EX. The standard configuration is too large to fit into a single 64k .ex file, so this constant must be set to 1 unless you are setting other constants to omit a large amount of code. The default value for EXTRA_EX is 0. Possible values are: 0 EPM.EX will be a stand-alone file. 1 EPM.EX will automatically link EXTRA.EX at startup. Note: When EXTRA_EX is 1, the EPM action bar is built in EXTRA.EX while most of the commands used by it are built in EPM.EX. This means that whenever a configuration constant affecting the action bar is changed, both EPM and EXTRA should be recompiled. Note: Version 6.00c and above can create and use a larger .ex file, so this constant need not be set in those versions. ═══ 16.3.46. E_KEYWORD_HIGHLIGHTING ═══ Set E_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing E files. The default value for E_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for E files. 1 Turn on keyword highlighting whenever a *.E file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.47. E_MARGINS ═══ Set E_MARGINS in MYCNF.E to to specify what the margins should be when editing E files if E_SYNTAX_ASSIST is enabled. The default value for E_MARGINS is 1 MAXMARGIN 1, where MAXMARGIN is one less than the maximum length of a line. (MAXMARGIN is 254 for EPM versions prior to 5.60.) You can specify any valid margins, or set to 0 to indicate that no special margins should be set for E files. ═══ 16.3.48. E_SYNTAX_ASSIST ═══ Set E_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for the E language is included. The default value for E_SYNTAX_ASSIST is 1. Possible values are: 0 Omit support 1 Include support Related configuration constants: ALTERNATE_KEYSETS E_MARGINS E_SYNTAX_INDENT E_TABS MY_EXPAND_ON TERMINATE_COMMENTS WANT_END_COMMENTED ═══ 16.3.49. E_SYNTAX_INDENT ═══ Set E_SYNTAX_INDENT in MYCNF.E to specify how many spaces blocks should be indented when using syntax assist for E files. The default value for E_SYNTAX_INDENT is SYNTAX_INDENT. ═══ 16.3.50. E_TABS ═══ Set E_TABS in MYCNF.E to set the default tabs setting for E files. The default value for E_TABS is 3. You can specify any valid tabs setting, or set to 0 to indicate that no special tabs should be set for E files. ═══ 16.3.51. FIX_CURSOR ═══ Set FIX_CURSOR in MYCNF.E to work around a bug in ALMCOPY which sometimes results in the cursor not being restored after a file transfer. If you use ALMCOPY for host file transfer, and "lose" the text cursor after loading or saving a host file, set FIX_CURSOR=1. The default value for FIX_CURSOR is 0. Possible values are: 0 Do nothing special. 1 Fix the cursor after calling ALMCOPY. Note: FIX_CURSOR=1 only applies if HOST_SUPPORT is set to 'EMUL'. ═══ 16.3.52. HELPFILENAME ═══ Set HELPFILENAME in MYCNF.E to specify the file to be loaded when Quick Reference is selected from the Help menu. The default value for HELPFILENAME is 'epmhelp.qhl'. ═══ 16.3.53. HIGHLIGHT_COLOR ═══ Set HIGHLIGHT_COLOR in MYCNF.E to specify that after a successful Locate or repeat_find (Ctrl+F) operation, the target string should be highlighted. In versions of EPM prior to 5.50, the value was the color used to highlight the text. In 5.50 and above, the text is highlighted by having a circle drawn around it, and the actual value used for HIGHLIGHT_COLOR is irrelevant. The default value for HIGHLIGHT_COLOR is that it is not set. See Also: o LOCATE_CIRCLE_STYLE to select the style circle drawn. o LOCATE_CIRCLE_COLOR1 to select the color in which the circle is drawn. ═══ 16.3.54. HOSTCOPYDRIVE ═══ Set HOSTCOPYDRIVE in MYCNF.E to specify the drive letter used to indicate the host session to the HOSTCOPY command. This lets you change the HOSTDRIVE and the HOSTCOPYDRIVE independently. Note: If HOST_SUPPORT is set to 'EMUL'. then HOSTCOPYDRIVE should only contain a drive letter. If HOST_SUPPORT is set to (or defaults to) 'STD', then HOSTCOPYDRIVE should contain a drive letter followed by a colon. The default value for HOSTCOPYDRIVE is 'H' or 'H:'. It should not be changed. ═══ 16.3.55. HOSTCOPYOPTIONS ═══ Set HOSTCOPYOPTIONS in MYCNF.E to specify options that should be included as part of the HOSTCOPY command if HOST_SUPPORT is set to (or defaults to) 'STD'. If HOST_SUPPORT is set to 'EMUL'. then my_FTOPTIONS and my_BINOPTIONS are used instead. The default value for HOSTCOPYOPTIONS is the null string. ═══ 16.3.56. HOSTDRIVE ═══ Set HOSTDRIVE in MYCNF.E to specify what drive letter should be used to represent the host when HOST_SUPPORT is set to (or defaults to) 'STD'. The default value for HOSTDRIVE is 'H:'. (The trailing colon is required.) Users who have a real H: drive on their machine might want to set it to some other value - for example, 'V:' to represent VM files. Related configuration constants: my_HOSTDRIVE (for E3EMUL users) ═══ 16.3.57. HOSTDRIVE_REQUIRED ═══ Set HOSTDRIVE_REQUIRED in MYCNF.E to specify that the host drive letter is required when editing host files using HOST_SUPPORT='EMUL'. Normally, E3EMUL will attempt to figure out whether the argument of an Edit command is a host file or a workstation file; if it is ambiguous, it will be assumed to represent a host file. The default value for HOSTDRIVE_REQUIRED is 0. Possible values are: 0 Assume that ambiguous strings not containing a drive specifier represent host files. 1 Don't assume that a file is a host file unless the host drive letter is given explicitly. ═══ 16.3.58. HOST_LT_REQUIRED ═══ Set HOST_LT_REQUIRED in MYCNF.E to specify that a logical terminal ID is required when editing host files using HOST_SUPPORT='EMUL'. This lets users with a local H: drive use H: to refer to the local drive, and HA: to refer to the host session (LT A). The default value for HOST_LT_REQUIRED is 0 Possible values are: 0 Don't require the LT. 1 Require the LT. Related configuration constants: my_HOSTDRIVE HOSTDRIVE_REQUIRED ═══ 16.3.59. HOST_SUPPORT ═══ Set HOST_SUPPORT in MYCNF.E to specify the type of support included in EPM for editing files that reside on a VM or MVS host. In order to load or save a host file, you must be logged on to the host through Communications Manager. The default value for HOST_SUPPORT is 'STD' when compiling EPM.E, or '' when compiling SMALL.E. Possible values are: 'STD' Use the standard host support method, SAVELOAD.E. This only supports a single VM host session, and requires an external file transfer program (such as Almcopy). It does not support Communication Manager's Send / Receive. 'EMUL' Use the enhanced host support method, E3EMUL.E. This supports multiple host sessions (logical terminals), both VM and MVS files, Send / Receive, and is the most flexible. 'SRPI' Use the enhanced host support method, SLSRPI.E. This supports multiple VM host sessions, and is the fastest file transfer method (since files are loaded and saved directly between the workstation's memory and the host disk, rather than going through a temporary file on the workstations's disk). The drawback is that a SRPI server must be running on the host in order to load or save files. SLSRPI.E and the required SRPI servers are available in the LaMail22 package within IBM, and are not currently available externally. '' Use SLNOHOST.E and omit host support entirely. Related configuration constants: LINK_HOST_SUPPORT ═══ 16.3.60. HTML_KEYWORD_HIGHLIGHTING ═══ Set HTML_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing HTML files. The default value for HTML_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for HTML files. 1 Turn on keyword highlighting whenever an HTML file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.61. INCLUDE_MATHLIB ═══ Set INCLUDE_MATHLIB in MYCNF.E to specify whether the bulk of the MATH-related commands are included in the base .ex file or linked separately when needed. The default value for INCLUDE_MATHLIB is 0. Possible values are: 0 Omit most of the support; dynamically link MATHLIB.EX when any of MATH, MATHX, MATHO, ADD, or MULT are entered. 1 Include the MATHLIB support in the base .ex file. Note: The value of INCLUDE_MATHLIB is ignored if EXTRA_EX is 1; in this case, EXTRA_EX will include all of MATH.E. Related configuration constants: WANT_MATH ═══ 16.3.62. INCLUDE_MENU_SUPPORT ═══ Set INCLUDE_MENU_SUPPORT in MYCNF.E to specify whether or not support for the EPM action bar is included. The default value for INCLUDE_MENU_SUPPORT is 1. Possible values are: 0 Omit support 1 Include support Note: This would only be set by someone providing their own action bar, either in the macro language or by using the E Toolkit. Related configuration constants: INCLUDE_STD_MENUS ═══ 16.3.63. INCLUDE_STANDARD_CONTEXT_MENU ═══ Set INCLUDE_STANDARD_CONTEXT_MENU in MYCNF.E to specify whether or not the standard EPM pop-up menu is defined. The default value for INCLUDE_STANDARD_CONTEXT_MENU is 1. Possible values are: 0 Omit the standard pop-up menu 1 Include the standard pop-up menu Note: This could be set by someone who wanted to define their own pop-up menu via the macro language, and omit the standard selections. Note: Pop-up menus are only supported for EPM version 5.60 or above. Related configuration constants: INCLUDE_STD_MENUS ═══ 16.3.64. INCLUDE_STD_MENUS ═══ Set INCLUDE_STD_MENUS in MYCNF.E to specify whether or not the default EPM action bar is created. The default value for INCLUDE_STD_MENUS is 1. Possible values are: 0 Omit the action bar 1 Include the action bar Note: This would only be set by someone creating their own action bar via the macro language. Related configuration constants: INCLUDE_MENU_SUPPORT INCLUDE_STANDARD_CONTEXT_MENU ═══ 16.3.65. INCLUDE_WORKFRAME_SUPPORT ═══ Set INCLUDE_WORKFRAME_SUPPORT in MYCNF.E to specify whether the commands sent from the IBM Workframe/2 should be defined in EPM. The default value for INCLUDE_WORKFRAME_SUPPORT is 1. Possible values are: 0 Omit support 1 Include support Note: Compiler support is only included if bookmark support is included. ═══ 16.3.66. IPF_KEYWORD_HIGHLIGHTING ═══ Set IPF_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing IPF files. The default value for IPF_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for IPF files. 1 Turn on keyword highlighting whenever an IPF file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.67. I_LIKE_A_SEMICOLON_SUPPLIED_AFTER_DEFAULT ═══ Set I_LIKE_A_SEMICOLON_SUPPLIED_AFTER_DEFAULT in MYCNF.E to specify that a semicolon should be supplied after a DEFAULT statement when expanding a SWITCH statement with C syntax assist active. The default value for I_LIKE_A_SEMICOLON_SUPPLIED_AFTER_DEFAULT is 0. Possible values are: 0 Don't add a semicolon. 1 Add a line containing a semicolon after inserting the line containing the DEFAULT statement. Related configuration constants: C_SYNTAX_ASSIST MY_EXPAND_ON ═══ 16.3.68. I_LIKE_MY_CASES_UNDER_MY_SWITCH ═══ Set I_LIKE_MY_CASES_UNDER_MY_SWITCH in MYCNF.E to specify whether the CASE statement should be aligned under the SWITCH when expanding a SWITCH statement with C syntax assist active. The default value for I_LIKE_MY_CASES_UNDER_MY_SWITCH is 1. Possible values are: 0 Indent the CASE statement. 1 Align the CASE statement with the SWITCH statement. Related configuration constants: C_SYNTAX_ASSIST MY_EXPAND_ON SYNTAX_INDENT ═══ 16.3.69. JAVA_KEYWORD_HIGHLIGHTING ═══ Set JAVA_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing Java files. The default value for JAVA_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for Java files. 1 Turn on keyword highlighting whenever a Java file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.70. JAVA_SYNTAX_ASSIST ═══ Set JAVA_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for Java is included whenever syntax assist for the C language is included. (CPP_SYNTAX_ASSIST should be turned on as well.) The default value for JAVA_SYNTAX_ASSIST is 0. Possible values are: 0 Omit support 1 Include support Related configuration constants: ALTERNATE_KEYSETS C_SYNTAX_ASSIST CPP_SYNTAX_ASSIST MY_EXPAND_ON ═══ 16.3.71. KEEP_CURSOR_ON_SCREEN ═══ Set KEEP_CURSOR_ON_SCREEN in MYCNF.E to specify whether the cursor should be allowed to scroll off the visible portion of the edit window. The default value for KEEP_CURSOR_ON_SCREEN is 1. Possible values are: 0 Conform to CUA, and don't change the line the cursor is on when scrolling with the scroll bars. If the cursor is scrolled off the screen, then pressing any key that moves the cursor will cause the screen to jump so that the cursor is once again visible. 1 When scrolling with the scroll bars, keep the cursor at the same screen-relative position. Note: This option is only supported for EPM version 5.60 or above. ═══ 16.3.72. KEYWORD_HELP_INDEX_FILE ═══ Set KEYWORD_HELP_INDEX_FILE in MYCNF.E to specify the name of the index file(s) used for providing keyword help. The default value for KEYWORD_HELP_INDEX_FILE is 'epmkwhlp.ndx'. The value can be a single filename or a list of filenames separated by plus signs. For example, const KEYWORD_HELP_INDEX_FILE = 'epmkwhlp.ndx+epmtech.ndx+dde4.ndx' Each file listed will be searched for in the current directory, EPMPATH, DPATH, EPM.EXE's directory, and PATH (in that order). Note: The value compiled in will be overridden by the value of the environment variable HELPNDX if it is set in your environment. Related configuration constants: WANT_KEYWORD_HELP ═══ 16.3.73. KEEP_TAGS_FILE_LOADED ═══ Set KEEP_TAGS_FILE_LOADED in MYCNF.E to specify whether the TAGS file should be kept loaded after it is used. The default value for KEEP_TAGS_FILE_LOADED is 1. Possible values are: 0 Don't keep the TAGS file loaded; reload it every time the user attempts to use it. 1 Once the TAGS file is loaded, keep it as a hidden file for better performance if the user tries to find additional entries in the TAGS file. Note: This option is only supported for EPM version 5.60 or above. Related configuration constants: WANT_TAGS ═══ 16.3.74. LINK_HOST_SUPPORT ═══ Set LINK_HOST_SUPPORT in MYCNF.E to specify that the support for editing host files is to be linked separately. This can be used if there is no other way to fit everything you need into your EPM.EX, but it is not recommended since the separate file contains support for loading and saving workstation files as well as host files; if you have a problem with the separate .ex file, you won't be able to edit anything. The default value for LINK_HOST_SUPPORT is 0. Possible values are: 0 Include host support in the base .ex file. 1 Include host support in a separate .ex file that will dynamically be linked at run time. This is only supported for HOST_SUPPORT set to 'EMUL' or 'SRPI'. ═══ 16.3.75. LOCAL_MOUSE_SUPPORT ═══ Set LOCAL_MOUSE_SUPPORT in MYCNF.E to include support for local mouse definitions. A local mouse definition is one that applies to a single file, rather than to all files in the ring. Since the default macros don't take advantage of this, you would only set this to 1 if you were writing your own mouse macros. (See the description of register_mousehandler in EPMTECH.INF.) The default value for LOCAL_MOUSE_SUPPORT is 0. Possible values are: 0 Omit local mouse support. 1 Include local mouse support. ═══ 16.3.76. LOCATE_CIRCLE_STYLE ═══ Set LOCATE_CIRCLE_STYLE in MYCNF.E to specify the style circle that should be drawn around a string found by a Locate command or repeat_find operation, if the HIGHLIGHT_COLOR configuration constant is set. The default value for LOCATE_CIRCLE_STYLE is 1. Possible values are: 1 Draw a smooth circle or oval in a single color. 2 Draw an oval with the ends overlapping, in two colors. 3 Like 1, but wider 4 Like 2, but wider 5 Like 1, but a solid figure is drawn instead of just an outline. Note: Values above 2 can only be used in versions 5.60 and above. See Also: o LOCATE_CIRCLE_COLOR1 to select the color in which the circle is drawn. ═══ 16.3.77. LOCATE_CIRCLE_COLOR1 ═══ Set LOCATE_CIRCLE_COLOR1 in MYCNF.E to specify the circle color used when a Locate or repeat_find is done, if the HIGHLIGHT_COLOR configuration constant is set. If a circle style that uses 2 colors is specified, then the constant LOCATE_CIRCLE_COLOR2 will be used for the second color; the meaning of its value is as described here. The color specified can be 0 through 15, corresponding to the color constants defined in COLORS.E, or it can be an XOR mask (indicated by adding 16,777,216 to the value of the desired mask). If an XOR mask is used, then the circle will be drawn by XORing the mask with the contents of the screen. An XOR mask is generally preferable, since the color will automatically be adjusted according to the background - a specific color might not show up if the background or mark color is the same color. The default value for LOCATE_CIRCLE_COLOR1 is 16777220, and for LOCATE_CIRCLE_COLOR2 is 16777218. Note: This configuration constant is only used in versions 5.60 and above. See Also: o LOCATE_CIRCLE_STYLE to select the style circle drawn. ═══ 16.3.78. LOCATE_CIRCLE_COLOR2 ═══ See the description of LOCATE_CIRCLE_COLOR1. ═══ 16.3.79. LOG_TAG_MATCHES ═══ Set LOG_TAG_MATCHES in MYCNF.E to specify whether "hits" during a MAKETAGS should be logged. This flag is primarily intended for debugging purposes. The default value for LOG_TAG_MATCHES is 0. Possible values are: 0 Don't create a log file. 1 Create a log file, TAGS.LOG, and add entries to it for every "hit" gotten during a MAKETAGS operation. Note: This option is only supported for EPM version 5.60 or above. Related configuration constants: WANT_TAGS ═══ 16.3.80. MAINFILE ═══ Set MAINFILE in MYCNF.E to specify the name of the macro file to be compiled by the ETPM command if no argument is specified. The default value for MAINFILE is 'epm.e'. ═══ 16.3.81. MARKCOLOR ═══ Set MARKCOLOR in MYCNF.E to specify the color in which marked (selected) text should be displayed. The default value for MARKCOLOR is Blue + GreyB. Note: The value set in the MYCNF.E can be overridden by the value set in the Colors page of the Settings dialog. Note: Must follow a DEFINE, not a CONST. ═══ 16.3.82. MENU_LIMIT ═══ Set MENU_LIMIT in MYCNF.E to include a Ring entry on the action bar that lists each file in the edit ring. The value of MENU_LIMIT is the number of files that will be included in the Ring pulldown. If more than this many files are in the ring, the (MENU_LIMIT + 1) entry will be More..., which will bring up a listbox. One exception - if you set this to 0, there will be no Ring pulldown; instead, a List ring entry will be added to the Options pulldown. This means that adding files to or removing them from the ring will be faster. The default value for MENU_LIMIT is 0. ═══ 16.3.83. MESSAGECOLOR ═══ Set MESSAGECOLOR in MYCNF.E to specify the color for the message line, and for error messages displayed when the message line is hidden. The default value for MESSAGECOLOR is Light_Red + WhiteB. Note: The value set in the MYCNF.E can be overridden by the value set in the Colors page of the Settings dialog. Note: Must follow a DEFINE, not a CONST. ═══ 16.3.84. MODIFIED_MARKCOLOR ═══ Set MODIFIED_MARKCOLOR in MYCNF.E to specify the color in which marked text should be displayed in a modified file when SHOW_MODIFY_METHOD is set to 'COLOR'. The default value for MODIFIED_MARKCOLOR is Blue + WhiteB. ═══ 16.3.85. MODIFIED_WINDOWCOLOR ═══ Set MODIFIED_WINDOWCOLOR in MYCNF.E to specify the color in which unmarked text should be displayed in a modified file when SHOW_MODIFY_METHOD is set to 'COLOR'. The default value for MODIFIED_WINDOWCOLOR is White + BlueB. Possible values are: 0 Omit support 1 Include support ═══ 16.3.86. MOUSE_SUPPORT ═══ Set MOUSE_SUPPORT in MYCNF.E to specify whether or not mouse support should be included in the base .ex file. The default value for MOUSE_SUPPORT is 1. Possible values are: 0 Omit mouse support completely. 1 Include mouse support in EPM.EX (or in EXTRA.EX if EXTRA_EX is 1). 'LINK' Dynamically link MOUSE.EX at run time (if EXTRA_EX is 0; if EXTRA_EX is 1, then MOUSE.E will be included in EXTRA.EX). ═══ 16.3.87. MVS ═══ Set MVS in MYCNF.E to specify whether support for editing files on an MVS host should be included; this only applies when HOST_SUPPORT is set to 'EMUL'. The default value for MVS is 0. Possible values are: 0 Omit MVS support. 1 Include MVS support. ═══ 16.3.88. MY_ADDENDA_FILENAME ═══ Set MY_ADDENDA_FILENAME in MYCNF.E to specify the name of the dictionary addenda file to be used when spell checking a file. The default value for MY_ADDENDA_FILENAME is 'c:\lexam\lexam.adl'. Note: The value set in the MYCNF.E can be overridden by the value set in the Paths page of the Settings dialog. Related configuration constants: SPELL_SUPPORT ADDENDASUPPORT CHECK_FOR_LEXAM ═══ 16.3.89. MY_APPNAME ═══ Set MY_APPNAME in MYCNF.E to specify the name of the application in the EPM.INI file (or LAM.INI for LaMail) under which configuration information will be saved. The default value for MY_APPNAME is the first 3 characters of the .ex search path name (i.e., 'EPM' for EPM and 'LAM' for LaMail). ═══ 16.3.90. MY_BINOPTIONS ═══ Set MY_BINOPTIONS in MYCNF.E to specify the default file transfer options that should be used when loading or saving host binary files if HOST_SUPPORT is set to 'EMUL'. If HOST_SUPPORT is set to (or defaults to) 'STD', then HOSTCOPYOPTIONS is used instead. The default value for MY_BINOPTIONS is dependant on the value for USING; see E3EMUL.E. ═══ 16.3.91. MY_CENTER_SEARCH ═══ Set MY_CENTER_SEARCH in MYCNF.E to specify the initial value for the predefined universal variable CENTER_SEARCH, which controls the position of the cursor after a successful Locate or repeat_find (Ctrl+F) operation. The default value for MY_CENTER_SEARCH is 1. Possible values are: 0 Cursor moves to target string; if target is before or after the text in the window, the cursor moves to the first or last line of the edit window (respectively). 1 Cursor moves to target string if it is visible in the edit window; target string is centered vertically in the edit window if it was found outside the window. 2 Target string is always centered vertically in the edit window. ═══ 16.3.92. MY_CUA_MARKING_SWITCH ═══ Set MY_CUA_MARKING_SWITCH in MYCNF.E to specify the initial value for the CUA_marking_switch flag when WANT_CUA_MARKING is set to 'SWITCH'. The default value for MY_CUA_MARKING_SWITCH is 0. Possible values are: 0 Start out in Advanced Marking mode. 1 Start out in the more limited CUA-compatible mode. ═══ 16.3.93. MY_CUA_MENU_ACCEL ═══ Set MY_CUA_MENU_ACCEL in MYCNF.E to specify the initial value for the CUA_menu_accel flag when BLOCK_ACTIONBAR_ACCELERATORS is set to 'SWITCH'. The default value for MY_CUA_MENU_ACCEL is 0. Possible values are: 0 Start out with the CUA accelerators blocked, so the EPM-defined actions will be performed. 1 Start out with the CUA accelerator definitions in effect. ═══ 16.3.94. MY_CURSORDIMENSIONS ═══ Set MY_CURSORDIMENSIONS in MYCNF.E to specify the initial dimensions of the cursor when DYNAMIC_CURSOR_STYLE is set to 1. The default value for MY_CURSORDIMENSIONS is '-128.3 -128.-64' if UNDERLINE_CURSOR is set to 1, otherwise the default is '-128.-128 2.-128'. The value is width.height for replace mode, followed by width.height for insert mode. Each width and height value can be a positive number, representing the number of pixels wide or high the cursor should be, or a negative number, whose absolute value represents the number of 128ths of the character width or height the cursor should be. So, '2.-128' would represent a cursor 2 pixels wide and the same height as the current character. ═══ 16.3.95. MY_DEFAULT_EDIT_OPTIONS ═══ Set MY_DEFAULT_EDIT_OPTIONS in MYCNF.E to give an initial value for the DEFAULT_EDIT_OPTIONS universal variable, which is used as default options by the Edit command. These default options can be overridden by options given with any particular edit command. For example, if you normally don't want tabs to be expanded to spaces when loading a file, you could include in your MYCNF.E: const my_DEFAULT_EDIT_OPTIONS = '/t' If you then did want to expand tabs for one file, you could enter the command: e /nt myfile The default value for MY_DEFAULT_EDIT_OPTIONS is the null string. ═══ 16.3.96. MY_DEFAULT_SAVE_OPTIONS ═══ Set MY_DEFAULT_SAVE_OPTIONS in MYCNF.E to give an initial value for the DEFAULT_SAVE_OPTIONS universal variable, which is used as default options by the Save command. These default options can be overridden by options given with any particular save command. For example, if you normally want trailing spaces to be stripped off when saving a file, you could include in your MYCNF.E: const my_DEFAULT_SAVE_OPTIONS = '/s' If you then did want to strip spaces for one file, you could enter the command: s /nt myfile The default value for MY_DEFAULT_SAVE_OPTIONS is the null string. ═══ 16.3.97. MY_DEFAULT_SEARCH_OPTIONS ═══ Set MY_DEFAULT_SEARCH_OPTIONS in MYCNF.E to give an initial value for the DEFAULT_SEARCH_OPTIONS universal variable, which is used as default options by the Locate and Change commands. These default options can be overridden by options given with any particular locate or changecommand. For example, if you normally want searches to be case insensitive, you could include in your MYCNF.E: const my_DEFAULT_SEARCH_OPTIONS = 'c' If you then wanted to find a string where case mattered, you could enter the command: l /BiCapital/ e The default value for MY_DEFAULT_SEARCH_OPTIONS is the null string. ═══ 16.3.98. MY_DEFAULT_TOOLBAR_FILE ═══ Set MY_DEFAULT_TOOLBAR_FILE in MYCNF.E to specify a file which will be included in STDCTRL.E as part of the LoadDefaultToolbar command, to define the built-in toolbar. If a filename is specified, it should only contain a series of buildsubmenu commands similar to those in the LoadDefaultToolbar command (and, optionally, comments). For example, MYCNF.E might contain: const my_DEFAULT_TOOLBAR_FILE = 'my_tlbar.e' and the MY_TLBAR.E file could contain: buildsubmenu activeucmenu, 1, "#Msgs#1100#a_Messages##sampactn", '', 0, 0 buildsubmenu activeucmenu, 2, '', '', 16401, 0 -- MIS_SPACER buildsubmenu activeucmenu, 3, "#Add New#1101#a_Add_New##sampactn", '', 0, 0 buildsubmenu activeucmenu, 4, "#Open#1102#a_Open_empty##sampactn", '', 0, 0 buildsubmenu activeucmenu, 5, "#NewWind#1103#a_NewWindow##sampactn", '', 0, 0 buildsubmenu activeucmenu, 6, "#Settings#1104#a_Settings##sampactn", '', 0, 0 buildsubmenu activeucmenu, 7, "#Shell#1109#a_Shell##sampactn", '', 0, 0 buildsubmenu activeucmenu, 8, '', '', 16401, 0 -- MIS_SPACER buildsubmenu activeucmenu, 9, "#KwdHilit#1126#a_togl_hilit##sampactn", '', 0, 0 buildsubmenu activeucmenu, 10, "#MonoFont#1106#a_MonoFont##sampactn", '', 0, 0 The default value for MY_DEFAULT_TOOLBAR_FILE is that it is not defined, which causes the menu definitions in STDMENU.E to be used. Note: The toolbar is only available in version 6.00 or above. Related configuration constants: WANT_TINY_ICONS ═══ 16.3.99. MY_DICTIONARY_FILENAME ═══ Set MY_DICTIONARY_FILENAME in MYCNF.E to specify the name of the dictionary file to be used when spell checking a file. The default value for MY_DICTIONARY_FILENAME is 'c:\lexam\us.dct'. You can list multiple dictionaries, separated by spaces. const my_DICTIONARY_FILENAME = 'us.dct legal.dct medical.dct' Note: The value set in the MYCNF.E can be overridden by the value set in the Paths page of the Settings dialog. Related configuration constants: SPELL_SUPPORT CHECK_FOR_LEXAM ═══ 16.3.100. MY_EXPAND_ON ═══ Set MY_EXPAND_ON in MYCNF.E to specify the initial value for the EXPAND_ON flag which determines whether syntax expansion will be performed automatically. The default value for EXPAND_ON is 1. It can be changed at run time by use of the EXPAND command. Possible values are: 0 Don't automatically provide syntax assist. 1 Expand all known keywords automatically. Related configuration constants: ALTERNATE_KEYSETS C_SYNTAX_ASSIST E_SYNTAX_ASSIST P_SYNTAX_ASSIST REXX_SYNTAX_ASSIST ═══ 16.3.101. MY_EXTRA_EX_NAME ═══ Set MY_EXTRA_EX_NAME in MYCNF.E to specify the name used for the extra .ex file linked when EXTRA_EX is 1. This can be useful when you want to create multiple sets of .ex files and want to avoid naming conflicts. For example, LaMail uses 'LAMEXTRA'. The default value for MY_EXTRA_EX_NAME is 'EXTRA' ═══ 16.3.102. MY_FTOPTIONS ═══ Set MY_FTOPTIONS in MYCNF.E to specify the default file transfer options that should be used when loading or saving host text files if HOST_SUPPORT is set to 'EMUL'. If HOST_SUPPORT is set to (or defaults to) 'STD', then HOSTCOPYOPTIONS is used instead. The default value for MY_FTOPTIONS is dependant on the value for USING; see E3EMUL.E. ═══ 16.3.103. MY_HOSTCMD ═══ Set MY_HOSTCMD in MYCNF.E to specify the method to be used for sending commands to the host if HOST_SUPPORT is set to 'EMUL'. This is meant for use by user-written applications; it is not used by the distributed macros. The default value for MY_HOSTCMD is dependant on the value for USING; see E3EMUL.E. If USING is set to 'IBM', then the default is 'EHLLAPI', which uses the included EHLLAPI support to write to the host screen. All other methods require an external program, which is not included with the EPM package. Related configuration constants: USE_EHLLAPI ═══ 16.3.104. MY_HOSTCOPY ═══ Set MY_HOSTCOPY in MYCNF.E to specify the command used for copying files between the host and the workstation. The default value for MY_HOSTCOPY is 'almcopy' Related configuration constants: HOST_SUPPORT ═══ 16.3.105. MY_HOSTDRIVE ═══ Set MY_HOSTDRIVE in MYCNF.E to specify what drive letter should be used to represent the host when HOST_SUPPORT is set to 'EMUL'. The default value for my_HOSTDRIVE is 'H'. (Note: No trailing colon is allowed.) Users who have a real H: drive on their machine might want to set it to some other value - for example, 'V' to represent VM files. Related configuration constants: HOSTDRIVE (for SAVELOAD.E users) ═══ 16.3.106. MY_JOIN_AFTER_WRAP ═══ Set MY_JOIN_AFTER_WRAP in MYCNF.E to specify whether text that wraps from one line should be joined with the following line. See Join After Wrap for an example. The default value for MY_JOIN_AFTER_WRAP is 1. Possible values are: 0 Join the wrapped text with the next line. 1 Place the wrapped text on its own line. ═══ 16.3.107. MY_KEEP_TEMP_FILES ═══ Set MY_KEEP_TEMP_FILES in MYCNF.E to specify if temporary files should be saved after editing is completed when HOST_SUPPORT is set to 'EMUL'. (Host file editing is done by copying the host file to a temporary file on the workstation, and then loading that file into the editor.) The default value for MY_KEEP_TEMP_FILES is 0. Possible values are: 0 Erase temporary files after successfully loading or saving the host file 1 Preserve the temporary files. ═══ 16.3.108. MY_LT ═══ Set MY_LT in MYCNF.E to specify the default logical terminal to be used for loading or saving host files when HOST_SUPPORT is set to 'EMUL'. The default value for MY_LT is 'A' ═══ 16.3.109. MY_MATCHTAB_ON ═══ Set MY_MATCHTAB_ON in MYCNF.E to set the initial value used for MATCHTAB. The default value for MY_MATCHTAB_ON is 0. Possible values are: 0 Start with MATCHTAB off. 1 Start with MATCHTAB on. ═══ 16.3.110. MY_MENU_PROMPT ═══ Set MY_MENU_PROMPT in MYCNF.E to specify the initial value for menu prompting if WANT_DYNAMIC_PROMPTS is set to 1. The default value for MY_MENU_PROMPT is 1. Possible values are: 0 Start out without dynamic prompts. 1 Start out with dynamic prompts. Note: The value set in the MYCNF.E will be overridden by the value saved in the .INI file if the user selects Options / Save Options ═══ 16.3.111. MY_MOUSE_POINTER ═══ Set MY_MOUSE_POINTER in MYCNF.E to choose the default mouse pointer style when EPM_POINTER is set to 'switch'. The default value for MY_MOUSE_POINTER is TEXT_POINTER, or 2. Possible values are listed in STDCONST.E; see the _POINTER constants. ═══ 16.3.112. MY_MOUSESTYLE ═══ Set MY_MOUSESTYLE in MYCNF.E to choose the default mouse behavior in Advanced Marking mode. The default value for MY_MOUSESTYLE is 1. Possible values are: 1 Drag button 1 for block mark, Ctrl+MB1 for character mark. 2 Drag button 1 for character mark, Ctrl+MB1 for block mark. Related configuration constants: WANT_CUA_MARKING ═══ 16.3.113. MY_PRINTER ═══ Set MY_PRINTER in MYCNF.E to specify the device ('LPT1', 'COM1', etc.) to be used for the default printer. This can also be a LAN printer (e.g., '\\server\printq') The default printer is used when the Print command is given without specifying an argument, or (if ENHANCED_PRINT_SUPPORT is 0,) when Print is selected from the File or Edit menu. If no value for MY_PRINTER is set, then the device associated with the printer listed in OS2SYS.INI under application PM_SPOOLER, key PRINTER will be used. ═══ 16.3.114. MY_REXX_PROFILE ═══ Set MY_REXX_PROFILE in MYCNF.E to specify whether a Rexx profile will be called if WANT_PROFILE is set to 'SWITCH'. The default value for MY_REXX_PROFILE is 0. Possible values are: 0 Don't call PROFILE.ERX. 1 Call PROFILE.ERX. Note: The value set in the MYCNF.E will be overridden by the value saved in the .INI file if the user selects Options / Save Options The Profile command can be used to change this dynamically in order to save a new value. ═══ 16.3.115. MY_RING_ENABLED ═══ Set MY_RING_ENABLED in MYCNF.E to specify whether the ring (support of multiple files) will be turned on or off at startup if RING_OPTIONAL is set to 1. The default value for MY_RING_ENABLED is 1. Possible values are: 0 Start out with the ring disabled. 1 Start out with the ring enabled. Note: The value set in the MYCNF.E will be overridden by the value saved in the .INI file if the user selects Options / Save Options ═══ 16.3.116. MY_SAVEPATH ═══ Set MY_SAVEPATH in MYCNF.E to specify the directory to which intermediate files should be written when transferring files between the host and the workstation if HOST_SUPPORT='EMUL'. If no value for MY_SAVEPATH is given, the SAVEPATH defaults to the AUTOSAVE_PATH ═══ 16.3.117. MY_SAVE_WITH_TABS ═══ Set MY_SAVE_WITH_TABS in MYCNF.E to specify that the /t option should always be given when saving a file. This is equivalent to setting my_DEFAULT_SAVE_OPTIONS to '/t'. The default value for MY_SAVE_WITH_TABS is 0. Possible values are: 0 Don't save with tabs 1 Always convert multiple spaces to tabs when saving. ═══ 16.3.118. MY_SCRIPT_FILE_TYPE ═══ Set MY_SCRIPT_FILE_TYPE in MYCNF.E to specify one or more additional filetypes (extensions) which will be considered to be SCRIPT files when spell checking the file. When spell checking a SCRIPT file, then SCRIPT variables and markup are checked for and ignored. The file types normally considered SCRIPT files are 'SCR', 'SCT', 'SCRIPT', and 'IPF'. The default value for MY_SCRIPT_FILE_TYPE is that it is not set. Note: In versions of EPM prior to 5.50, only one filetype could be specified. In 5.50 and above, any number can be given, separated by spaces. For example: my_SCRIPT_FILE_TYPE = 'TXT IPFC DOC' Related configuration constants: SPELL_SUPPORT ═══ 16.3.119. MY_SHOW_LONGNAMES ═══ Set MY_SHOW_LONGNAMES in MYCNF.E to set the initial value for the SHOW_LONGNAMES flag when WANT_LONGNAMES is set to 'SWITCH'. The default value for MY_SHOW_LONGNAMES is 0. Possible values are: 0 Don't display the .LONGNAME extended attribute. 1 Display the .LONGNAME on the title bar. Note: The value set in the MYCNF.E will be overridden by the value saved in the .INI file if the user selects Options / Save Options The Longnames command can be used to change this dynamically in order to save a new value. ═══ 16.3.120. MY_STAY ═══ Set MY_STAY in MYCNF.E to set the initial value for the STAY flag when SETSTAY is set to '?'. The default value for MY_STAY is 0. Possible values are: 0 After a Change, leave the cursor on the last changed string. 1 After a Change, preserve the original position of the cursor. ═══ 16.3.121. MY_STREAM_MODE ═══ Set MY_STREAM_MODE in MYCNF.E to set the initial value for the STREAM_MODE flag when WANT_STREAM_MODE is set to 'SWITCH'. The default value for MY_STREAM_MODE is 1 if ENTER_ACTION is set to 'STREAM', or 0 otherwise. Possible values are: 0 Start out in line mode. 1 Start out in stream mode. Note: The value set in the MYCNF.E will be overridden by the value saved in the .INI file if the user selects Options / Save Options ═══ 16.3.122. MY_TWO_SPACES ═══ Set MY_TWO_SPACES in MYCNF.E to initialize the TWO_SPACES universal variable, which controls whether one or two spaces are left after a period, question mark, exclamation point or colon when reflowing text. The default value for MY_TWO_SPACES is 1. Possible values are: 0 Leave only one space. 1 Leave two spaces. ═══ 16.3.123. NLS_LANGUAGE ═══ Set NLS_LANGUAGE in MYCNF.E to The default value for NLS_LANGUAGE is 'english'. The following languages are available separately in the EPMMRI package: 'DANSK' 'DEUTSCH' 'ESPANOL' 'FRANCAIS' 'ITALIANO' 'NL' 'NORSK' 'PORTUGAL' 'SUOMI' 'SV' ═══ 16.3.124. NO_DUPLICATE_BOOKMARKS ═══ Set NO_DUPLICATE_BOOKMARKS in MYCNF.E to disallow duplicate bookmark names. Duplicate bookmarks are useful if you want to access them using the Next and Previous Bookmark operations rather than by name, and so don't want to bother giving them unique names. This can be confusing to some people, however, because although all the names will be listed in the bookmark list, selecting any of them will go to the same place in the file. Also, deleting any of the bookmarks with a given name from the list will result in none of them being listed (although they will still be able to be accessed by Next and Previous). The default value for NO_DUPLICATE_BOOKMARKS is 0. Possible values are: 0 Allow duplicate bookmarks. 1 Don't allow duplicate bookmarks. ═══ 16.3.125. NO_ESCAPE ═══ Set NO_ESCAPE in MYCNF.E to prevent the Escape key from activating the command line dialog. The default value for NO_ESCAPE is 0. Possible values are: 0 Escape key will activate command dialog. 1 Only Ctrl+I will activate the command dialog. Related configuration constants: TOGGLE_ESCAPE ═══ 16.3.126. PERL_KEYWORD_HIGHLIGHTING ═══ Set PERL_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing Perl files. The default value for PERL_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for Perl files. 1 Turn on keyword highlighting whenever a Perl file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.127. PROCESSNAME_CMD ═══ Set PROCESSNAME_CMD in MYCNF.E to specify the command executed after mouse button 2 is double-clicked on the title bar and the user presses Enter. The default value for PROCESSNAME_CMD is 'name'. ═══ 16.3.128. PROOF_CIRCLE_STYLE ═══ Set PROOF_CIRCLE_STYLE in MYCNF.E to specify the style circle that should be drawn around the word currently being checked by the PROOF command. The default value is 2; the possible values are as described for the LOCATE_CIRCLE_STYLE configuration constant. ═══ 16.3.129. PROOF_CIRCLE_COLOR1 ═══ Set PROOF_CIRCLE_COLOR1 in MYCNF.E to specify the circle color used by the PROOF command. The default values are PROOF_CIRCLE_COLOR1 = 16777220 and PROOF_CIRCLE_COLOR2 = 16777218; the possible values are as described for the LOCATE_CIRCLE_COLOR1 configuration constant (and the same version limitation applies - only used in 5.60 or above). ═══ 16.3.130. PROOF_CIRCLE_COLOR2 ═══ See the description of PROOF_CIRCLE_COLOR1. ═══ 16.3.131. PROOF_DIALOG_FIXED ═══ Set PROOF_DIALOG_FIXED in MYCNF.E to specify that the Proof dialog always appear in a fixed location. The default value for PROOF_DIALOG_FIXED is 0. Possible values are: 0 The Proof dialog will appear under the word being proofed. 1 The Proof dialog will appear to the right of the edit window. Note: This specifies where EPMLEX.E asks to have the proof dialog placed; if this would result in part of the dialog being off the screen, the dialog will automatically be shifted appropriately. This might result in the dialog covering the word being proofed. Note: This only applies to versions of EPM prior to 5.60; later versions use a custom dialog which remembers where it was last placed rather than a standard listbox. Related configuration constants: SPELL_SUPPORT ═══ 16.3.132. P_MARGINS ═══ Set P_MARGINS in MYCNF.E to to specify what the margins should be when editing Pascal files if P_SYNTAX_ASSIST is enabled. The default value for P_MARGINS is 1 MAXMARGIN 1, where MAXMARGIN is one less than the maximum length of a line. (MAXMARGIN is 254 for EPM versions prior to 5.60.) You can specify any valid margins, or set to 0 to indicate that no special margins should be set for Pascal files. ═══ 16.3.133. P_SYNTAX_ASSIST ═══ Set P_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for the Pascal language is included. The default value for P_SYNTAX_ASSIST is 1. Possible values are: 0 Omit support 1 Include support Related configuration constants: ALTERNATE_KEYSETS P_MARGINS P_SYNTAX_INDENT P_TABS MY_EXPAND_ON TERMINATE_COMMENTS WANT_END_COMMENTED ═══ 16.3.134. P_SYNTAX_INDENT ═══ Set P_SYNTAX_INDENT in MYCNF.E to specify how many spaces blocks should be indented when using syntax assist for Pascal files. The default value for P_SYNTAX_INDENT is SYNTAX_INDENT. ═══ 16.3.135. P_TABS ═══ Set P_TABS in MYCNF.E to set the default tabs setting for Pascal files. The default value for P_TABS is 3. You can specify any valid tabs setting, or set to 0 to indicate that no special tabs should be set for Pascal files. ═══ 16.3.136. RC_KEYWORD_HIGHLIGHTING ═══ Set RC_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing RC files. The default value for RC_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for RC files. 1 Turn on keyword highlighting whenever an RC file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.137. RECEIVE_CMD ═══ Set RECEIVE_CMD in MYCNF.E to specify the command to be used to receive a file from the host when HOST_SUPPORT is 'EMUL' and USING is 'CP78'. The default value for RECEIVE_CMD is 'receive'. ═══ 16.3.138. REFLOW_LIKE_PE ═══ Set REFLOW_LIKE_PE in MYCNF.E to specify whether paragraph reflow should leave the cursor where it is or move the cursor to the next paragraph on completion. The default value for REFLOW_LIKE_PE is 0. Possible values are: 0 Leave the cursor where it is after a paragraph reflow. 1 Move the cursor to the beginning of the next paragraph after a paragraph reflow. ═══ 16.3.139. RESPECT_CASE_FOR_ADDENDA ═══ Set RESPECT_CASE_FOR_ADDENDA in MYCNF.E to specify whether words added to the addenda dictionary should have their case preserved. The default value for RESPECT_CASE_FOR_ADDENDA is 1. Possible values are: 0 Translate all words to lower case before adding them to the addenda. 1 Add words as they appeared in the document. Related configuration constants: SPELL_SUPPORT ADDENDASUPPORT CHECK_FOR_LEXAM ═══ 16.3.140. RESPECT_SCROLL_LOCK ═══ Set RESPECT_SCROLL_LOCK in MYCNF.E to specify whether you want the cursor movement keys to scroll the current file's text rather than move the cursor when Scroll Lock mode is on. The default value for RESPECT_SCROLL_LOCK is 0. Possible values are: 0 Ignore the Scroll Lock state. 1 Make the Up, Down, Left and Right arrow keys scroll the contents of the edit window when Scroll Lock mode is on. ═══ 16.3.141. RESTORE_MARK_AFTER_SORT ═══ Set RESTORE_MARK_AFTER_SORT in MYCNF.E to specify whther the mark should be restored after sorting. The default value for RESTORE_MARK_AFTER_SORT is 1. Possible values are: 0 Leave the sorted text unmarked. 1 Restore the mark after sorting. ═══ 16.3.142. REXX_EXTENSIONS ═══ Set REXX_EXTENSIONS in MYCNF.E to specify what extensions (or filetypes) should be considered to be Rexx files for syntax expansion if REXX_SYNTAX_ASSIST is enabled. The default value for REXX_EXTENSIONS is 'BAT CMD ERX EXC EXEC XEDIT REX REXX VRX'. ═══ 16.3.143. REXX_KEYWORD_HIGHLIGHTING ═══ Set REXX_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing Rexx files. The default value for REXX_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for Rexx files. 1 Turn on keyword highlighting whenever a Rexx file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.144. REXX_MARGINS ═══ Set REXX_MARGINS in MYCNF.E to to specify what the margins should be when editing Rexx files if REXX_SYNTAX_ASSIST is enabled. The default value for REXX_MARGINS is 1 MAXMARGIN 1, where MAXMARGIN is one less than the maximum length of a line. (MAXMARGIN is 254 for EPM versions prior to 5.60.) You can specify any valid margins, or set to 0 to indicate that no special margins should be set for Rexx files. ═══ 16.3.145. REXX_SYNTAX_ASSIST ═══ Set REXX_SYNTAX_ASSIST in MYCNF.E to control whether syntax assist for the Rexx language is included. The default value for REXX_SYNTAX_ASSIST is 1. Possible values are: 0 Omit support 1 Include support Related configuration constants: ALTERNATE_KEYSETS REXX_MARGINS REXX_SYNTAX_INDENT REXX_TABS MY_EXPAND_ON TERMINATE_COMMENTS WANT_END_COMMENTED REXX_SYNTAX_CASE REXX_SYNTAX_FORCE_CASE REXX_SYNTAX_NO_ELSE ═══ 16.3.146. REXX_SYNTAX_CASE ═══ Set REXX_SYNTAX_CASE in MYCNF.E to control in what case Rexx keywords should be entered during syntax assist. The default value for REXX_SYNTAX_CASE is 'LOWER'. Possible values are: 'LOWER' Enter keywords in lower case. 'MIXED' Enter keywords in mixed case (initial capital letter followed by lower case). Note: 'UPPER' is not a possible value, because it is considered poor style. All upper-case yields much less readable code. Related configuration constants: REXX_SYNTAX_ASSIST ═══ 16.3.147. REXX_SYNTAX_FORCE_CASE ═══ Set REXX_SYNTAX_FORCE_CASE in MYCNF.E to control whether the case of user-typed keywords should be changed. The default value for REXX_SYNTAX_FORCE_CASE is 0. Possible values are: 0 Leave user-typed keywords as entered. 1 Change user-typed keywords (for which syntax assist is enabled) to match the case specified by REXX_SYNTAX_CASE. Related configuration constants: REXX_SYNTAX_CASE REXX_SYNTAX_ASSIST ═══ 16.3.148. REXX_SYNTAX_NO_ELSE ═══ Set REXX_SYNTAX_NO_ELSE in MYCNF.E to control whether an Else should be added after an If statement during Rexx syntax assist. The default value for REXX_SYNTAX_NO_ELSE is 0. Possible values are: 0 Provide the Else statement 1 Omit the Else statement Related configuration constants: REXX_SYNTAX_ASSIST ═══ 16.3.149. REXX_SYNTAX_INDENT ═══ Set REXX_SYNTAX_INDENT in MYCNF.E to specify how many spaces blocks should be indented when using syntax assist for Rexx files. The default value for REXX_SYNTAX_INDENT is SYNTAX_INDENT. ═══ 16.3.150. REXX_TABS ═══ Set REXX_TABS in MYCNF.E to set the default tabs setting for Rexx files. The default value for REXX_TABS is 3. You can specify any valid tabs setting, or set to 0 to indicate that no special tabs should be set for Rexx files. ═══ 16.3.151. RING_OPTIONAL ═══ Set RING_OPTIONAL in MYCNF.E to specify whether or not EPM should pretend to be able to only edit a single file at a time. Note that EPM can always edit multiple files; this merely controls how easy it is to do so. The default value for RING_OPTIONAL is 0. Possible values are: 0 Don't hide the presence of the edit ring. 1 Allow the hiding of the ring. Related configuration constants: MY_RING_ENABLED ═══ 16.3.152. RUNTIME ═══ Set RUNTIME in MYCNF.E to specify whether various commands should be defined for changing variable values at runtime if HOST_SUPPORT is 'EMUL'. The default value for RUNTIME is 0. Possible values are: 0 Omit runtime support. 1 Include runtime support. The runtime commands are: EM Change the emulator being used. LT Change the default logical terminal. HD Change the HOSTDRIVE drive letter. SAVEPATH Change the directory being used for the SAVEPATH. ═══ 16.3.153. SCRIPT_KEYWORD_HIGHLIGHTING ═══ Set SCRIPT_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing Script files. The default value for SCRIPT_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for Script files. 1 Turn on keyword highlighting whenever a Script file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.154. SEND_CMD ═══ Set SEND_CMD in MYCNF.E to specify the command to be used to send a file to the host when HOST_SUPPORT is 'EMUL' and USING is 'CP78'. The default value for SEND_CMD is 'send'. ═══ 16.3.155. SETSTAY ═══ Set SETSTAY in MYCNF.E to determine which is to be the current line after a Change command. The default value for SETSTAY is 0. Possible values are: 0 Cursor will be positioned on the last occurrence of the string in the file. 1 The original position of the cursor will not be changed. '?' A STAY command will be defined so you can change between the above two behaviors at run time. ═══ 16.3.156. SHIFT_BLOCK_ONLY ═══ Set SHIFT_BLOCK_ONLY in MYCNF.E to control what is shifted by the Ctrl+F7 and Ctrl+F8 keys. The default value for SHIFT_BLOCK_ONLY is 0. Possible values are: 0 Shift all text to the right of the left edge of the block, ignoring the right edge of the block 1 Shift only the contents of the block, truncating what is shifted past the right edge, and adding blanks at the right edge of the block when shifting to the left. ═══ 16.3.157. SHOW_EACH_PROCEDURE ═══ Set SHOW_EACH_PROCEDURE in MYCNF.E to specify whether each found procedure should be announced when a tags file is being built. The default value for SHOW_EACH_PROCEDURE is 0. Possible values are: 0 Only announce the name of each source file being searched. 1 Announce the name of each procedure found in the source file(s) as the procedure is discovered. Note: This option is only supported for EPM version 5.60 or above. Related configuration constants: WANT_TAGS ═══ 16.3.158. SHOW_MODIFY_METHOD ═══ Set SHOW_MODIFY_METHOD in MYCNF.E to specify what indication should be given that the current file has been modified. The default value for SHOW_MODIFY_METHOD is ''. Possible values are: '' Don't do anything special; the word "Modified" will appear on the status line when the file is modified if using the default STATUS_TEMPLATE. 'COLOR' Indicate by changing the color of the text. Modified files will have unmarked text displayed in MODIFIED_WINDOWCOLOR instead of TEXTCOLOR, and marked text displayed in MODIFIED_MARKCOLOR instead of MARKCOLOR. 'TITLE' Indicate by appending a string (default '(mod)') to the filename displayed on the title bar. ═══ 16.3.159. SHOW_MODIFY_TEXT ═══ Set SHOW_MODIFY_TEXT in MYCNF.E to specify the string that should be added to the title bar when the file has been modified, if SHOW_MODIFY_METHOD is set to 'TITLE'. The default value for SHOW_MODIFY_TEXT is ' (mod)'. ═══ 16.3.160. SMARTFILE ═══ Set SMARTFILE in MYCNF.E to specify whether the File key (F4) should just quit if the file has not been modified. The default value for SMARTFILE is 0. Possible values are: 0 Pressing F4 will always do a Save and Quit. 1 Pressing F4 if there were no changes made will only Quit. ═══ 16.3.161. SMARTSAVE ═══ Set SMARTSAVE in MYCNF.E to specify whether the user should be warned when pressing the Save key (F2) in a file that hasn't had any changes made to it. The default value for SMARTSAVE is 0. Possible values are: 0 Pressing F2 will always do a Save. 1 Pressing F2 if there were no changes made will give a message saying that the file has not been modified, and bring up the command line with a Save command in it. The user can then press Enter to save the file anyway, or Esc to cancel. ═══ 16.3.162. SORT_BOOKMARKS ═══ Set SORT_BOOKMARKS in MYCNF.E to specify that the list of bookmarks should be sorted into alphabetical order. The default value for SORT_BOOKMARKS is 0. Possible values are: 0 Present the list of bookmarks in the order in which they were added. 1 Present the list of bookmarks sorted into alphabetical order. ═══ 16.3.163. SORT_TYPE ═══ Set SORT_TYPE in MYCNF.E to specify the type of sort command desired. The default value for SORT_TYPE is 'EPM' in version 5.60 and above, or 'DLL' in earlier versions. Possible values are: '' Omit support for the Sort command. 'DLL' Define the Sort command to use a sort routine defined in a DLL; this is fast, but can sort up to a limit of 64k of data because the text to be sorted is passed in a buffer. 'E' Define the Sort command to use a sort routine defined in the E language. This is slower than the DLL code, but has no size limit. 'EPM' Define the Sort command to use a sort routine defined in the E Toolkit. This is the fastest method and has no size limit; it is only available in version 5.60 and above. XXX (any other string) Will attempt to include a user-written SortXXX.E file, which might call a user-supplied sort routine. Samples are available that call various IBM Internal Use Only utilities. ═══ 16.3.164. SPELL_SUPPORT ═══ Set SPELL_SUPPORT in MYCNF.E to specify if and how the spell checking support should be included. The default value for SPELL_SUPPORT is 'DYNALINK' Possible values are: 0 Omit spell-checking support. 1 Include support in the base .ex file. 'LINK' Link the separately-compiled EPMLEX.EX file automatically at startup time. 'DYNALINK' Link the separately-compiled EPMLEX.EX file automatically the first time the user attempts to do a spell check. ═══ 16.3.165. STATUSCOLOR ═══ Set STATUSCOLOR in MYCNF.E to specify in what color the status line should be displayed. The default value for STATUSCOLOR is Black + WhiteB. Note: The value set in the MYCNF.E can be overridden by the value set in the Colors page of the Settings dialog. Note: Must follow a DEFINE, not a CONST. ═══ 16.3.166. STATUS_TEMPLATE ═══ Set STATUS_TEMPLATE in MYCNF.E to specify what should be displayed on the EPM status line. The template is a character string of up to 128 characters. The string can contain an assortment of characters and status tags. These tags instruct EPM what to insert into the final status line string. A status tag consists of two characters; '%' followed by a legal status item character. Defined status tags are as follows: %A Autosave count value (number of changes made to the file since the last autosave) %C current Column number %F number of Files in ring (followed by the word "File" or "Files") %I Insert or replace state (cursor status) %L current Line number %M Modified status (if the file has been modified) %S total number of lines in the current file %X displays the hexadecimal value of the current character %Z displays the ASCII value of the current character The default value if STATUS_TEMPLATE is not defined is 'Line %l of %s Column %c %i %m %f' Note: Previous versions of EPM used a .STATUSLINE field which allowed macro writers to set a different status line for each file in the ring. This was wasteful, since space had to be allocated for the status line for every file. Now, instead of a .STATUSLINE field, there is a global status line whose value is set using the SETSTATUSLINE command (defined in STDCTRL.E). Users wishing to have a different status line depending on the file can call SETSTATUSLINE from a DEFSELECT. See the EPM Technical Reference for details. Examples: Example 1: STATUS_TEMPLATE = 'L= %l, C= %c' Given the above constant and your cursor on line 100, column 3. The following status line will be produced: L= 100, C= 3 Example 2: STATUS_TEMPLATE = 'Total Lines = %S Row %l Col %c Char<%z> mode=%i' Given the above constant, your cursor on line 100, column 3, your cursor is below the letter 'A', and the cursor is in insert mode. The following status line will be produced: Total Lines = 1015 Row 100 Col 3 Char<65> mode=Insert Example 3: STATUS_TEMPLATE = Line %l of %s Col %c %i %m Asc. %z=x'%x' %f If the cursor is on the digit 0, this will produce a status line like: Line 1 of 1234 Col 13 Replace Modified Asc. 48=x'30' 5 Files ═══ 16.3.167. STD_MENU_NAME ═══ Set STD_MENU_NAME in MYCNF.E to specify the name of the file used to build the action bar menus. The default for STD_MENU_NAME is that it is not set, which means that STDMENU.E will be used. Any filename can be specified in the case of user-supplied menus. (See the comments in OVSHMENU.E describing what a user-supplied menu file must provide, if you want to write your own.) Supplied alternate menu files are: 'fevshmnu.e' Provides a menu implementing the menu layout planned for the next release of OS/2, with pulldowns for File, Edit, View, Selected, and Help, 'ovshmenu.e' Provides a menu implementing the CUA-94 WOVSH menu layout, with pulldowns for File, View, Selected, and Help, Note: The provided alternate menus don't have equivalents for the Options / Preferences or Options / Frame Controls pull-rights on the standard menu, and so are not recommended for EPM versions prior to 6.00. (6.00 has a new Settings notebook which lets you configure those items in a different way.) ═══ 16.3.168. SUPPORT_BOOK_ICON ═══ Set SUPPORT_BOOK_ICON in MYCNF.E to specify whether or not the Book icon entry should appear on the Options menu. This entry changes focus to the icon which is present when EPM is started with the /I option. The default value for SUPPORT_BOOK_ICON is 1. Possible values are: 0 Omit Book icon 1 Include Book icon Historical note: Originally, EPM had a book icon. This had to be changed when EPM went into OS/2 as the Enhanced Editor, but the name of the configuration constant has remained. ═══ 16.3.169. SUPPORT_TECHREF ═══ Set SUPPORT_TECHREF in MYCNF.E to specify whether or not the View Technical Reference entry should appear on the Help menu. The default value for SUPPORT_TECHREF is 0. Possible values are: 0 Omit View Technical Reference 1 Include a View Technical Reference selection that will call VIEW to look at the file EPMTECH.INF. ═══ 16.3.170. SUPPORT_USER_EXITS ═══ Set SUPPORT_USER_EXITS in MYCNF.E to specify whether or not "hooks" for calling user exits should be included. If included, the exits will be checked for and, if present, called, at editor startup (where the command line arguments can be examined and modified), when the name of the file being edited is changed, before and after saving a file, and when quitting a file. For additional information on the exits, including the paramaters passed, users should refer to The EPM Editor Technical Reference. The default value for SUPPORT_USER_EXITS is 0. Possible values are: 0 Omit support for user exits. 1 Include support for user exits. ═══ 16.3.171. SUPPORT_USERS_GUIDE ═══ Set SUPPORT_USERS_GUIDE in MYCNF.E to specify whether or not the View User's Guide entry should appear on the Help menu. The default value for SUPPORT_USERS_GUIDE is 0. Possible values are: 0 Omit View User's Guide 1 Include a View User's Guide selection that will call VIEW to look at the file EPMUSERS.INF. ═══ 16.3.172. SYNTAX_INDENT ═══ Set SYNTAX_INDENT in MYCNF.E to specify how many spaces blocks should be indented when using syntax assist. The default value for SYNTAX_INDENT is 3. Related configuration constants: ALTERNATE_KEYSETS C_SYNTAX_ASSIST E_SYNTAX_ASSIST P_SYNTAX_ASSIST REXX_SYNTAX_ASSIST MY_EXPAND_ON ═══ 16.3.173. SYS_MONOSPACED_SIZE ═══ Specify the default System Monospaced font size. This will affect the font used when a DIR or similar command changes to a monospaced font in order to ensure that columns line up, and also the base font selected if the WANT_SYS_MONOSPACED constant is set. The default value is 0, which means that the system will provide a default value - the exact size used depends on the display. A specific value can be used, e.g.: const SYS_MONOSPACED_SIZE = 'WW8HH16' -- Want a 16x8 font. ═══ 16.3.174. TAGS_ANYWHERE ═══ Set TAGS_ANYWHERE in MYCNF.E to specify whether C and E language procedure definitions should be searched for anywhere in the source files, or only starting in column 1, during a MAKETAGS operation. The search will be slightly faster if limited to searching for procedures starting in column 1, with no leading comments or whitespace, but this option should only be selected if you're sure that all routines in the files you're searching are defined that way. The default value for TAGS_ANYWHERE is 1. Possible values are: 0 Only search for procedures starting in column 1. 1 Allow procedure definitions to occur anywhere in the line. Note: This option is only supported for EPM version 5.60 or above. Related configuration constants: WANT_TAGS ═══ 16.3.175. TEMP_FILENAME ═══ Set TEMP_FILENAME in MYCNF.E to specify the (fully-qualified) name of a temporary file that will be used for various commands. This should point to the fastest drive you have (a VDISK is ideal). If no drive or directory is specified, and a temporary path is set in the Paths page of the Settings dialog, then that path will be attached to the file name. The default value for TEMP_FILENAME is 'e.tmp'. Note: This constant is used to initialize a universal variable that is used wherever a single temporary file is needed. The universal variable can be modified at run time if desired. MYSTUFF.SMP (in the standard set of E_MACROS) contains sample code that sets the variable according to the value of an environment variable which points to a VDISK. Related configuration constants: TEMP_PATH ═══ 16.3.176. TEMP_PATH ═══ Set TEMP_PATH in MYCNF.E to specify the path where temporary files should be placed. This should point to the fastest drive you have (a VDISK is ideal). If a value is given, a trailing backslash must be supplied. The default value for TEMP_PATH is '' (the current directory). Note: This constant is used to initialize a universal variable that is used wherever more than one temporary file is needed. The universal variable can be modified at run time if desired. MYSTUFF.SMP (in the standard set of E_MACROS) contains sample code that sets the variable according to the value of an environment variable which points to a VDISK. Note: The value set in the MYCNF.E can be overridden by the value set in the Paths page of the Settings dialog. Related configuration constants: TEMP_FILENAME ═══ 16.3.177. TERMINATE_COMMENTS ═══ Set TERMINATE_COMMENTS in MYCNF.E to specify whether or not open comments should automatically be terminated when the syntax assist trigger (Enter or Ctrl+Enter) is pressed. The default value for TERMINATE_COMMENTS is 0. Possible values are: 0 Don't terminate comments. 1 Terminate open comments. ═══ 16.3.178. TEX_FILETYPES ═══ Set TEX_FILETYPES in MYCNF.E to specify what file types (extensions) should be assumed to be TeX files when spell-checking. The default value for TEX_FILETYPES is 'TEX'. Additional types can be added to the string, separated by spaces. E.g., const TEX_FILETYPES = 'TEX LTX' ═══ 16.3.179. TEX_KEYWORD_HIGHLIGHTING ═══ Set TEX_KEYWORD_HIGHLIGHTING in MYCNF.E to to specify whether keyword highlighting should automatically be on when editing Tex files. The default value for TEX_KEYWORD_HIGHLIGHTING is 0. Possible values are: 0 Don't turn on keyword highlighting for Tex files. 1 Turn on keyword highlighting whenever a Tex file is loaded. Note: Keyword highlighting is only available in version 6.00 or above. ═══ 16.3.180. TEXTCOLOR ═══ Set TEXTCOLOR in MYCNF.E to specify the color in which unmarked text in the edit window should be displayed. The default value for TEXTCOLOR is Black + WhiteB. Note: The value set in the MYCNF.E can be overridden by the value set in the Colors page of the Settings dialog. Note: Must follow a DEFINE, not a CONST. ═══ 16.3.181. TOGGLE_ESCAPE ═══ Set TOGGLE_ESCAPE in MYCNF.E to specify whether an ESCAPEKEY command should be defined. The default value for TOGGLE_ESCAPE is 0. Possible values are: 0 Omit ESCAPEKEY 1 Define ESCAPEKEY Related configuration constants: NO_ESCAPE ═══ 16.3.182. TOGGLE_TAB ═══ Set TOGGLE_TAB in MYCNF.E to specify whether a TABKEY command is defined. The default value for TOGGLE_TAB is 0. Possible values are: 0 Omit TABKEY 1 Define the TABKEY command ═══ 16.3.183. TOP_OF_FILE_VALID ═══ Set TOP_OF_FILE_VALID in MYCNF.E to specify whether or not the user should be allowed to position the cursor on line 0 (the Top of File line). The default value for TOP_OF_FILE_VALID is 1. Possible values are: 0 Don't allow the cursor on line 0. 1 Allow the cursor on line 0. ═══ 16.3.184. TRASH_TEMP_FILES ═══ Set TRASH_TEMP_FILES in MYCNF.E to specify whether or not temporary files should be allowed to be quit without warning the user. (A file whose filename begins with a period, like '.DIR', is assumed to be a temporary file.) The default value for TRASH_TEMP_FILES is 0. Possible values are: 0 Don't treat temporary files any differently. 1 When quitting a temporary file, don't present the Quitting file dialog if the file was modified; just throw away the changes. ═══ 16.3.185. UNDERLINE_CURSOR ═══ Set UNDERLINE_CURSOR in MYCNF.E to specify that you want the AVIO-style underline cursor rather than the GPI-style vertical bar. The default value for UNDERLINE_CURSOR is 0. Possible values are: 0 Insert-mode cursor is a vertical bar to the left of the current character; replace-mode cursor is a block the height and width of the current character. 1 Replace-mode cursor is a horizontal line below the baseline of the current character; insert-mode cursor is a block the width and half the height of the current character. ═══ 16.3.186. UNMARK_AFTER_MOVE ═══ Set UNMARK_AFTER_MOVE in MYCNF.E to specify that an unmark operation should be performed after a mark is moved with the Alt+M key or via the Edit menu. The default value for UNMARK_AFTER_MOVE is 0. Possible values are: 0 Leave the mark, so the marked text can be copied or moved again. 1 Remove the mark, so a new mark can be started. ═══ 16.3.187. USE_ANSI_C_NOTATION ═══ Set USE_ANSI_C_NOTATION in MYCNF.E to control how the template for MAIN is created using the C syntax assist. The default value for USE_ANSI_C_NOTATION is 1. Possible values are: 0 the declarations for argc, argv and envp will be entered as separate statements. 1 the declarations will be included as part of the function's argument list. ═══ 16.3.188. USE_APPEND ═══ Set USE_APPEND in MYCNF.E to specify that files passed to the edit command without a path should be searched for along the DPATH if not found in the current directory. (This gives an effect similar to the DOS APPEND command.) The default value for USE_APPEND is 0. Possible values are: 0 Use filenames as given. 1 If an unqualified filename is given and it is not found in the current directory, check the DPATH for it. ═══ 16.3.189. USE_EHLLAPI ═══ Set USE_EHLLAPI in MYCNF.E to specify whether Send and Receive should be called directly to transfer files between the workstation and the host, or whether they should be called via EHLLAPI. Communication Manager's Send & Receive don't work from inside a PM program, so we call them via EHLLAPI. The FTTERM and PMFTERM versions do work (and EHLLAPI does not), so we let the user override the default. The default value for USE_EHLLAPI is 1. Possible values are: 0 Call Send and Receive directly. 1 Use EHLLAPI calls to invoke Send and Receive. Note: This is only relevant if HOST_SUPPORT is set to 'EMUL' and USING is set to 'IBM'. ═══ 16.3.190. USING ═══ Set USING in MYCNF.E to specify the file transfer protocol to be used when HOST_SUPPORT is set to 'EMUL'. The default value for USING is 'IBM'. Possible values are: 'CM' Communications Manager, using ALMCOPY (unless MY_HOSTCOPY is used to specify a different host copy command). 'CP78' CP78 (the CUT-mode emulator) 'CM+CP78' Both of the above, when using multiple 3270 adapters. HA:, HB:, etc. will go to CM on adapter 1; H2: will go to CP78 on adapter 2. 'IBM' Send / Receive protocol, as used by CM, FTTERM, PMFTERM, etc. 'CM+IBM' Acts like 'CM' for VM files, 'IBM' for MVS files. Related configuration constants: USE_EHLLAPI MY_HOSTCOPY ═══ 16.3.191. VALID_LTS ═══ Set VALID_LTS in MYCNF.E to specify what characters will be considered as representing valid logical terminals when HOST_SUPPORT is set to 'EMUL'. The default value for VALID_LTS is dependant on the value for USING; see E3EMUL.E. ═══ 16.3.192. VANILLA ═══ Set VANILLA in MYCNF.E to omit all other MY*.E files when compiling. This can be useful when debugging problems, to determine whether the problem is with the base set of macros (as configured by your MYCNF.E) or with user-written code in other MY*.E files. The default value for VANILLA is 0. Possible values are: 0 Include all the normal MY*.E files. 1 Compile a "vanilla" .ex file, omitting all user-written code. ═══ 16.3.193. VM ═══ Set VM in MYCNF.E to specify whether support should be included for editing files on a VM host when HOST_SUPPORT is set to 'EMUL'. The default value for VM is 1. Possible values are: 0 Omit support for VM files. 1 Include support. ═══ 16.3.194. WANT_ALL ═══ Set WANT_ALL in MYCNF.E to specify whether or not the ALL command should be included in the base .ex file. The default value for WANT_ALL is 0. Possible values are: 0 Omit ALL command. 1 Include ALL command. Note: ALL can be compiled and used separately; it need not be included in the base .ex file. ═══ 16.3.195. WANT_APPLICATION_INI_FILE ═══ Set WANT_APPLICATION_INI_FILE in MYCNF.E to specify whether or not support for accessing the application .ini file (e.g., EPM.INI) is included. People building an E Toolkit application using the base EPM macros might want to set this to 0; EPM users should leave it as 1. The default value for WANT_APPLICATION_INI_FILE is 1. Possible values are: 0 Omit support. 1 Include support. ═══ 16.3.196. WANT_BITMAP_BACKGROUND ═══ Set WANT_BITMAP_BACKGROUND in MYCNF.E to specify whether or not the Watson Works bitmap background should be present. The default value for WANT_BITMAP_BACKGROUND is 1. Possible values are: 0 A plain background should be used. 1 The Watson Works bitmap should be used as a background. Note: The Watson Works bitmap background is only available in version 5.60 or above. Use of other background bitmaps (via drag & drop) is only supported for version 6.00 or above. ═══ 16.3.197. WANT_BOOKMARKS ═══ Set WANT_BOOKMARKS in MYCNF.E to specify whether bookmark support should be included. The default value for WANT_BOOKMARKS is 'LINK' Possible values are: 0 Omit bookmark support 1 Include bookmark support in EPM.EX (or in EXTRA.EX if EXTRA_EX is 1). 'LINK' Dynamically link BOOKMARK.EX at run time (if EXTRA_EX is 0; if EXTRA_EX is 1, then BOOKMARK.E will be included in EXTRA.EX). Note: BOOKMARK.E includes support for bookmarks, for IBM's Workframe/2 product, and for loading and saving attributes in an Extended Attribute. ═══ 16.3.198. WANT_BRACE_BELOW_STATEMENT ═══ Set WANT_BRACE_BELOW_STATEMENT in MYCNF.E to specify whether braces should appear on the same line as the statement or on the following line during syntax assist expansion. The default value for WANT_BRACE_BELOW_STATEMENT is 0. Possible values are: 0 The brace will appear to the right of the statement. if () { } else { } /* endif */ 1 The brace will appear below the statement. if () { } else { } /* endif */ Related configuration constants: WANT_BRACE_BELOW_STATEMENT_INDENTED C_SYNTAX_ASSIST WANT_END_COMMENTED ═══ 16.3.199. WANT_BRACE_BELOW_STATEMENT_INDENTED ═══ Set WANT_BRACE_BELOW_STATEMENT_INDENTED in MYCNF.E to specify whether the braces below the statement should be indented from the statement during syntax assist expansion. This flag only applies when WANT_BRACE_BELOW_STATEMENT is also set. The default value for WANT_BRACE_BELOW_STATEMENT_INDENTED is 0. Possible values are: 0 The brace will appear directly below the statement. 1 The brace will appear below and to the right of the statement. Related configuration constants: WANT_BRACE_BELOW_STATEMENT C_SYNTAX_INDENT SYNTAX_INDENT C_SYNTAX_ASSIST WANT_END_COMMENTED ═══ 16.3.200. WANT_BRACKET_MATCHING ═══ Set WANT_BRACKET_MATCHING in MYCNF.E to specify whether the bracket-matching code in ASSIST.E should be included. The default value for WANT_BRACKET_MATCHING is 0. Possible values are: 0 Omit support 1 Include support; pressing Ctrl+[ will move the cursor to the matching parenthesis ('()'), bracket ('[]'), brace ('{}'), or angle bracket('<>'). ═══ 16.3.201. WANT_CHAR_OPS ═══ Set WANT_CHAR_OPS in MYCNF.E to omit support for character marking, if you're trying to save space. The default value for WANT_CHAR_OPS is 1. Possible values are: 0 Omit support. 1 Include support. Related configuration constants: WORD_MARK_TYPE ═══ 16.3.202. WANT_CUA_MARKING ═══ Set WANT_CUA_MARKING in MYCNF.E to specify whether you want CUA-style marking or the more powerful EPM marking. The default value for WANT_CUA_MARKING is 0. Possible values are: 0 Use the normal EPM marking ("Advanced marking"). 1 Use the CUA-style marking. 'SWITCH' Support both marking styles, and allow the user to change back and forth between them (via an entry on the Preferences selection of the Options menu). Related configuration constants: MY_CUA_MARKING_SWITCH ═══ 16.3.203. WANT_DBCS_SUPPORT ═══ Set WANT_DBCS_SUPPORT in MYCNF.E to specify whether the macros should include support for Double Byte Character Sets. The default value for WANT_DBCS_SUPPORT is 0. Possible values are: 0 Omit DBCS support. 1 Include DBCS support. ═══ 16.3.204. WANT_DM_BUFFER ═══ Set WANT_DM_BUFFER in MYCNF.E to specify whether all deleted marks should be saved in a buffer for later recovery The default value for WANT_DM_BUFFER is 0. Possible values are: 0 Omit support 1 Include support; a Recover mark delete entry will appear on the Edit menu. ═══ 16.3.205. WANT_DOSUTIL ═══ Set WANT_DOSUTIL in MYCNF.E to omit DOSUTIL.E if you are tight on space. The commands affected include QDATE, QTIME, DIR, SET, VOL, PATH, DPATH and OS2. The default value for WANT_DOSUTIL is '?'. Possible values are: 0 Omit DOSUTIL.E. 1 Include DOSUTIL.E. '?' Include DOSUTIL.E if found; don't warn the user if it's not. ═══ 16.3.206. WANT_DRAW ═══ Set WANT_DRAW in MYCNF.E to omit support for the DRAW command. The default value for WANT_DRAW is 'F6' Possible values are: 0 Omit support for the DRAW command. 1 Include support for the DRAW command. 'F6' Include support for the DRAW command, and define F6 to invoke it. ═══ 16.3.207. WANT_DYNAMIC_PROMPTS ═══ Set WANT_DYNAMIC_PROMPTS in MYCNF.E to specify whether support for dynamic menu prompting is included. This refers to the display of a prompt on the message line whenever a menu item is selected, describing what that menu item does. If support is included, the presentation of the prompts can be toggled on or off dynamically (via a Prompting entry on the Frame Controls pull-right menu of the Options menu). The default value for WANT_DYNAMIC_PROMPTS is 1. Possible values are: 0 Omit support. 1 Include support. Related configuration constants: MY_MENU_PROMPT ═══ 16.3.208. WANT_EBOOKIE ═══ Set WANT_EBOOKIE in MYCNF.E to specify whether support for EBOOKIE should be included. The default value for WANT_EBOOKIE is 'DYNALINK'. Possible values are: 0 Omit support. 1 Include BKEYS.E in EPM.EX (or in EXTRA.EX if EXTRA_EX is set to 1). 'LINK' always link BKEYS.EX at startup. 'DYNALINK' Include support for EBOOKIE in the base macros, but don't try to link BKEYS.EX. EBOOKIE support will be activated when BKEYS is linked, either explicitly (LINK BKEYS) or implicitly (BOOKIE ON). ═══ 16.3.209. WANT_END_COMMENTED ═══ Set WANT_END_COMMENTED in MYCNF.E to specify whether a comment should be added to the end of a block or statement in syntax assist, indicating what is being ended. The default value for WANT_END_BRACE_COMMENTED is 1. Possible values are: 0 Don't add a comment to the ending braces. 1 Add a comment in the form "/* endif */". '//' Add a comment (to C or C++ files) in the form "// endif". For Pascal or Rexx, acts like 1. Related configuration constants: C_SYNTAX_ASSIST P_SYNTAX_ASSIST REXX_SYNTAX_ASSIST ═══ 16.3.210. WANT_EPM_SHELL ═══ Set WANT_EPM_SHELL in MYCNF.E to specify whether support should be included for the EPM shell window. The default value for WANT_EPM_SHELL is 0. Possible values are: 0 Omit support. 1 Include support. 'HIDDEN' Include support, but hide it from the Command menu until the first time the user enters a Shell command. ═══ 16.3.211. WANT_ET_COMMAND ═══ Set WANT_ET_COMMAND in MYCNF.E to specify whether support for the ETPM command should be included. The default value for WANT_ET_COMMAND is 1. Possible values are: 0 Omit support. 1 Include support. ═══ 16.3.212. WANT_GET_ENV ═══ Set WANT_GET_ENV in MYCNF.E to specify whether the Get_env() routine should be defined in DOSUTIL.E. The routine will be defined if either WANT_GET_ENV or USE_APPEND are set to 1. The EPATH and OPATH commands will only be defined if both the Get_Env() and Search_path() routines are defined. You can also set WANT_GET_ENV to 1 if you want to call Get_Env() from your own routines. The default value for WANT_GET_ENV is 1. Possible values are: 0 Omit the routine. 1 Include the routine. ═══ 16.3.213. WANT_KEYWORD_HELP ═══ Set WANT_KEYWORD_HELP in MYCNF.E to specify whether support for getting help for a keyword is included. The default value for WANT_KEYWORD_HELP is 0. Possible values are: 0 Omit support. 1 Include support. Related configuration constants: KEYWORD_HELP_INDEX_FILE ═══ 16.3.214. WANT_LAN_SUPPORT ═══ Set WANT_LAN_SUPPORT in MYCNF.E to specify whether the LOCK and UNLOCK commands are defined. The default value for WANT_LAN_SUPPORT is 0. Possible values are: 0 Omit support. 1 Include support. Note: In previous versions, the file locking support was done completely in the macros. Starting with EPM version 5.51, we have internal support for file locking. Therefore, files can be locked using the Edit /k option regardless of the setting of WANT_LAN_SUPPORT. ═══ 16.3.215. WANT_LONGNAMES ═══ Set WANT_LONGNAMES in MYCNF.E to specify whether support for long names should be included. See the Longnames command for a description of what this does. The default value for WANT_LONGNAMES is 0. Possible values are: 0 Omit support. 1 Include support. 'SWITCH' Include support, and define a Longnames command to let you turn it on and off at runtime. Related configuration constants: MY_SHOW_LONGNAMES ═══ 16.3.216. WANT_MATH ═══ Set WANT_MATH in MYCNF.E to optionally omit MATH.E if space is needed. The commands affected are MATH, MATHX, MATHO, ADD, and MULT. The default value for WANT_MATH is '?'. Possible values are: 0 Omit MATH.E. 1 Include MATH.E. '?' Include MATH.E if found; don't warn the user if it's not. Related configuration constants: INCLUDE_MATHLIB ═══ 16.3.217. WANT_NODISMISS_MENUS ═══ Set WANT_NODISMISS_MENUS in MYCNF.E to specify whether the Preferences and Frame Controls pull-right menus under the Options menu will be dismissed as soon as something is selected, or whether they should stay up until explicitly dismissed. The default value for WANT_NODISMISS_MENUS is 1. Possible values are: 0 The above-mentioned menus will disappear as soon as anything is selected 1 The above-mentioned menus will remain active as long as only selections that can have check marks are toggled. ═══ 16.3.218. WANT_PROFILE ═══ Set WANT_PROFILE in MYCNF.E to specify whether a PROFILE.ERX should be called if one exists. The default value for WANT_PROFILE is 0. Possible values are: 0 Don't check for a Rexx profile. 1 Check for a Rexx profile whenever a new edit window is created, and execute it if found. 'SWITCH' Define a Profile command to allow turning this on and off dynamically. Related configuration constants: MY_REXX_PROFILE WANT_REXX ═══ 16.3.219. WANT_REXX ═══ Set WANT_REXX in MYCNF.E to specify whether or not Rexx macro support should be included. The default value for WANT_REXX is 1. Possible values are: 0 Omit support for calling Rexx macros. 1 Include support for calling Rexx macros. ═══ 16.3.220. WANT_SEARCH_PATH ═══ Set WANT_SEARCH_PATH in MYCNF.E to specify whether the Search_path() routine should be defined in DOSUTIL.E. The routine will be defined if either WANT_SEARCH_PATH or USE_APPEND are set to 1. The EPATH and OPATH commands will only be defined if both Search_path() and Get_Env() routines are defined. You can also set WANT_SEARCH_PATH to 1 if you want to call Search_path() from your own routines. The default value for WANT_SEARCH_PATH is 0. Possible values are: 0 Omit the routine. 1 Include the routine. ═══ 16.3.221. WANT_SHIFT_MARKING ═══ Set WANT_SHIFT_MARKING in MYCNF.E to specify whether support for extending the mark by pressing the Shift key during cursor movement should be included. The default value for WANT_SHIFT_MARKING is 1. Possible values are: 0 Omit the support. 1 Include the support. ═══ 16.3.222. WANT_STACK_CMDS ═══ Set WANT_STACK_CMDS in MYCNF.E to specify whether the stack commands (PushMark, PopMark, SwapMark, PushPos, PopPos, and SwapPos) are defined. The default value for WANT_STACK_CMDS is 0. Possible values are: 0 Omit the commands. 1 Define the commands. 'SWITCH' Define the commands and add an entry to the Preferences cascade on the Options menu which allows selecting whether or not the commands will be included in the Edit menu. ═══ 16.3.223. WANT_STREAM_INDENTED ═══ Set WANT_STREAM_INDENTED in MYCNF.E to specify whether lines split by the enter key in stream mode emulation should be indented to match the previous line. The default value for WANT_STREAM_INDENTED is 0. Possible values are: 0 Don't indent the line (true stream mode) 1 Indent the split line Note: If WANT_STREAM_INDENTED is set to 1, and stream mode is on, and the cursor is on a line containing leading spaces, then pressing Enter followed by Backspace will not result in effectively no change; the Backspace will delete one of the inserted spaces rather than joining the two lines. Related configuration constants: WANT_STREAM_MODE ═══ 16.3.224. WANT_STREAM_MODE ═══ Set WANT_STREAM_MODE in MYCNF.E to specify whether support for emulating a stream mode editor should be included. The default value for WANT_STREAM_MODE is 0. Possible values are: 0 Omit stream mode support. 1 Use only stream mode. 'SWITCH' Include support for both stream and line mode, and enable switching back and forth at runtime. Related configuration constants: MY_STREAM_MODE WANT_STREAM_INDENTED ═══ 16.3.225. WANT_SYS_MONOSPACED ═══ Set WANT_SYS_MONOSPACED in MYCNF.E to specify that the default font should be System Monospaced. The default value for WANT_SYS_MONOSPACED is 0. Possible values are: 0 Use the default PM font for the default editor font. 1 Use System Monospaced as the default editor font. Note: The value set in the MYCNF.E will be overridden by the value set in the Fonts page of the Settings dialog. ═══ 16.3.226. WANT_TAGS ═══ Set WANT_TAGS in MYCNF.E to specify whether tags file support should be included. The default value for WANT_TAGS is 0. Possible values are: 0 Omit tags file support 1 Include tags file support in EPM.EX (or in EXTRA.EX if EXTRA_EX is 1). 'LINK' Dynamically link TAGS.EX at run time (if EXTRA_EX is 0; if EXTRA_EX is 1, then TAGS.E will be included in EXTRA.EX). Note: This option is only supported for EPM version 5.60 or above. See the EPM 5.60 / 6.00 online help for a description of what tags files are. ═══ 16.3.227. WANT_TAB_INSERTION_TO_SPACE ═══ Set WANT_TAB_INSERTION_TO_SPACE in MYCNF.E to specify whether pressing the Tab key while in insert mode and in line mode should insert spaces into the file or just move the cursor to the next tab stop. (In stream mode, pressing the Tab key while in insert mode will always insert spaces up to the next tab stop.) The default value for WANT_TAB_INSERTION_TO_SPACE is 0. Possible values are: 0 Pressing the Tab key in line mode will always move the cursor to the next tab stop. 1 Pressing the Tab key in line mode will insert spaces up to the next tab stop if the editor is in insert mode, and move over if in replace mode. Related configuration constants: TOGGLE_TAB ═══ 16.3.228. WANT_TINY_ICONS ═══ Set WANT_TINY_ICONS in MYCNF.E to specify whether or not tiny icons should be used for the built-in toolbar. The default value for WANT_TINY_ICONS is 0. Possible values are: 0 Use tiny icons (22x22). 1 Use standard-sized icons (in general, 48x36 for hi-resolution displays, and 39x29 for VGA or below). Note: The toolbar is only available in version 6.00 or above. Related configuration constants: WANT_TOOLBAR MY_DEFAULT_TOOLBAR_FILE ═══ 16.3.229. WANT_TOOLBAR ═══ Set WANT_TOOLBAR in MYCNF.E to specify whether or not support for the user-configurable toolbar should be included. The default value for WANT_TOOLBAR is 1 for version 6.00 and above, and 0 for earlier versions. Possible values are: 0 Omit toolbar support 1 Include toolbar support in EPM.EX. Note: The toolbar is only available in version 6.00 or above. Related configuration constants: WANT_TINY_ICONS ═══ 16.3.230. WANT_TRUNCATED_WARNING ═══ Set WANT_TRUNCATED_WARNING in MYCNF.E to specify whether or not a pop-up warning should be presented when loading a file results in a "Lines truncated" error. The default value for WANT_TRUNCATED_WARNING is 0. Possible values are: 0 Don't provide a pop-up. 1 Provide a pop-up message if a "Lines truncated" error occurs, warning the user that saving the file could be dangerous. Note: The "Lines truncated" error is only given in versions below 5.60. In 5.60 and above, the terminator of each line is remembered, and when the file is saved, lines that had been split will be joined back together, so the original file can be reproduced regardless of how long the lines are. ═══ 16.3.231. WPS_SUPPORT ═══ Set WPS_SUPPORT in MYCNF.E to specify whether or not support for the Workplace Shell Edit Object should be included. The default value for WPS_SUPPORT is 1 for version 6.00 and above, and 0 for earlier versions. Possible values are: 0 Omit WPS support. 1 Include WPS support in EPM.EX. Note: The Workplace Shell Edit Object is only available in version 6.00 or above. ═══ 16.3.232. WORD_MARK_TYPE ═══ Set WORD_MARK_TYPE in MYCNF.E to specify what type of mark should be used for word marking. The default value for WORD_MARK_TYPE is 'BLOCK'. Possible values are: 'CHAR' Use a character mark. 'BLOCK' Use a block mark. Related configuration constants: WANT_CHAR_OPS ═══ 16.4. Changing the Default Color Scheme ═══ The default color configuration can be changed. The default colors are defined in the bottom half of the file COLORS.E. o Defines mnemonic constants for the color numbers, so the rest of the files can refer to "RED" rather than 4. o Configures the standard colors, by defining mnemonic field names such as STATUSCOLOR. The following is a listing of the defined colors in EPM: Foreground Colors Background Colors ----------------- ----------------- BLACK = 00 BLACKB = 00 BLUE = 01 BLUEB = 16 GREEN = 02 GREENB = 32 CYAN = 03 CYANB = 48 RED = 04 REDB = 64 MAGENTA = 05 MAGENTAB = 80 BROWN = 06 BROWNB = 96 LIGHT_GREY = 07 LIGHT_GREYB =112 DARK_GREY = 08 DARK_GREYB =128 LIGHT_BLUE = 09 LIGHT_BLUEB =144 LIGHT_GREEN = 10 LIGHT_GREENB =160 LIGHT_CYAN = 11 LIGHT_CYANB =176 LIGHT_RED = 12 LIGHT_REDB =192 LIGHT_MAGENTA = 13 LIGHT_MAGENTAB =208 YELLOW = 14 YELLOWB =224 WHITE = 15 WHITEB =240 BLINK = 128 You can override the standard colors by defining the appropriate constant in your MYCNF.E. See the configuration constants DRAGCOLOR, MARKCOLOR, MESSAGECOLOR, STATUSCOLOR, and TEXTCOLOR. MYCNF.SMP includes an example of customizing your colors. ═══ 16.5. Insert Mode ═══ The default insert/replace mode is set in a line which looks like: set insert_state 1 /* default setting */ set insert_state 0 /* if you prefer replace mode */ ═══ 16.6. EOF Mode ═══ The default is that when loading a file, EPM will stop reading at the first EOF (End-Of-File) character it encounters at the end of a line, and when saving a file, it will write an EOF character at the end of the file. If you set EOF to 0, then when loading a file, EPM will read the file until the very end, and keep any EOF characters it encounters (except if the last character in the file is an EOF). When saving a file with EOF set to 0, EPM will not append an EOF character to the end. set EOF 1 /* Respect EOF characters */ set EOF 0 /* Treat EOF like text */ ═══ 16.7. Join After Wrap ═══ When you type a word beyond the right margin EPM will perform automatic word wrap; the word will be moved to the next line. In addition, if you're in insert mode, EPM will join the next line to the wrapped word in an attempt to keep the paragraph flowing together. To illustrate: This is a test paragraph. Set narrow margins, like 'ma 1 45', go into insert mode, and type characters into this line to cause a word wrap. (sample next line) If you follow the instructions you'll end up with a joined-after-wrap last line: wrap. (sample next line) This behavior is useful if you're typing plain text, but can be annoying in a SCRIPT document where the next line can contain non-text tags. The join-after-wrap feature can be turned off with the configuration constant MY_JOIN_AFTER_WRAP Note that setting join_after_wrap is a simple assignment which can be done anywhere in the macros. Power users might like to set the option to 0 for SCRipt files, but 1 for all other file types. Typically this would be done in MYSELECT.E (see the section Including New Features into the Default Configuration for more details): defselect join_after_wrap = filetype()<>'SCR' ═══ 16.8. Enter Key Behavior ═══ You can easily configure the way the Enter and Ctrl-Enter keys work by setting the ENTER_ACTION and C_ENTER_ACTION constants in MYCNF.E, or allow dynamic changing of all the Enter key variations by setting the ENHANCED_ENTER_KEYS constant. The default action for the Enter key is to insert a new line, and the default action for the Ctrl+Enter key is to move to the beginning of the next line. ═══ 17. Changing the Default Window Layout ═══ Note: In the current release, the Options pulldown includes a Save Options Setting entry, which will save the current font and the status (on or off) of the status line, message line, and scroll bars. Once you save them (in your OS2.INI), EPM will set them to the same state every time an edit window is opened. This is an easier way of configuring than the following, if you don't need to recompile the macros for any other reason. The Options pulldown contains some window features you can change. If you would prefer for the editor to start with them different from the defaults, you can change them in your MYMAIN.E file. These items include the size of the font used, whether the status line, message line, and scroll bars should be displayed. If you prefer to have the status line off when starting EPM, add the following line to MYMAIN.E: 'togglecontrol 7' -- Toggle the status line If you prefer to have the message line on when starting EPM, add the following line to MYMAIN.E: 'togglecontrol 8' -- Toggle the message line If you prefer to have the scroll bars off when starting EPM, add the following line to MYMAIN.E: 'setscrolls' -- Toggle the scroll bars If you want to have one on and one off, add one of the following: 'togglecontrol 9' -- Toggle the vertical scroll bar 'togglecontrol 10' -- Toggle the horizontal scroll bar If you would like to maximize the window whenever EPM creates a new edit window, then add the following code to MYMAIN.E: call dynalink( 'PMWIN', 'WINSETWINDOWPOS', gethwnd(6) || atoi(0) || atoi(3) || -- HWND_TOP atoi(0) || atoi(0) || atoi(0) || atoi(0) || atoi(2048)) -- SWP_MAXIMIZE or: call windowsize1(0, 0, 0, 0, 2048) ═══ 18. Recompiling Your Editor ═══ How to recompile EPM macros. ═══ 18.1. Compiling Macros ═══ To compile the macros, issue this command from the OS/2 system prompt: ETPM EPM Use 'EPMPATH' to specify the directory containing EPM macros. If you haven't already done so, create an EPMPATH environment variable. For example, add the following to your CONFIG.SYS file: SET EPMPATH=d:\EDIT\EPM;d:\EDIT\EMACROS;d:\EDIT\MYMACROS; This assumes that you have a directory called EDIT which contains the following subdirectories: EPM, EMACROS, and MYMACROS. In this case, you will need to recompile as described above. EPM searches the following directories for data files (e.g. .E and .HLP files): 1. the current directory, and then in 2. the directories specified by the EPMPATH environment variable (if it is defined), and then 3. the directories specified by the DPATH environment variable, and then 4. the same directory as the editor's translator program (ETPM.EXE). ═══ 18.1.1. Using the RELINK, LINK, UNLINK and ETPM commands ═══ A macro source file (ie. a .E file) must be compiled into a EPM executable file (ie. a .EX file). If EPM is already in memory, then the new .EX file must be loaded (LINKed) into EPM. Whenever EPM tries to load a new .EX file, it first checks to see if it is already loaded into some edit window. If it is, EPM checks if the file on disk is newer than the one in memory. If the dates are the same, the copy in memory is shared. If not, EPM will load the new .ex file. This means that even though you can't unlink the base .ex file (EPM.EX), you can recompile it and any new edit windows you open will use the new EPM.EX, while any existing edit windows will be unaffected. The commands that allow you to compile macro files are: ETPM filename This will compile the E macro source file specified in filename into a .EX file. The new .EX file will not be loaded into version of EPM currently loaded into memory, and thus will not be immediately available for use. If no filename is specified, the MAINFILE (default EPM.E; see the MAINFILEconfiguration constant) will be used. LINK filename This will load the .EX file specified by filename into the copy of EPM residing in memory. It will not, however, recompile the .E source file. RELINK filename This will compile the .E file specified by filename into an EPM executable .EX file and load the file into the copy of EPM that currently resides in memory. If no filename is specified, the current file being edited will be used; if modified, it will be saved before being compiled. UNLINK filename This will remove a previously linked .EX file specified by filename from the version of EPM that currently resides in memory. This is useful to save memory when space is at a premium. For example, create a file called TEST.E containing the following command definition: defc hello= messageNwait("Hello, world!") You can keep the file in an open window for further changes (in fact this is advisable because EPM will move the cursor to the location of any mistakes if the file being compiled exists in the current ring). Now press the ESCape key to bring up the command line dialog box. Type: relink The current filename and .E extension will automatically be appended to the relink command. Alternatively, you could have issued the following commands: etpm test link test If the compiler reported an error, edit TEST.E and correct any typos. Once your macro compiles correctly, try the new command HELLO. Issue the following in the command line dialog box: hello A dialog box should appear with the message "Hello, world" in it. ═══ 18.2. Saving Memory and Macro Complexity with the Smaller Macro Set ═══ There is an extra file distributed with the editor package called SMALL.E. This may be used as a replacement for EPM.E. You will save about 17k of memory at the expense of losing syntax-directed editing, all math commands, host-file support, sorting, and the qdate/qtime commands. To activate the smaller definitions issue the command: ETPM small.e epm.ex from the OS/2 prompt. You may also compile it to some name other than EPM.EX, and thereafter load it only when desired with the /E command-line switch. ═══ 19. Return Codes ═══ This variable's value is set by all commands. It will contain one of the following error codes if the command did not succeed. It will contain 0 if the command did succeed. See the RC command for further information. RC Error strings RC Error strings ---- ----------------- ---- ----------------- -2 File not found -270 Not enough memory -3 Path not found -271 Error in margin settings -4 Too many open files -272 Error in tab settings -5 Access denied -273 String not found -7 Memory control blocks -274 Unknown command -8 Insufficient memory -275 Missing filename -15 Invalid drive -276 Line too long to join -18 No more files -277 Too many files -19 Disk is write-protected -278 Lines truncated -20 Unknown unit -279 Text already marked -21 Drive not ready -280 Text not marked -22 Unknown command -281 Source destination conflict -23 Data error (CRC) -282 New file -24 Bad request structure length -283 Line mark required -25 Seek error -284 Error opening file -26 Unknown media type -285 Error writing file -27 Sector not found -286 Error reading file -28 Printer out of paper -287 Insufficient disk space -29 Write fault -288 Block mark required -30 Read fault -289 Too many rings -31 General failure -290 .ex file has incorrect version. Check EPM and ETPM versions -291 No main entry point -292 Error closing file -300 command line too long to shell -301 Cannot unlink module in use -302 Cannot unlink base keyset module -307 Link: file not found -308 Link: invalid filename -309 File already linked -310 Unlink: unknown module -311 Unlink: bad module filename -313 Call: unknown proc -314 Grep: memory error -315 Grep: missing [ -316 Grep: bad range in [Alt-z] -317 Grep: empty [] -318 Grep: regular expression too long -319 Dynalink: incorrect number of parameters -321 Cannot find keyset -322 Dynalink: unrecognized library name -323 Line number invalid or too large for file -324 Keyboard status failed -325 Buffer creation size too large -326 Dynalink: unrecognized procedure name -327 Too many keysets ═══ ═══ The following operations can be performed from this dialog box: o A previously loaded file can be loaded by choosing from the list box. o A file can be loaded by typing the name of the file in the entry field. If the file entered does not exist then EPM will create it. o You can search for a file by pressing the File list... button which will open the File List dialog box. ═══ ═══ The file list dialog box is operated as follows: o If the file is in the current directory it can be loaded by choosing it from the File list box. o The directory can be changed using the Directory list box. o The current disk drive can be changed through the Drive combination list box. o The files listed can be constrained by selecting the applicable file type from the Type of file combination list box. o The name of the file can be typed in the Open filename entry field. ═══ ═══ If you have a separate Ring pulldown, then every time you add a file to the ring (with the Edit command) or remove a file from the ring (with the File or Quit command), the Ring pulldown will be rebuilt. This can be slow if you have many files in the ring. Also, the Ring pulldown is static, so it shows the ring starting from the file that was active the last time the pulldown was built. The List files in ring option is built dynamically every time it is called, so it always shows the contents of the ring starting with the current file. ═══ ═══ draft mode: the text will be printed in the default printer font, ignoring any and all font and size settings. ═══ ═══ NLS: National Language Support. As used in this document, it basically refers to the translation of text strings into other languages. ═══ ═══ WYSIWYG- What You See Is What You Get. The printed text will look exactly like the text on the screen, including font and size changes within the file. ═══ ═══ A modification refers to a single action, whether that action is typing a single character, deleting a section of marked text, or importing a large file - each counts as a single change. ═══ ═══ A word is defined as any contiguous sequence of non-blank characters. (Tabs and line-ends are treated as blanks for this purpose.) ═══ ═══ Local Area Network ═══ ═══ A block mark contains strictly rectangular area of text. ═══ ═══ A line mark is a mark in which the entire line from column 1 to column 255 is marked. ═══ ═══ A word mark contains only one word. Note that this is actually a special case of a block mark. ═══ ═══ A character mark is one which contains the stream of characters located between two points. ═══ ═══ For example, if the search_string is "the", the search will skip over "there" or "rather". A potential match is considered to not be a separate word if the preceding or following character is a letter, number, underscore (_), or dollar sign ($). This makes it useful when searching for programming language tokens, as well as for normal words. ═══ ═══ An extended ASCII character can be passed as a command-line argument by entering a string which the command recognizes and translates to the actual internal representation. The string can be any of the following: a+x Alt+X, where 'x' is any alphabetic key. c+x Ctrl+X, where 'x' is any alphabetic key. Fn Function key N, where 'n' is 1 to 12. x+Fn shifted Function key N, where 'n' is 1 to 12, and 'x' can be 's' for the Shift key, 'a' for the Alt key, and 'c' for the Ctrl key. In the above, '+' can actually be '+', '-', or '_'.