EZQuote 4.0 Copyright 1993,1994 George Hug Contents -------- Summary Description....................... 1 Running EZQuote........................... 2 Modes..................................... 2 Common Mode Functions..................... 2 Quote Mode................................ 4 Edit Mode................................. 5 WonderWrap ............................... 5 Macros.................................... 6 Mouse Support............................. 7 Configuration ............................ 8 Technical................................. 10 Suggestions............................... 11 Registration and Warranty Disclaimer...... 12 EZQuote is a small but powerful text editor specifically designed for use when writing or replying to email messages offline. It functions as the external text editor invoked by your offline reader, point software, or other message reader software. Its most significant features are: * EZQuote keeps the original quoted message and your reply in separate windows. You select the quotes to include in your reply, rather than having to delete what you don't want. (However, EZQuote may also be configured for single-window operation if you prefer.) * EZQuote's unique "WonderWrap" completely restructures a quoted passage with a single keystroke, automatically distinguishing between quote marks and text. WonderWrap repairs those obnoxious short lines left from previous wrapping, and produces well-formatted output instantly. * EZQuote has other features to facilitate offline message entry, including "intelligent" condensing of multi-generation quote marks, normal word wrap, and a single-keystroke signature. It also provides mouse support, configurable key assignments, access to spell checkers, and up to 200 macros nestable to 10 levels deep, including an optional startup macro. page 1 Running EZQuote To run EZQuote, just enter "EZQUOTE [filename]" on the command line. There are no command line options or switches, and no environment settings. EZQuote's operating parameters, including key assignments, macros, and your signature, are configurable via a separate configuration program and text file, which are described in a later section. These docs assume you are using the default key assignments. Function names used here, such as "Wrap", are the abbreviated function names used in the default bottom-line prompts. Modes EZQuote has two Modes of operation which operate as if they were completely separate editors. In the default setup, the Quote Mode window contains the original quoted message from the command-line file, if any, plus any files you may import, while the Edit Mode window is used to compose your reply. The Escape key toggles between the two Modes. Basic text editing functions are available in both Modes. A prompt line at the bottom of the screen shows what functions are available. The prompt line automatically changes when a Shift, Control, or Alt key is held down. Most functions are available in both Modes: Common Mode Functions ( @ = Alt, ^ = Ctrl ) Esc Toggle to the other Mode. F1 Abort Exit EZQuote without saving anything to disk. F3 Wrap WonderWrap the marked block. F4 Mark Toggle "Mark" anchor on and off. To mark a block, cursor to the beginning of the block and hit F4. Then as you move the cursor, the marked text is highlighted. F5 Cut Cut the marked block out of the text and store it in the paste buffer. F6 Paste Restore the paste buffer contents at cursor. page 2 F7 Exit Exit after saving the current Mode's text to disk. The other Mode's text is not saved. A Save from Edit Mode follows the Savemode configuration setting for soft CR conversion. F8 Del-EOL Delete from the cursor to the end of the line. F9 Del-L Delete the current line. F10 Undel Insert the most recent Del-EOL or Del-L delete string at the cursor. @F1 Save Save/append the marked block to a disk file. A Save from Edit Mode follows the Savemode configuration setting for soft CR conversion. @F2 Quote Insert " > " at the beginning of each line in the marked block. This is used primarily for quoting from a disk file brought in with the Load or Dir command. Normally the original message will already have quote marks. @F3 UnWrp Undo the most recent Wrap or Quote operation. This must be done right after the Wrap or Quote, before any other changes to the text. @F4 Dcmd Shell to DOS and execute a command. The command can be a DOS command, another program, or a batch file. @F5 DelB Delete the marked block. No undelete. @F6 Dir Show the contents of a specified directory. The filenames and parent/sub directories will be shown. Cursor and hit Enter to load a file (see Load) or to change to another directory. @F7 Load Load a specified file at the end of the current Mode text. In Quote Mode, oversized files will be loaded in gobs of about 24k each, with existing text being discarded as needed. In Edit Mode, existing text will not be discarded, so you must manually delete text to make room for the next gob. This prevents your reply text from being discarded. @F8 Reload Load the original command line file again. @F9 Search Search for a string from cursor to text end. @F10 Help Displays a help screen for the current Mode. ^F3 Rmarg Change the right margin (for the current session only) for both Modes. Legal values are from 36 to 255 visible characters. page 3 ^F7 IndB Indent the marked block one column. @m Display remaining menory. Ctrl-pageup and Ctrl-pagedown take you to the top-of-text and end-of-text. Ctrl-[ and Ctrl-] shift the screen from side to side so long lines can be viewed. Other cursor movements are standard. All of these key assignments are configurable. Quote Mode Upon entry to EZQuote you will normally be in Quote Mode. The contents of the command line file will be loaded into the Quote Mode editor and displayed on the screen. For EZQuote's intended use, this file will usually contain a quoted copy of the entire original message to which you are replying. To include a section of this message in your reply as a quote, first mark that section using F4 (Mark) and the cursor. The marked section may begin and/or end in the middle of a line. Then hit F3 (Wrap) to WonderWrap the marked block. WonderWrap will restructure the marked block, separately formatting the quote marks and the true text. Since WonderWrap leaves the block marked, you need only hit F2 (Xfer) to transfer a copy of the wrapped block to the Edit Mode window. The Xfer function will make sure there is at least one blank line before and after the transferred text. Having transferred the quoted block to Edit Mode, the Xfer function ends by toggling you into Edit Mode, with the cursor located at the end of the newly transferred block. You can then begin typing your reply to that quote. To quote another section of the original message, hit Escape to get back into Quote Mode, and repeat the process. As described above under Common Mode Function Keys, there are ancillary functions which allow you to bring files from disk into Quote Mode and quote from them, or save marked portions of the Quote Mode text to disk. Also see further comments below about WonderWrap. If the Bootmode configuration setting is changed to dit, the command-line file will be brought up in the Edit Mode window, and you may then use EZQuote as a single-window editor with WonderWrap. In that configuration, Quote Mode would be used only for file imports. The following function is available only in Quote Mode: F2 Xfer Transfer marked block to Edit Mode, then go to Edit Mode. page 4 Edit Mode Edit Mode is essentially a normal text editor used for typing your replies or original messages. If no command line file is specified, or if it doesn't exist or is "empty" (less than three bytes long), then EZQuote will come up in Edit Mode, and Quote Mode will be largely irrelevant except for file imports. This is the case when you enter an original message which is not a reply. EZQuote will also boot in Edit Mode if the Bootmode configuration item is set to dit. While WonderWrap operates in both modes, normal word wrap is in effect *ONLY* in Edit Mode. As you type or edit new text, it is automatically wrapped at the current right margin using soft CRs. Of course you may also hit the Enter key at any time to produce a hard CRLF. (Your work can be saved in soft or hard format - see Configuration below.) As needed you can Escape into Quote Mode to fetch another quote from the original message or import a file to quote from. Ctrl-F6 (Sign) will insert a preconfigured signature block into your reply at the cursor. When you have finished entering your message, hit F7 (Exit) while in Edit Mode to save your work and return to the calling program. The following functions are available only in Edit Mode: ( ^ = Ctrl ) F2 Refmt Reformat the soft-wrapped text from the cursor to the first hard CR. While EZQuote's word wrap uses full "reflow", a text change may affect what could have gone on the previous line. Cursor up and hit F2 to manually reflow. ^F2 Soft Convert hard CRLFs in the current paragraph (or in each paragraph of the marked block, if any) to soft CRs, then Refmt. This re-enables word wrap reflow on a previously-entered message or on a hard-formatted paragraph from an imported file. ^F6 Sign Insert signature block at cursor. (See Configuration section.) WonderWrap The WonderWrap algorithm aggressively rewraps the marked block, paragraph by paragraph. Its biggest challenge is to distinguish between quote marks and text. It generally assumes that if all lines in a paragraph begin with the same page 5 characters, then those characters are quote marks. Exceptional treatment, however, is given to "short" lines which may have resulted from previous simpler wrapping methods. These short lines may have all, none, or just some of the quote marks found on the longer lines. This pattern matching process requires that WonderWrap correctly determine what constitutes a paragraph (text which is supposed to have the same quote marks). The algorithm assumes that paragraphs are separated by blank lines, or by lines which contain only quote marks or spaces. In addition, if the Fidonet standard "XX>" quote mark format was used, WonderWrap assumes that a change in the quote mark pattern on long lines also identifies a paragraph boundary even if there is no blank line. If WonderWrap ever fails to wrap correctly, it is usually because two sections with different quote marks have not been successfully separated into paragraphs by the algorithm. If this occurs, use Alt-F3 (UnWrp) to restore the original block, and then Wrap the two sections separately. Or, after UnWrp, just cursor up and insert a blank line between the sections before Wrapping again. The algorithm may also not work properly if the quote marks in a paragraph are not vertically aligned. Again, the UnWrp function and a little editing will usually fix that problem. WonderWrap should not be used on columnar text because the reformatting will destroy its columnar organization. And there will be the occasional block of text which is already irreparably butchered. In such cases, remember that you can always just Mark and Xfer the block, without Wrapping. Please review the file EXAMPLES.TXT to see how the WonderWrap algorithm works. Macros A macro is a sequence of operations which is performed automatically when invoked by a single keystroke. You may define a macro's sequence, and the key that invokes it, in the CONFIG.EZQ text file. You may define up to 200 macro sequences of any size. The sequences may be specified in terms of literals, key names, function names, or other macro names. You may imbed macros within other macros up to 10 levels deep. If you define a macro which is invoked by the phantom keyname "startkey", it will be executed automatically after the command-line file has been loaded and auto-Xfers, if any, have been executed. page 6 Detailed instructions on defining macros are contained in the CONFIG.EZQ configuration text file. You should also review the file UPGRADE.DOC for further information on certain functions. There are six macros in the default configuration which you may use, modify, reassign to other keys, or delete, as you like: ^F1 Spell Shell to spell checker "SS". ^F4 Dos Shell to DOS. Type "EXIT" to return. ^F5 DelE Delete from cursor to end of text. No undo. ^F8 ExpTabs Expand tabs to spaces. ^F9 Srch> Find next occurrence of search string. ^F10 PrtB Save the marked block to the file "PRN", which on many systems causes the block to be printed Mouse Support If a Microsoft-compatible mouse driver is installed and active, you can use a mouse in EZQuote to move the cursor, mark blocks of text, and perform certain other functions. However, there is no mouse pointer independent of the text cursor, so pull-down menus and scroll bars are not used. To mark a block of text, move to the beginning of the block, press the left button, and hold it down while moving the mouse to the end of the block. Then release the left button. At this point the block is marked and the mouse will be disengaged so that inadvertent mouse movement will not affect the marked block. To adjust the end-point of a marked block after it has been defined, press and hold down the left button again to re- engage the mouse. To turn block marking off, hold the left button down and click the right button once. In Quote Mode, the first click of the right button will WonderWrap a marked block, and the second click will Xfer it to Edit Mode. In Edit Mode, a click of the right button will Cut a marked block to the paste buffer if Bootmode is set to uote, or WonderWrap it if Bootmode is set to dit. In both Modes, if there is no marked block, clicking the right button will switch you to the other Mode in the same fashion as hitting the escape key. page 7 The mickey-to-cursor translation algorithm used in EZQuote provides for a bias toward continued movement along the current horizontal or vertical axis. Such a bias makes the mouse less "touchy" while still retaining speed. It is accomplished in part by requiring fewer mickeys to continue along the current axis than was required to change to that axis in the first place. The extent of that bias, as well as overall mouse sensitivity, can be adjusted through the First and Next configuration settings. Configuration To change EZQuote's default configuration, you must run the program EZQCFG.COM. It extracts information from the text file CONFIG.EZQ, and installs it in EZQUOTE.COM. All three files should be in the same directory, and EZQCFG should be run from that directory. The items listed below are configurable. The CONFIG.EZQ text file itself contains additional detailed instructions. Bootmode Specifies into which window EZQuote will load the command- line file. Keyboard Choose Standard or Extended BIOS keyboard functions. Colors Select character and screen colors for CGA, EGA and VGA. These selections do not affect monochrome displays. Snow removal Snow removal for old CGA adapters can be turned on or off. Right margin Select the default right margin for normal word wrap and WonderWrap. One setting controls both Modes. This value can also be changed temporarily in EZQuote itself using the Ctrl-F3 (Rmarg) function. page 8 Tab stop Change tab stop spacing (normally 8) to another value. Auto Xfer EZQuote can be configured to automatically transfer the contents of certain lines from Quote Mode to Edit Mode immediately after the command line file is loaded. This permits you to automatically transfer those "On March 1, 1994, Jim Smith said to Bob Brown:" lines to your reply. Intelligent quote mark condensing When a passage has been requoted several times, the quote marks tend to build up. "Intelligent" condensing uses only the oldest quote initials for such a passage when it is WonderWrapped. So the quote string "GH> MB> RP>" becomes just "RP>". This feature can be turned on or off. Savemode soft CR conversion The normal as-you-type word wrap function in Edit Mode is performed with soft CRs. EZQuote can be configured to save soft-wrapped text to disk in oft format (soft CRs converted to spaces) or in ard format (soft CRs converted to hard CRLFs). Hard format is the default. Sort directory Sorting of DIR listings can be turned on or off. Force end-of-line If turned on, this function will make sure that upon Exit from Edit Mode there is a CR/LF at the end of the file. Mouse support If turned on, EZQuote will search for an installed mouse driver and enable mouse functions. Mouse sensitivity Horizontal and vertical sensitivity can be adjusted. See Mouse Support section above. page 9 Tempfile When you shell to DOS, EZQuote swaps itself out to a disk file. You can specify that filename, with an optional drive and directory. The extension must be ".000". Signature The Sign function inserts this block of text into your message verbatim. Function/Keyname Assignments The keystrokes which invoke EZQuote's functions are all configurable. These may include WordStar commands. Macros Macros are defined as part of the configuration process, including an optional startup macro. See "Macros" section above. Bottom Line Prompts and Help Screens If you change the default key assignments, or define macros, you may also wish to reconfigure the prompt lines and help screens to match your selections. Technical EZQUOTE.COM automatically adjusts its buffer sizes to the amount of conventional memory available. It can operate in as little as 94k of memory with 10k buffers, or use up to 328k with the maximum 48k buffer size. There are six primary buffers, all of which are the same size. Edit Mode main file buffer Quote Mode main file buffer Edit Mode paste buffer Quote Mode paste buffer Wrap buffer - one serves both Modes UnWrp buffer - one serves both Modes EZQuote is written entirely in assembly language. It swaps to disk before shelling to DOS, leaving only about 7k resident in RAM. The Insert key toggles between Insert and Overstrike modes. The current setting is shown at the end of the prompt line, page 10 and the cursor shape is different in the two modes. In Overstrike mode, hitting the enter key or the tab key generally will not change the text, but will just move the cursor to the next line or next tab stop. If you enter a tab from the keyboard in Insert mode, EZQuote will insert the number of spaces needed to go to the next tab stop, as defined in the configuration file. A tab contained in a loaded file will be displayed and wrapped as a single character, but there is a default macro to expand the tabs. When you call a function, such as Load or Search, which calls for entry of a text string, the most recently entered string for that function is presented to you again. You may hit enter to accept it, hit backspace(s) to edit it, hit home to erase it and start over, or hit escape to abort the function. If you specify a macro sequence which shells to DOS, any remaining items in the sequence will be executed only when you return from DOS. EZQuote does not insert keystrokes into the keyboard buffer when shelling to DOS. Suggestions If you save your messages in the default hard format (see Configuration above), leave plenty of room along the right margin so your text won't need to be wrapped when it is quoted. If your right margin is set at column 78, it will produce those obnoxious short lines when it is quoted by others, at least until everybody starts using EZQuote. The default margin value (68) seems to work well. If you need to revise a message you've entered earlier, it will probably come up in hard-CRLF format. If you are in Quote Mode, you can Escape into Edit Mode and Reload (Alt-F8) the file. With the file in Edit Mode, you can use Soft (Ctrl-F2) on any paragraph to restore its soft CRs and reenable full reflow word wrap. File imports should generally be done in Quote Mode and selections transferred over to Edit Mode, even if you are operating in the single-window configuration. To copy a section of text, Cut it, then Paste it back before moving the cursor. (You can set up a macro to do that automatically if you like.) Then move the cursor to the desired location and Paste again. You can Paste the same text any number of times. This also works with Delete-Line and Undel-Line. If you change keystroke assignments or add macros, make sure your new CONFIG.EZQ is backed up. You cannot recreate that file from the configuration stored in the EZQUOTE.COM file. page 11 Use the default two-window configuration. It may feel unfamiliar at first, but after you've adjusted to it, it will be faster and easier, and produce better quoting. Registration and Warranty Disclaimer EZQUOTE.COM, EZQCFG.COM, CONFIG.EZQ, and their accompanying text files (collectively "EZQuote") are copyrighted. They are neither freeware nor in the public domain. Personal use of EZQuote by individual hobbyists is permitted after registration with the author and payment of a license fee of US$15. Send your name and address and the license fee to: George Hug 6921 S. New Haven Ave. Tulsa, OK 74136 You will receive by return mail your personal registration number, which can be installed through an EZQCFG menu selection. Your registration is valid for any future version of EZQuote which may be released, at no additional cost. Any other use of EZQuote, including commercial, governmental, or other institutional use, requires a special license from the author. Without the express written consent of its author, neither EZQuote nor any portion of it may be incorporated into, or packaged or bundled with, any other software or other product or service. EZQUOTE.COM performs tests at various points in the program in an effort to detect whether it has been infected by a virus or tampered with. You should not make changes to the EZQUOTE.COM file other than those made by EZQCFG. EZQuote will not function properly if such changes are made. EZQuote is distributed "as is". There are no warranties, express or implied. The author will not be liable for any damages, including any lost profits or other incidental or consequential damages, arising out of the use of EZQuote. Tulsa, Oklahoma 1:170/110.8 June 15, 1994 FidoNet page 12