== 1.20 (r3543) to 1.21 (r3918) -- Status: 2020-03-16 == [[PageOutline]] === Status bar === - Added special color for ''read-only files''. === Installation === - ''Moved EPMBBS files'' to samples package. - ''Renamed package ids''. The installation works with old and new id names. Old id names were changed on the first start now, when the WarpIN database is unlocked. - Use ''rwIni'' functions, if installed and if possible. - Added deletion of ''myepm folder icon EAs'' and avoided its setting. - Fixed update behavior for ''object titles''. === Search dialog === - Enabled ''T'' and ''B'' settings. - Changed the ''font'' of both entry fields to that of the edit window. - If a mark exists in current file, activate ''Marked area'' and ''Start at top''. Made that configurable by Preferences -> Appearance -> Windows and dialogs -> Search dialog. - Improved ''focus'', e.g. when switching EPM windows while the Search dialog is on top. - Many more fixes. === Settings === - Added setting for ''mode-specific'' or general ''tabs and margins''. - ''Replaced all remaining EPM settings'' with NEPMD settings, including configurable cursor and pointer styles. === Cursor highlighting === - Added ''cursor highlighting'' for many cases. === Window and object functions === - Added procs as ''wrappers for C functions''. - ''Replaced REXX commands'' with that. === Popup menu === - Open ''popup menu at the cursor position'' with Alt+Sh+F10. === Environment extension === - Fixed ''BeginLIBPATH ''handling. Now it can be extended by the pseudo env var within a command window. === Config file === - Remove ''multiple spaces'' within the value part, except for color defs. === File === - Path-changing commands now change to the root dir of a drive before changing that drive. That ''keeps the previous dirs on previous drives unlocked'', so that it can be deleted or renamed. Previously the old dir was locked until EPM was closed. === Unwanted scrolling === - Added ''workaround'' for more cases. - Fixed ''small vertical window scrolling'' on position restore. Now the scroll position is saved and restored exactly, including fractions of font heights. === Search === - Fixed ''search direction'' processing. === General === - Fixed handling of ''double quotes'' for defcs and defprocs. - Allow for ''special chars in filenames'' by adding missing enquoting. === !RecompileNew === - Many ''improvements'', with checking for different .E files and faster .E file processing, except for the initial check. - Added new markers: 'I' = information, '=' = equal .E file. - Now user .E files, marked with '=', can be safely deleted. - At ''first startup'', if user .EX files were found, ask to execute !RecompileNew. - Added line-wise comparison with diff.exe for source files, if a md5 check has found different files. That allows for ignoring ''$Id $'' (RCS keyword) lines, as being used in the source files. === !NepmdInfo === - Added ''version check via version.cfg'' on the netlabs server. - Improved ''processing'', added missing select event. === EAs === - ''Preserve EAs and datetimes'' for Move and Encode. === Open URLs === - Improved ''dialog actions''. - Changed to use a ''temporary WPS object''. This supports long URLs. === !DosUtil === - Added functions for ''datetime difference'' calculation and validation. === Keys === - ''Disabled !RefreshMenu'' in !SwitchKeyset, if not required. That results in a speed improvement on file switching. Unfortunately it's still required for different keysets (e.g. for SHELL files) to keep the mnemonics in the menu right. === Assist === - Made scanning for multi-line comments on cursor movement ''much faster''. A simpler method is used to bypass the MLC array creation. That array is used, if it exists, what is the fastest method. Now ''stuttering cursor scrolling'' shouldn't happen anymore. - LocateMLC: Replaced previous complex implementation, that already was a binary search, by a clean ''binary search''. This seems to be a bit faster again. - Improvements for ''literals''. - Fixed ''cursor movement'' when repeatfind is used. - Fixed ''length of highlighted string'' for !MatchFindOnMove. === Alt+1 === - Fixed Alt+1 for : . Now linenum is correctly parsed. - Added :<"search word"> or :, with allowing for cursor placement on . === Preferences menu === - Changed ''Configuration presets'' to ''Basic configuration''. - Added sections ''Presets'' and ''Main items''. Added items to it to control main settings more easily and to give visual feedback on switching presets. - Added ''Edit window'' -> ''Click only gives focus'' as replacement for the const. === Menu === - Avoid menu item 'Restore file...' for non-backup .Tree_Dir files. - Disabled common popup menu items for .Tree and .Tree_Dir files. Previously, the Alt+1 menu item appeared twice and !TagScan didn't make sense for these files. - Fixed disabling for advanced marking menu items. - ''!PopupMenuItemsOutsideMark'': Added diabling of advanced menu items if CUA marking is active. - Fixed ''menu item id exhaustion'' after !RefreshMenu. === Backup === - Improved Backup to ''avoid backup file creation'' when useless. - Added ''Restore'' and ''Compare'' commands. - Added ''Restore'' and ''Compare'' menu item to popup menu for .Tree files. - Added EAs ''EPM.PREVPATH'' and ''EPM.BACKUPDATETIME'' for later file restore and later cleanup of backup directory. - Fixed ''.Tree'' popup menu behavior to take the line under the mouse pointer. - Added ''automatic mode selection'' for backup files on load via EA recognizing. The previous mode is now saved as EA EPM.PREVMODE. - Changed getting ''mode for backup files'' without requiring EPM.PREVMODE EAs. It is now checked if a tilde and a number is appended. - Fixed processing of ''virtual files''. === Move expression === - Extended to ''process mark'' if it exists. - Improved ''string determination''. === Modes === - ''Syntax expansion'': Completely reworked ''C'' mode, many improvements for when coding styles have changed. Added CFunctionCodeStyle. - ''SCRIPT'': Fixed highlighting definitions. - ''PHP'': Improvements. - ''IPF'': Find headings spanned over multiple lines. - ''PASCAL'': Several improvements. - ''SHELL'', ''.DOS'', ''.Tree'': Made 'Directory of' line editable for DIR commands, like for '.DOS dir' files. - ''SHELL'', ''.DOS'', ''.Tree'': Control the cursor position. - ''SHELL'', ''.DOS'', ''.Tree'': Use SHELL highlighting for .DOS files. - ''All modes'': Replaced LINECOMMENTOVERRIDEMULTI by MULTILINECOMMENTENDPRIO. This is only used for TeX's pseudo-MLC env \iffalse ... \fi. - ''Tags'': Fixes for ''TeX'' and ''LaTeX'' commands. - ''Assist'': Find more ''TeX'' keywords. - ''TEX'': Added verbatim environment to the multi-line commands. - ''Syntax expansion'': Fixes for ''REXX''. - ''FindDef:'' Added mode REXX. - ''REXX'': Improved bracket matching when pressing !BackSpace repeatedly. - ''REXX'': Added rwIni keywords. === File and Mode settings === - Completely reworked, with calls to ''generic functions''. - Fixes for ''Coding style settings''. - Added ''menu item''. === Format submenu === - Split ''Line breaks'' into ''Line ends'' and ''Line wraps''. - Added menu items for ''DOS and Unix line ends''. === Encoding === - Added new commands. - Completely reworked ''encoding menu items''. That includes a predefined list, similar to the spell-check menu items and many helpful menu items and options. === Mouse === - Improved ''double click'' behavior. === Attributes === - Added workaround to avoid access to the unwanted first ''undo state'' after loading a file with attribute EAs. === Bookmarks === - Added ''compatibility'' for old bookmark commands. That makes the toolbar commands from MAKEACTN.E work again. - Changed ''bookmarks dialog'' to display column instead of index. - Extended ''bookmarks dialog'' to optionally add EPM.POS, undo and stack positions. This behavior can be toggled via dialog button and is saved per window non-permanently. === Spell-check dictionaries === - Catch errors of ''wget'' and ''unzip'' on download. - ''Dialog'' improvements. === Associations === - Added fix for user-defined groups of associations. === Compile === - Removed ''double call of wis\makefile'' in many cases. (There exist still a few.) - Fixed ''backslash handling'' for C-included files by htext files. - Changed ''clean'' makefile target to clean both debug and release, as documented in MAKEFILE.INF.