Programmer's File Editor History of Development Changes ------------------------------ Not all the versions whose numbers appear in the list below have been released publicly Items are flagged thus: [PFE32] : item is specific to the Windows/NT version [PFE16] : item is specific to the Windows 3 version 0.05.006 -------- EditTextInsertASCIICode now correctly inserts Ctrl+I as a single 0x09 character regardless of whether the window is set for soft tabs Added functions CaretTopOfWindow (Ctrl+PgUp) and CaretTopOfWindowSelect (Ctrl+Shift+PgUp), and a corresponding DDE command CaretTopOfWindow, which move the caret to the top left of the current window Added functions CaretBottomOfWindow (Ctrl+PgDn) and CaretBottomOfWindowSelect (Ctrl+Shift+PgDn), and a corresponding DDE command CaretBottomOfWindow, which move the caret to the bottom left of the current window Added functions CaretStartOfText (Alt+Home) and CaretStartOfTextSelect (Alt+Shift+Home), and a corresponding DDE command CaretStartOfText, which move the caret to the first non-white-space character in the current line A number of function names and DDE command names have changed to be more consistent with others: EditGotoEnd[Select] now CaretEndOfFile[Select] EditGotoStart[Select] now CaretStartOfFile[Select] CaretHome[Select] now CaretStartOfLine[Select] CaretEnd[Select] now CaretEndOfLine[Select] Fixed a bug that would cause strange behaviour if WindowTileVertical was used with the current child window maximized Fixed a bug that would leave the caret and the insertion point at different places if EditShowCaret was used with the caret in the line immediately above or below the visible window Changed the menu accelerator keys for Edit|Copy and Edit|Cut to be compliant with standard Windows usage Fixed a bug that would cause PgUp and PgDn to corrupt the undo stack, leading to subsequent GPFs or data corruption [PFE16] Fixed a bug whereby pressing and releasing AltGr would stop keypad and caret movement keys working again in the session The default backup mode is now to keep the file in the same directory as the original, with a file type of ".&&&", and the backup-mode numbers in the [options] section of the ini file have changed to make this '0' [PFE32] Circumvented a Win32s 1.1 bug that would corrupt the font size set in the printer and screen font selection dialogs when running the 32-bit version under Windows 3.1 0.05.005 -------- Fixed a bug whereby an Edit Copy following a sequence of typing or deleting would corrupt the undo stack and lead to a GPF sometime later Menu items now show descriptive text in the status bar when they are selected Status bar updates are now somewhat smoother and less flickery [PFE32] DOS Command-with-capture menu and toolbar items are now correctly disabled under Win32s Backup now has two modes, selectable with the 'backup-mode' key in the [options] section of the ini file; files can be backed up either to subdirectories with the same name, or in the same directory as the original with a file type of ".&&&" The documented escape character in search strings is now '\' (so that, for example, a tab is '\t'). The old '^' escape is still supported for the moment, but needs to be phased out to allow regular expressions to be implemented Fixed a bug that would prevent network printers identified by UNCname being correctly remembered as the default printer between sessions, and would prevent the settings for such printers being remembered Fixed a bug that would cause a machine using PathWorks to report a network fail on drive "?" when PFE was started in the root directory of a drive [PFE32] File names are no longer forced to be lower case in any circumstances, avoiding problems in case-aware filing systems like NTFS The Execute DOS Command to Window and Execute Launch Application dialogs now record the last 8 command lines executed, and the last 8 working directories visited Fixed a bug that would add the wrong title to an attachment icon when mailing a file via a MAPI mailer Line numbering is no longer confused when printing a file with Form Feed characters appearing other than at the beginning of lines Toolbar buttons and menu items are now set up correctly when a file is opened in read only mode by File View Added a language type "TeX"; this differs from plain text only in that "-" is not considered a break point for line wrapping 0.05.004 -------- Fixed several bugs synchronising undo actions across windows showing the same file Added a command line option '/v' which will cause all files named on the command line to be opened in read-only mode Fixed a bug that caused brace matching to fail in some files with language type of "(none)" Added menu items Execute Program Manager and Execute Task Manager and related commands Fixed a bug that could cause file corruption or GPFs when undoing a 'delete back' action Fixed a bug that would cause a GPF when the Ins key was pressed when no file was open Fixed bugs with non-English keyboards that prevented AltGr+number keys from generating characters like { and } Fixed bugs that could interfere with use of the numeric keyboard to synthesise character codes File save actions now clear the stack of recorded undo actions by default; this can be changed with the 'save-clears-undo' setting in the [options] section of the ini file Fixed a file handle leak that would occur whenever a write to disk operation failed By default, any operation that saves a file to disk will now take a backup copy of any existing file of the same name before starting; this can be controlled by setting the "Backup" file mode Fixed bugs in the EditTextWidenBrace command that would fail to locate closing braces occurring immediately after an existing selection [PFE32] Fixed a bug that would cause random GPFs and malfunctions in handling DDE commands The EditCopy DDE command now works as documented Added context help search, to provide help on text in edit windows, available from the Help Context Help command or a double click on the right mouse button The Window Tile Vertical command now preferentially locates windows showing command output at the top of the screen [PFE16] Fixed a bug that could leave work files created to catch command output undeleted The horizontal scroll bar algorithms have been changed, and the thumbtack is now more usable on files of normal line widths The name of the file in the current window can now automatically be substituted in command lines executed by the Execute DOS Command To Window, Execute Repeat DOS Command To Window, and Execute Launch Application commands 0.05.003 -------- The Execute File Manager, Execute Control Panel and Execute Print Manager menu items and related commands now work correctly after being broken in 0.05.002 When setting a selection as the default find string, the Edit Find and Edit Replace dialogs now correctly translate characters with codes greater than 127 into "^xnn" notation When undo returns a file to an unchanged state, the toolbar Save button and File Save menu items are now de-activated Fixed a bug causing Dr Watson to report parameter validation errors in ModifyMenu on startup or on load of a keymap file The EditCMatchBrace command has been renamed EditTextMatchBrace and now has a menu item mapped to Ctrl+B. If the window has a language of "none", brace matching is done on {}, [], () and <> without regard to any syntactic elements; if the language is "C", matching is done on {}, [] and () and (some) C syntax is taken into account Added command EditTextMatchBraceSelect, mapped to Shift+Ctrl+B, which acts as for EditTextMatchBrace but also selects the text between and including the braces Fixed a bug that would cause problems if brace matching was used when any text was highlighted Fixed a bug that made the KeyPad5 key unusable Added a command EditTextWidenBraceSelect, mapped to Shift+Ctrl+W, which selects successively larger areas of text between braces, using the same brace location algorithms as EditTextMatchBrace Fixed a bug introduced in 0.05.002 that caused the Tab key (and the EditInsertTab command it maps to by default) to insert a hard tab even if soft tabs were selected for the window The "Add Ctrl+Z On Save" and "No EOLN after last line" check boxes in the Options Default File/Window Modes dialog now work correctly The default key mappings of Shift+Tab to EditInsertSoftTab and Ctrl+Tab to EditInsertHardTab have been removed, as these conflict with standard MDI usage The status bar is now a little prettier when showing static text messages The applications run by the Execute File Manager, Execute Print Manager and Execute Control Panel menu items can now be customised by means of entries in the [managers] section of the ini file 0.05.002 -------- Key mapping has been completely redesigned. Very many more key combinations (including Alt keys) can be mapped; any or all of Ctrl+A..Ctrl+Z and Esc can be used as prefix keys; and the Key Mapping dialog has been made far easier to use. Key map files saved with earlier versions of PFE are not compatible with the new system. The OptionsPrefixKeys command has been removed; prefix keys can now only be configured from within the Key Mapping dialog Added functions EditInsertTab (mapped to Tab), EditInsertHardTab and EditInsertSoftTab to insert hard/soft tabs, hard tabs always, and soft tabs always, respectively Added command SysSetMenuMode, mapped to F10, to highlight the leftmost item on the main menu, for compatibility with standard practice The 16-bit and 32-bit ini and default keymap files have been separated. The Windows 3.1 version continues to use pfe.ini and pfe.key; the Windows/NT version now uses pfe32.ini and pfe32.key Fixed a bug whereby a sequence like Find-overtype-find-overtype would corrupt the Undo stack Keyboard macro items have been split from the Execute menu and placed in their own Macro menu Added a "Print Manager" item to the Execute menu The WindowCentreCaret command has been renamed EditShowCaret and now appears on the Edit menu Message boxes that support F1 help now announce this in the status bar Added a system menu item "Save Screen" to activate a standard Windows screen saver program immediately Arbitrary character codes can now be specified in Find and Replace strings using the notation "^xnn", where "nn" are 2 hexadecimal digits The Replace dialog now contains an "Undo Last" button to undo the last replace operation 0.05.001 -------- [PFE32] The File Mail command now loads the correct MAPI DLL (MAPI32.DLL instead of MAPI.DLL) [PFE32] The File Save As dialog now shows a Network button on networked machines The Goto Line dialog now correctly accepts an attempt to specify the final line of a file Form Feed characters can now be specified in Find and Replace strings using the notation "^f" Moved the hot-spot in the toolbar 'hand' cursor to the tip of the index finger, to make use more intuitive Fixed a bug that would cause a UAE if Edit Select All or Edit Select Word were followed by any cursor movement key that also extended the selection File loading has been made faster; load time is now much closer to proportional to file size, rather than degrading progressively as lines are loaded When a file is opened, the loader now displays the first window's worth of text as soon as it is read from disk, to give better feedback on what is happening The Edit Find and Edit Replace dialogs now retain the last 8 strings used, and these can be reselected from drop-down list boxes. Optionally, the strings can be recorded at the end of a session and reloaded in the next The Edit Find and Edit Replace dialogs now default the text in their Find What edit controls to the first 256 characters of any selected text in the current window. The previously-used search string will always be available as the first in the drop-down list Added a command EditTextInsertASCIICode, mapped to Ctrl+Q by default, which runs a dialog allowing control characters and other non-typable characters to be inserted Implemented a multi-level undo facility to reverse edit actions Added file modes to strip any trailing Ctrl+Z when a file is loaded; to automatically add a Ctrl+Z to the end when a file is saved; and to suppress writing an EOLN terminator at the end of the last line when a file is saved Added a command HelpScreenMenuHelp, mapped to Shift+F1, which enters the help system at an appropriate point when the mouse is clicked on a menu command or an area of the tool bar or status bar 0.04.009 -------- [PFE16] PFE now can detect it is running under WOW and tailor things accordingly Fixed a bug that limited the maximum value of the 'mru-files-shown' ini file option to 5 instead of the documented 8; also set the minimum value to 0 rather than 3 Added an ini file option 'sound-beep' to suppress all beeps associated with message boxes Ctrl+Backspace can now be mapped correctly Cleared the confusion in handling mapping of Shift+Backspace; for the moment this has required that Ctrl+Shift+H is no longer mappable Fixed a bug that caused a print operation to fail when the last line of the file was printed on the last line of any page The Edit Goto Line dialog now has a system menu The OK button in the Edit Goto Line dialog is now enabled only if a line number has been typed in the Line To Goto edit control The Edit Goto Line dialog now accepts line numbers preceded by "+" or "-" as meaning relative to the current line number Fixed a bug in the Default File/Window Modes dialog that would cause the tab size to be set as a negative value if soft tabbing was selected Edit controls in dialogs that accept numeric input are now insensitive to leading and trailing white space The Key Mapping dialog now prompts if there are unsaved changes when the Load button is clicked, and correctly resets the "unsaved changes" flag Changes to windows made by allowing keys to auto-repeat, and tracking of mouse selections, should now appear better on slower machines The "auto-indent" window mode is now respected by the routines that wrap text as it is being typed Fixed some bugs in control block chaining that could cause UAEs when closing some of a large number of open windows and/or files Installing a printer of an existing type, but connected to a different port, while PFE is running no longer confuses the Print Setup dialog over which printer is the default Printers connected to files by means of a "pathname=" line in the [Ports] section of win.ini are now handled correctly, and the filename is not corrupted When text wrapping is active, typing at the end of a line that already extends past the wrap column now correctly breaks the line at the break point closest to, and left of, the wrap column [PFE32] Circumvented a Windows/NT bug that caused a GP fault when the Apply button was clicked in the Options Default File/Window Modes dialog and some other dialogs (October 1992 beta only) The ini file [options] setting "auto-unix" has been renamed "auto-format" If PFE is exited with the tool bar floating and also hidden, the tool bar is now drawn correctly the next time it is made visible The Edit Cut tool bar button, and the key mapped to EditCut, are now correctly disabled if the current file is marked read-only PFE now correctly responds when printers are changed via Control Panel.It no longer records the driver name in its ini file, so that it will not try to use an obsolete driver after an upgrade Fixed a bug that caused a parameter validation error in GetWindowLong if the left button was double clicked in the menu bar and no file was open Fixed further bugs that would cause looping replacing strings containing "^n" characters Fixed a bug causing a parameter validation error in SetWindowText when the "Remap Key" button of the Options Key Mapping dialog was pressed [PFE32] Full template functionality is now available. PFE32 now correctly uses the same file format as PFE16; template files created under earlier versions of PFE32 will no longer work [PFE32] The system shutdown options in the "Exit Windows/NT" dialog now work correctly [PFE32] It is now possible to run DOS commands and capture output Fixed a bug that would cause PFE to hang or misbehave while searching if the text contained characters > 127 The file position in the status bar is now updated correctly after a succesful search from the Find or Replace dialog [PFE32] File Insert no longer fails with a "Cannot get file size" message Fixed a bug that would cause a UAE when performing a template action after detaching a template file The File Save All command now saves all open files, and not only altered ones, if the ini file option 'allow-save-always' is set A file's save format now cannot be altered if the file is marked as read only Changing the format a file is saved in via the modes dialog or with the status bar now marks the file as changed Added a DDE command EditGotoLine Added an ini file option 'auto-file-action' to have PFE either create an empty edit window or show the File Open dialog automatically if started with no file names on the command line Files whose first character is a Form Feed (0x0c) character now print correctly Fixed numerous bugs affecting synchronisation of changes in duplicated windows File Close now correctly asks if changes should be saved if the current file is visible in more than one window [PFE32] File Close now works correctly always Fixed a bug that would randomly cause the ini file option 'open-maximized' to be ignored Fixed a printing bug that would lose the header line giving the file name when a top margin was selected [PFE32] Fixed a bug causing a UAE trying to display an empty line that is not within a selection [PFE32] Drag and drop of files from File Manager into the PFE window now correctly opens them Fixed a bug that could produce "Bad offset" warnings or misplace the caret when inserting files larger than 8K whose last lines did not end in CRLF or LF General release on April 28 1993 0.04.008 -------- [PFE32] Fixed a bug that would cause a UAE on clicking the OK box of any font- selection dialog Added a 'toolbar-size' option to the ini file to override the automatic sizing of the tool bar Removed the confusing Edit|Undo menu option; it will reappear when Undo is actually implemented General release on February 1 1993 0.04.007 -------- Fixed a bug that caused DDE errors to occur on startup if PFE was invoked with file names on the command line Added a "/k" command line option to allow a key map file to be specified for loading at startup in place of pfe.key; this option implies "/m" Instances started with command line options implying multi-instance mode are no longer erroneously activated by a succeeding start without options Instances started with options implying multi-instance mode no longer update the most-recently-used-file list on termination Added a "/d" option to force the DDE server to be enabled at start-up even if options implying multi-instance mode are used Where multiple printers of the same type are configured on different ports, PFE now shows them all in the print-related dialogs instead of only the first [PFE32] F1 now correctly activates context-specific help in dialogs When a search operation is initiated from a Find or Replace dialog, the window will be redrawn to show the matching string in the second line from the top, to try to avoid it being hidden by the dialog box The function names EditIndent, EditUndent, EditLowercaseSelection, EditUppercaseSelection and EditTransposeCharacters have been changed to be EditTextIndent, EditTextUndent and so on; key mappings to the old names will need to be re-instated Fixed a bug that could put PFE into a loop when using the Window Next command with all edit windows iconic The most-recently-used-file list can now be up to 64 names long; names not shown on the File menu can be selected from a "More Files" dialog Added a Window Select command, mapped by default to Ctrl+W, to select from many open windows; the dialog for this replaces the standard MDI "More Windows" dialog [PFE32] The DDE service name has been changed to be "PFE32", to separate the services of the Windows/16 and Windows/NT versions Remedied the omission of the Ctrl+X Ctrl+S combination from the list of keys that can be mapped The DDE command EditInsertString has been renamed EditInsert Fixed bug that would leave a caret in the middle of the Find or Replace dialog when a match was found Mappable functions EditRepeatFind and EditRepeatReplace have been renamed EditRepeatLastFind and EditRepeatLastReplace Added an Options|ResetFile/WindowModes command to reset the modes of the current window and the file it shows to those appropriate to the file type The Printer Font dialog now correctly returns focus to its parent dialog on close Limited release to beta testers 20 January 1993 0.04.006 -------- Dialogs now show help if F1 is pressed, as well as with their Help buttons Fixed a bug introduced in 0.04.005 that caused Ctrl+End to leave the caret showing beyond the actual end of file Fixed a bug introduced in 0.04.005 that caused the File Write dialog to be run twice Fixed a bug that would leave bitmaps undeleted on exit if ever child windows were closed by double-clicking in their system menu boxes [PFE32] Scroll bar elevators now work [PFE32] Child windows can now be closed by double-clicking in their system menu boxes Automatic horizontal scrolling now endeavours to keep the caret as far right in a window as possible, which should improve the appearance of searches, word wraps and the like A command line option "/m" now allows you to force a new instance of PFE to start even if another is running Added a "DDE Server" command on the Options menu and equivalent mappable functions to allow the DDE server system to be turned on and off at will Added a DDE data item FileName to return the name of the current file Added a DDE data item WindowTitle to return the title of the current window Added a DDE command EditFind to perform string searches Added DDE Poke items OpenFiles and ViewFiles to allow opening of several files in a single operation over a DDE link The mechanism for passing command line filenames to previously-running instances has been rewritten to run asynchronously from the client and pass all the filenames in one transaction, rather than in separate commands The mechanism for pasting data over a DDE Poke link has been rewritten to run asynchronously from the client Limited release to beta testers 10 January 1993 0.04.005 -------- The status bar has had its intelligence raised, and responds to double-left- clicks thus: in the line/column area, it starts an Edit Goto Line dialog; in the Read-Only area it toggles read-only mode; in the Recorder status area it toggles the recorder on and off; in the Wrap area it toggles line wrap on and off; in the insert/overwrite area it toggles between the settings. The only way to banish the status bar is now from the Options menu. The format a file will be saved in (DOS/Unix) is now shown in the status bar, and can be altered by double-clicking The mouse cursor now changes shape to give cues when over the tool bar, over the status bar, and over a selection Fixed a bug introduced in 0.04.004 that caused a UAE loading files in UNIX format The mouse cursor is now hidden when the user starts typing Drag-and-drop operations are now disabled completely in read-only files Fixed a bug that caused a UAE when a drag-and-drop area extended over more than one line, and the drop target was in the same line as the end point of the highlight Fixed a bug that would cause PFE to loop when replacing all occurrences of end- of-line (^n) characters Fixed a bug whereby the default file name was not set up in the File Save As dialog edit control as it should have been Tool bar buttons are now set correctly if a file is changed from being read- only to being writable If a DOS command with output capture action re-uses an existing output window, the caret is now shown in the correct position relative to the new contents The Execute DOS Command to Window dialog now has an option to position the window at the end of the output rather than at the start; this is now the default behaviour On startup PFE now checks whether files in the most-recently-used list of files that are on local hard disks still exist, and silently removes them if not When a drag-and-drop operation is aborted by pressing ESC, the caret is returned to the start of the highlighted area and the window redrawn to show it Added a File Save All command that will save all altered files, store all altered templates, and save all altered template files The "Templates" item on the main menu is now "Template" to match every other reference to it The help file has been completely rewritten and may now even be useful; corresponding changes have been made to the Help menu Dialogs now have Help buttons to give instructions on their use Dialogs now all have system menu boxes The File Save command now detects that a window showing DOS command output has no associated file name, and turns itself into File Save As 0.04.004 -------- A Replace All operation no longer misses out a match in a selection produced by a previous Replace or FindNext If the current window is iconic when a Find or a Replace dialog is started, the window will be restored before the dialog box is shown Added an ini file option 'allow-save-always' to allow the File|Save menu item and the corresponding tool bar button to function even if the current file has not changed Fixed a bug that erroneously lit the tool bar cut and copy buttons after a Find operation with 'select matching text' turned off Fixed a memory manager bug that could cause data corruption or UAEs in complex circumstances most often seen in replace operations in large files Added an ini file option 'minimize-on-empty' that iconizes the main window when the last child window in use is closed File names shown as the titles of windows are now abbreviated to exclude as much as possible of the current directory name Corrected mis-spelling in status bar help line for the 'Repeat DOS Command' toolbar button PFE now records its state in the ini file correctly if Windows is shut down while it is running When a file name is changed (by File|SaveAs or File|Name) the file and window modes now change to match those appropriate to the file type in the new name The status bar INS/OVR flag is now updated correctly if insert mode is turned on or off using the 'Set Current Modes' dialog Edit|Text|Indent and Edit|Text|Undent functions now allow the current line, or all the lines in a selection, to be indented or undented by one tab stop The Shift+Backspace key combination is now mappable to functions Automatic text wrapping of lines as they are typed is now implemented An 'Exit Windows' item has been added to the system menu, permitting Windows to be closed down in a variety of exciting ways from within PFE. When the 'Save Changes' message box is shown on exit from the Key Mapping dialog, focus is now correctly restored to the current edit window The status bar now shows feedback on the progress of load and save operations Fixed a bug that caused a spurious blank line to be created whenever a file being loaded contained a CR-LF byte pair that straddled a storage block boundary Auto-indenting is now carried out if a line is split, or if a newline is inserted, when the caret is in the middle of a line as well as at the end PFE now has a marginally better knowledge of C syntax and handles brace lineup, auto-indent and brace matching in a rather more useful way in C language files Internal re-organisation needed for porting to Windows/NT Added a way to circumvent a Windows/NT bug that refuses to show fixed-pitch fonts in the Choose Font dialogs, affecting both the 16- and 32-bit versions; putting 'fix-font-bug=1' in the [options] section of the ini file will show all fonts, but attempts to select variable-pitch ones will be rejected [there is no plan for PFE to support variable pitch fonts] The File|Name, File|Write and File|Save dialogs now default the file name to that of the current file, if it has one The File|Open, File|Name, File|Write and File|Save dialogs now independently record the filename filter last used, and take that as the default on the next invocation A drag and drop operation can now be aborted by pressing ESCAPE before releasing the left mouse button Up to five user-defined items may now be added to the Help menu, each one invoking a specified Windows help file. The menu item Help|WindowsSDK has been deleted; you should insert an entry in the [help-files] section of the ini file to access it. Limited release to beta testers 21 December 1992 0.04.003 -------- The tool bar buttons are now maintained at approximately the same physical size on all screen resolutions Changed the way child windows are opened maximized for a better visual appearance, avoiding a transient restored state Files can be mailed using MAPI-compliant mail systems The way that the termination of DOS commands is detected has been changed, and no longer calls GetModuleUsage with an invalid module handle The menu item for "Repeat DOS Command", and the "Run DOS Command" toolbar button, are now disabled while a DOS command is running Search and Replace operations now use the common dialogs. To be consistent, "Search" has been changed to "Find" in menus and command names The file name is now shown in the print Abort dialog, and a faulty call to SetDlgItemText with an invalid control handle corrected Fixed a bug that caused a UAE if a strictly empty file was loaded and a character was typed (this would happen if PFE was used as the editor for WinQVT/net's POP mailer) The cursor now changes to an hourglass when cutting or deleting a selection The format of the [modes] section of the ini file has changed slightly. Soft tabs are no longer recorded as a -ve tab size, but as a positive value with a bit flag in the window modes word. Versions of PFE from here on will accept the old format on startup, but write the new one Auto-indenting now inserts the relevant number of spaces instead of a single tab character if the window is set to use soft tabs Fixed a bug that caused a non-ANSI screen font selected in one session to be incorrectly selected on subsequent sessions 0.04.002 -------- The "file changed" marker in the status bar has been changed from "C" to "#" to avoid confusion with language types Added a standard key mapping Ctrl+Shift+O to invoke EditSplitLine Fixed random return value from routine that detected a second PFE instance Characters with ASCII values > 127 are now printed correctly as ANSI characters rather than as digraphs Extending a selection generated by a successful search no longer causes a UAE It is now possible to set the screen font and printer font to non-ANSI as well as ANSI fonts The most-recently-used-file list is no longer erroneously appended to the system menu instead of the File menu if the MDI child is started maximized Files specified on the command line with names beginning '\' are now handled correctly Search-and-replace no longer disregards the 'read-only' status of a file The filter for "*.exe" files in the Browse sub-dialog of the "Configure Windows Tools" dialog now works correctly Fixed a bug whereby some files would not be saved on exit or from a File|CloseAll operation if some altered files were untitled General release as the second beta version on 3 November 1992 0.04.001 -------- Improved scrolling behaviour when dragging a selection with a mouse and fixed several bugs that caused the selection to freeze Fixed a bug introduced in 0.03.036 that stopped drag-and-drop copy from working Fixed some UAEs when scrolling with PageUp when the caret is in the top line of the screen, with less than one window's worth of lines above it Fixed inaccurate scrolling down by pages when less than one window's worth of lines remained below the window and the bottom line of the window was not one full row in height If PFE is terminated when the tool bar is a floating window, it will now restart with the tool bar as a floating window Making PFE iconic when the tool bar is floating no longer erroneously changes it to a bar on the right hand border The way PFE locates the Windows SDK helpfile for the Help|SDK function has been made more sensible. If the [options] section of the ini file contains a 'sdk-helpfile' key, the name given is used; if not, PFE looks for first "win31wh.hlp" and then "sdkwin.hlp" on the PATH and uses the first one found. Limited release to beta testers for validation as the possible beta 2 version on 19/10/92 0.03.036 -------- When configuring the first tool in the Configure Windows Tools dialog, the Add button now correctly becomes active as soon as something is typed in the Command Line edit control The default mapping of Ctrl-P to File|Print is now shown on the menu Fixed a bug whereby, if PFE was maximized, made iconic, and closed from the icon's system menu, it would restart restored rather than maximized Added an ini file setting "start-maximized" to the [options] section, which controls whether PFE starts maximized, overriding the saved state at last closedown Shift-PgUp and Shift-PgDn no longer cause UAEs or select the wrong sections of text Added an ini file [options] setting "track-vertical-thumbtack" that controls whether PFE scrolls to follow vertical thumbtack dragging PFE now leaves selected text highlighted after it is copied to the clipboard. An ini file [options] setting can specify that highlighting is to be removed Key names in menus and the Key Mapping dialog now use '+' rather than '-' to link components, to be CUA compliant The Settings menu has been renamed Options Corrected a bug in the command line parser that would cause DDE commands and ini file lines whose last argument was in quotes to be mis-parsed Added a most-recently-used files list to the File menus Added a menu option and tool bar action to repeat the last DOS command run Corrected PgUp and PgDn and scroll bar page moves when caret is not within the window The default setting for the 'auto-unix' key in the [options] section of the ini file is now 1, so that UNIX files will save in UNIX format by default The Browse Application dialog started from the Browse button in the Configure Windows Tools now uses a filter showing only "*.exe" files 0.03.035 -------- Improved icons Some development code that was accidentally left active and caused a UAE when Ctrl-Z was pressed for an Undo has been removed; undo actions are not yet supported Fixed a bug that prevented disabling only a subset of the possible prefix keys Dragging the mouse to extend a selection should no longer leave a caret trail on slower machines Windows are now scrolled to track movements of the thumbtack in the vertical scroll bar All references to "Development Tools" in menus and functions have changed to use "Windows Tools", to clarify the intended use of the facilities Details of the actual command line used and working directory are now stored for all Windows Tools between sessions, and not solely for the last one used Limited release to beta testers 05/10/92 0.03.034 -------- When a window is duplicated, the second copy's scroll bars are now set correctly Fixed a bug whereby, if a window lost focus when its caret had been scrolled out of view, the caret would be wrongly placed when the window regained focus The tool bar is now disabled when PFE is waiting for the second key of a two-character command sequence If the left button is pressed in the tool bar, and the mouse is moved out of the tool bar before it is released, focus is now correctly restored to the current window If the left button is pressed in a tool bar button and the mouse then moved off the button, the button will return to its down state should the mouse move back onto it When dragging the tool bar from a border, the state will now not change unless the mouse cursor is outside the tool bar when the left button is released A 1-pixel gap between the area showing line numbers and the area showing the text in a window has been eliminated Ctrl-K can now be used as a prefix key The prefix keys ESC, Ctrl-B, Ctrl-F, Ctrl-K and Ctrl-X can individually be enabled and disabled from a sub-dialog of the key mapping dialog. When disabled as a prefix key, each of them can be mapped to a function as required. By default they are all disabled, and the hard-coded key mappings are now fully CUA-compliant. As a result the format of .key files has changed Pressing TAB when no file is open no longer causes a UAE Page Down now does nothing if the final line of the file is visible in the window Added a File|Name menu item and equivalent DDE command that allows the file name associated with a window to be changed without writing any data to a disk The EditPageUp and EditPageDown functions have been redesigned to maintain the caret in the same screen row, and to keep a memory of the caret column. This means that a page down followed by a page up returns to exactly the starting position Vertical scrolling using the scroll bar now does not move the caret within the file, but moves it with the text Selections are no longer removed when the data is scrolled using the vertical thumbtack Functions EditShowNextLine, EditShowPreviousLine, EditShowNextPage and EditShowPreviousPage have been added to give keyboard equivalents of vertical scroll bar actions Menu items File|Open, File|New and File|Print are now bound by default to Ctrl-O, Ctrl-N and Ctrl-P as recommended in the CUA Pressing a key that is not mapped no longer causes the window to scroll to show the caret if this is not initially visible 0.03.033 -------- Fixed a bug whereby directories whose names were a single letter or '.' were not accepted in the Working Directory controls of the DOS Command and Launch Tool dialogs Scroll bars no longer respond to the first mouse click if their window is inactive; the click simply activates the window without disturbing its state The caret now follows the mouse cursor in a somewhat more friendly fashion when dragging with the left mouse button down The File Print dialog now allows line numbering, line wrapping and page header options to be specified. The corresponding window mode values are now the default settings for the dialog rather than the active settings An initialisation file option now allows new windows to be created always restored; always maximized; or maximized if and only if an existing window is also maximized. These options can also be made conditional on the main window being maximized too. ESCAPE now closes the About dialog box The vertical elevator is now correctly positioned after a search or a Window|CentreCaret operation The ini file and keymap files are now found correctly if the Windows directory is in a JOINed or mounted directory that appears as the root directory of a drive Printer font selection now uses the Font common dialog Filenames are now correctly set in the document title used by Print Manager when a file is printed Window titles for unnamed files, unnamed templates and command output have been redesigned; the title for an unnamed template and a command output window now includes a sequence number PFE no longer beeps to warn of an impossible scroll request (e.g. scrolling up a line when already in the top line) The Template|SaveFile and Template|Store menu items no longer both have 'S' as their hot key The Template|SaveFile menu item now has an ellipsis to show a dialog will be run The File menu has been re-arranged for better CUA compliance The top and bottom margin checkboxes are no longer confused in the Print Setup dialog 0.03.032 -------- Changing file and window modes with the Settings|CurrentSettings dialog no longer erroneously lights the toolbar Cut button Files can now be loaded and saved in UNIX format, using LF as a line terminator Clipboard data in excess of 64K is now handled correctly The File Open and File View dialogs now allow multiple files to be selected Wildcarded file names can now be given both on the command line and in the DDE commands FileOpen and FileView Fixed a bug in which an invalid window handle was passed to IsIconic on startup, which was trapped by the debugging kernel Captured output from DOS commands can now be shown in an existing Command Output window as an alternative to creating a new window Windows can now be tiled in a custom vertical pattern that maximizes their width A new function FileAbandon and corresponding DDE command allows a changed file to be closed with the changes discarded 0.03.031 -------- Cursor resource memory is now properly freed after the toolbar has been dragged with the multi-headed-arrow cursor Text drag-and-drop is now implemented When a window is duplicated, the copy now correctly inherits the text colours and language type of the parent Fixed a bug whereby a non-stock font would not be deleted on termination 0.03.030 -------- If an invalid line number is entered as the target in the Goto Line dialog, focus is now set back to the control after the error message is shown Menu items to select the fixed pitch ANSI, OEM and SYSTEM fonts have been added The "Free Key" and "Free All Keys" buttons in the Key Mapping dialog have been renamed to "Unmap Key" and "Unmap All" Selecting Window|Next when all windows are iconic now restores the current window rather than entering an infinite loop The Status Bar now uses the Windows variable-pitch ANSI font Added an Edit|SelectAll menu item to select an entire file Maximized MDI child windows can now be closed by double-clicking in the system menu box The "goto start of file" and "goto end of file" operations are now by default invoked by Ctrl-Home and Ctrl-End rather than Ctrl-PgUp and Ctrl-PgDn, to be in line with standard Windows practice Selected text is now displayed in the correct text and background colours as set up from the Control Panel If the current window is set to have a language type of "C", Edit|SelectWord treats an underscore character as alphanumeric, so that identifiers such as WM_CREATE can be selected as a single entity Fixed a nasty memory manager bug that could cause a UAE inserting a newline after a line deletion in very complicated circumstances to do with the fact that line control blocks are held in groups of 1024 The vertical thumbtack is now set more sensibly, reflecting the line number of the line at the top of the window Positioning within a file containing more than 65535 lines by moving the vertical thumbtack now works correctly Tabstop ordering in the Print Setup dialog has been made sensible Limited release to beta testers 19/08/92 0.03.029 -------- Selecting text with a mouse has been enhanced. Holding SHIFT down while clicking the left button will select between the caret and the mouse cursor, or will extend an existing selection The Window|Widen menu option will now restore iconic or maximized windows before resizing them Shift+click on the "Toggle Keyboard Recorder" toolbar button now replays the keyboard recording The 'Save File' toolbar button now invokes the TemplateStore function if the current window contains a template. The button state now correctly reflects the change state of template windows The caret now changes size to indicate whether a window is in insert or overwrite mode Selecting a word by double-clicking the mouse or using Edit|SelectWord no longer selects white space to the right of the word Fixed a bug whereby, after doing a Window|Tile, the wrong window would respond to keyboard input and scroll bar actions Fixed a bug which would sometimes cause File|Insert not to close the file that was inserted 0.03.028 -------- The font used in edit windows may now be selected from all the available fixed pitch ANSI screen fonts The 'search' dialog now permits you to specify whether the matching string is to be selected or not (the default is settable in the ini file). The dialog also allows you to choose to extend the selection from the initial caret position to the matching string All dialogs have been redesigned to use 8pt MS Sans Serif text instead of 10pt System The algorithm for positioning the caret in the text when the left mouse button is clicked has been improved: clicking in the left half of a character cell places the caret to the left of that character, and clicking in the right half places it to the right The "Key Mapping" dialog now permits a key to be remapped from one function to another with a single button click, instead of needing first to free it and then map it to the target function The "Free All Keys" button in the "Key Mapping" dialog now requests confirmation before proceeding 0.03.027 -------- Minor internal changes to make the source compatible with MSC 7.0 The Edit|Text|Uppercase and Edit|Text|Lowercase functions now correctly mark the file as being changed. They also produce an error if used on a read-only file. Both now handle characters with ASCII codes > 127 properly; note, though, that neither these, nor anything else in PFE, will work with Kanji or other languages using 2-byte codes 0.03.026 -------- Altered files can now be saved to disk automatically before running a DOS command or launching an application or a development tool The details of the last-used DOS command, application or development tool are now remembered between PFE sessions. The details of the last used development tool are also shown as the default each time the dialog is started The Run DOS Command dialog box now has a Browse button 0.03.025 -------- Extra functions are now available from the toolbar by using the SHIFT and CONTROL keys in combination with the left mouse button. See the help file for details. The "Window" menu item on the menu bar has been moved to be the last apart from "Help", to match the standard menu layout for MDI applications Windows may now be set to use "soft tabs": tabs will be inserted as an appropriate number of spaces rather than as single 0x09 characters The "Insert Template" toolbar button is now correctly set as template files are attached and detached The TemplateInsert, TemplateEdit, TemplateStore and TemplateStoreAs functions no longer cause UAEs if no template file is attached Files that have the "read only" attribute set are opened in read-only mode, regardless of the "read only" button state in the File Open dialog Characters with ASCII codes from 128-255 can now be inserted from the keyboard 0.03.024 -------- Many of the functions shown in the Key Mapping dialog, and the equivalent DDE commands, have been renamed. They now correspond better to the menus where they are held (or would be held) A bug whereby a DDE Poke operation received DDE_FACK on a fail and DDE_FNOTPROCESSED on successful termination has been cleared A successful search now sets the toolbar cut and paste buttons correctly Several new DDE commands and enquiries added The syntax of the DDE commands CaretLeft(), CaretLeftWord(), CaretRight() and CaretRightWord() is now changed so that each takes two mandatory arguments. The first is the count of the number of characters or words to move, and the second is 1 to extend a selection and 0 not to do so To avoid confusion over what it is, the support module PFEDOS.EXE, which is used by PFE to handle output redirection in DOS commands, has been renamed $PFEDOS.EXE, which hopefully looks less like a DOS version of PFE. The associated PIF file is now called $PFEDOS.PIF to match Using selection-extend keys like Shift-Left after marking a selection with the mouse now has the desired effect. Other minor bugs when moving the caret with Shift down to extend selection have been cleared Caret movement keys can now be remapped. This has required an incompatible change in the format of key mapping files, so that files saved with earlier releases of PFE cannot be used The semantics of the default PgUp and PgDn mapping is slightly altered; if line 1 is at the top of the window, PgUp moves to the start of the file, and if the last line is at the top of the window, PdDn moves to the end of file. Shift-PgUp and Shift-PgDn are now mapped to page up/down moves that extend the selection To be compatible with standard MDI practice, Shift-F4 now maps to WindowTile by default, and Shift-F5 to WindowCascade. TemplateInsertMarker has moved to F6, and CaretCentre to Ctrl-F5 The Goto Line dialog has been enhanced to allow optional extending of a selection ^T is now accepted as meaning TAB in a search or replace string, as well as ^t 0.03.020 -------- Released as the Beta 1 version of PFE 28/07/92 ------------------------------------------------------------------------------ Reported bugs that have not yet been cleared -------------------------------------------- The toolbar paste button is not updated correctly if another application is activated and changes the clipboard contents If the user tries to save an un-named template, calling it by the same name as an existing one, and presses CANCEL in response to the confirmation prompt, the template window is nevertheless given that name When a selection ends with the cursor at the left of an empty line, the display code draws a half-cell highlight on that line erroneously Duplicate windows should have ":sequencenumber" appended to their titles Double-click to the right of a line, or in the right-hand half of the last character in a line, should select the word to the left of the mouse cursor With text like "point.x = something", double clicking on the right hand side of the 'x' or left side of the following space uses '.' as a word delimiter when extending the selection left. This is inconsistent with how extensions right work, or when the '.' is followed by more than one character The various "modes" dialogs show error messages when invalid file types are given, but add them to the list anyway When the last screen of a file is visible, a PageDown action should take the caret to the end of the file; similarly for PageUp in the first screen of the file A DOS-command-with-capture operation sometimes seems to ignore the specified working directory and runs the command in the Windows directory The File Open dialogs should show deeper filter lists; the Microsoft default depth of 3 lines is pathetic When a child window exists and is maximised, pressing the first character of a two-character command sequence grays all the menu bar items, instead of leaving just the Help menu active The File Write dialog does not allow Unix format to be specified Vertical scroll bar handling when the end of a file is visible needs to be improved Automatic horizontal scrolling can still sometimes fail to position the caret optimally as far right as possible in a window Any line where the number of characters times the width of a character in pixels exceeds 32K will not get drawn correctly in many cases Some parts of PFE still impose a limit of 1024 characters in a line; for safety, do not operate with lines longer than this Text wrap does not occur unless typing at the end of a line Font characters that occupy the full width of a cell (e.g. "V" in 8pt Courier New) may leave a single dot behind when moved by an insert to their left It is not possible to include quotes in a DOS command whose output is to be captured PFE does not disregard a click in a child window if another app is current Vertical scroll bars are not updated in duplicated windows showing a file when the current window is changed [PFE32] When an application is launched with the Execute Launch Windows Tool or Execute Launch Application commands, and the application subsequently starts one of the common File Open dialogs, the directory shown will be the directory that the original PFE application is running in, not the one that was specified in the dialog and actually is the current dialog. An Edit Select All followed by an Edit Cut on files of a sensitive size (?) will cause a UAE when the file is closed Loading a file containing a line longer than 32K will cause PFE to hang Menu help is triggered for the system menu when the mouse is clicked in any non-client area of the frame window The Key Map dialog can claim that commands that have no menu item nevertheless have keys in their menu strings Brace matching when language type is C and the caret is in a preprocessor directive should work, but within that line only, instead of doing nothing If a screen area needing a redraw has an edge lying exactly on one of the shading lines within the status bar, the shading line is not repainted Mailing an unnamed file results in the title of the attachment icon being garbage If an undo of a delete for a large amount of text fails because the size is too large, a GPF may occur when the file is closed or saved If PFE was exited while maximized, it will not respect a "Run Minimized" launch flag when next started from Program Manager When no files are open, menu accelerators such as Alt+F that are not otherwise mapped to PFE commands do not function if some files were previously open and other mapped keys had been used Ctrl+F4 and Ctrl+F6 do not work if the current window is iconic Relative file names including "." and ".." given on the command line are not correctly normalised If the key mapping dialog is started, and an unmapped command is selected, the Add button is not enabled if an unmapped key is then selected ------------------------------------------------------------------------------- Reported bugs that cannot be duplicated --------------------------------------- [A number of bugs seem to occur on some systems, but cannot be made to appear on my development system. If you can supply insights or evidence, please get in touch!] Loading a file containing control characters causes either a UAE or a locked system Clicking on a file name in the list of the Open Existing File dialog does not move the file name to the edit control on systems running with Italian language drivers (probably a Windows bug) Current directory is lost if the File Open dialogs change drives. With no mouse present, selecting Apply and then Save in the "Default File Modes" dialog freezes PFE until it's reactivated from Task Manager With a 1024x768 screen driver, the status bar is clipped on the left side, and it's not possible to position the cursor to the furthest left side of a maximized text window On some systems, the two rightmost pixel columns of toolbar bitmaps are not drawn the first time the bitmaps are shown UAE when file is dropped from File Manager and PFE is an icon Share Violations when the work file holding output from a DOS command is opened All text windows are cleared and redrawn every time PFE is given control after using another application Garbled printer output sending to a printer on a Pathworks network On some systems (using Novell drivers?) PFE will not open files named on the command line After a paste operation that replaces a selection, extending the selection with the keyboard can show the selection starting at the beginning of the pasted text instead of the end ------------------------------------------------------------------------------- Things To Be Done ----------------- [This list details features that are intended to appear in the version 1 full release. Depending on many factors it may not be possible to implement all of the items here for that release - but they should all appear in due course] Abolish restrictions on line length and make horizontal scroll bar handling sensitive to the actual data visible Add ability to define multiple keyboard macros, with load and save Improve intelligence of text redrawing to avoid flicker in overstrike mode and when updating the position in the status bar Implement double-click-and-drag to extend selection by words Allow search on regular expressions Implement paragraph reformatting Implement periodic-auto-save Record tool bar actions in keyboard macros Make the line number area resizable by dragging the left border Provide visual feedback when dragging the tool bar about Ini file option to allow PageUp/PageDown to work in units of half a window When a file is renamed by File|Name, PFE should check on saving whether the file exists, and prompt for confirmation if it does Add adjustable right margin line to indicate a specific column width Remember position of floating toolbar between sessions When dragging-and-dropping, use Shift down to force a copy regardless of the ini file settings regarding control key usage User customisable Execute menu items DeleteWord[Right|Left] functions Extend the Window Select dialog to select windows containing a given search string Allow files to be mailed as text with MAPI mailers instead of as attachments Provide way to generate a list of current key mappings into an edit window Edit|Revert command to revert file to last disk copy Add support for Macintosh-format files using CR as a line terminator Template Insert should remember the last template inserted and set that as the default Use custom algorithm for sizing and placing newly-created windows rather than the somewhat single-minded standard MDI one ------------------------------------------------------------------------------------ Long Term Developments ---------------------- [Features here are regarded generally as Good Things, and may well be included in later releases. They are very unlikely be implemented for version 1] User configurable tool bar and menu Script language More sophisticated language support driven by external language-aware DLLs to perform syntax colouring, etc Optional project management system Support for group working under Windows for Workgroups Text folding and bookmarks Column mode for cut/copy/paste Option to check whether files currently open have been changed by some other application "Repeat last action" command Two-up printing in landscape mode Add option to allow the current directory for File Open dialogs to be the directory holding the current file Ability to define tab stops at arbitrary columns Ability to restrict find/replace operations to a region of a file ------------------------------------------------------------------------------ Thanks to all the beta testers whose bug reports, comments and suggestions have gone towards the development of PFE ------------------------------------------------------------------------------